Latent Dirichlet Allocation에서 파생 된 주제를 사용한 문서 클러스터링


9

프로젝트에 Latent Dirichlet Allocation을 사용하고 gensim 라이브러리와 함께 Python을 사용하고 있습니다. 주제를 찾은 후 k-means와 같은 알고리즘을 사용하여 문서를 클러스터링하고 싶습니다 (이상적으로는 클러스터를 겹치기에 좋은 것을 사용하여 권장 사항을 환영합니다). 주제를 얻었지만 다음과 같은 형식입니다.

0.041 * Minister + 0.041 * Key + 0.041 * moments + 0.041 * 논란 + 0.041 * 프라임

클러스터링 알고리즘을 적용하고 틀린 경우 수정하려면 tfidf 또는 word2vec를 사용하여 각 단어를 숫자로 나타내는 방법을 찾아야한다고 생각합니다.

예를 들어 목록에서 텍스트 정보를 "스트리핑"하여 적절한 곱셈을하기 위해 다시 배치하는 방법에 대한 아이디어가 있습니까?

예를 들어, 장관이라는 단어의 tfidf 가중치가 0.042 인 경우 같은 주제 내에있는 다른 단어의 경우 다음과 같이 계산해야합니다.

0.041 * 0.42 + ... + 0.041 * tfidf (Prime) 및 결과를 군집화하기 위해 나중에 사용될 결과를 얻습니다.

시간 내 주셔서 감사합니다.


1
학습서에 설명 된대로 문서를 벡터로 표현할 수 있습니다. 이 벡터들을 묶습니다.
Emre

나는 친구를 알고 있지만 컬렉션에 LDA를 적용한 후에 만든 주제에 따라 클러스터를 묶어야합니다. 각 문서를 각 주제와 비교하고 각 문서에 해당하는 주제를 찾으려면 각 주제를 벡터로 표시해야합니다.
Swan87

각 단어를 벡터로 나타낼 필요는 없습니다. 학습 한 LDA 변환을 모음 에 적용하여 전체 문서 에 대한 새로운 표현을 얻을 수 있습니다 . LSI의 예는 다음 링크를 참조하십시오. radimrehurek.com/gensim/tut2.html 핵심 부분은 lsi [doc_bow]를 사용하여 학습 된 LSI 변환을 전체 코퍼스에 적용하는 위치입니다.
Will Stanton

답변:


4

LDA가 주제 목록을 작성하고 각 문서에 대해 각 주제에 대해 점수를 매겼다 고 가정하면 문서와 해당 점수를 벡터로 표시 할 수 있습니다.

Document | Prime | Minister | Controversial | TopicN | ...
   1       0.041    0.042      0.041          ...
   2       0.052    0.011      0.042          ...

각 문서에 대한 점수를 얻으려면 문서를 실행할 수 있습니다. 훈련 된 LDA 모델을 통해 한 마디로 gensim 문서에서 :

>>> lda = LdaModel(corpus, num_topics=100)  # train model
>>> print(lda[doc_bow]) # get topic probability distribution for a document

그런 다음이 행렬에서 k- 평균을 실행할 수 있으며 유사한 문서를 그룹화해야합니다. K- 평균은 기본적으로 각 문서를 하나의 클러스터로 분류한다는 것을 의미하는 하드 클러스터링 알고리즘입니다. 소프트 클러스터링 메커니즘을 사용하여 문서가 클러스터 내에 들어갈 확률 점수를 제공 할 수 있습니다.이를 퍼지 k- 평균 이라고 합니다 . https://gist.github.com/mblondel/1451300 은 scikit learn로 어떻게 할 수 있는지 보여주는 Python 요지입니다.

추신 : 2 개 이상의 링크를 게시 할 수 없습니다


나는 "n"에 대해 그것을 시도했지만 어떤 주제도 t라고 말하는 문서는 없다. 그러나 x x of documents의 경우, 모든 t 토픽 prob는 (t-no) 토픽 prob가 표시되지 않습니다. 여기서 1 <= no <t. 작은 문서 크기로 실험을 실행할 때 발생하지 않습니다. prob가 0이면 전혀 인쇄되지 않기 때문입니까?
Manish Ranjan

0

이전 답변을 보완하면 lda topic-doc 배포에서 파생 된 컴포지션 데이터에서 kmeans를 직접 실행하는 것이 아니라 일부 컴포지션 데이터 변환을 사용하여 ilr 또는 clr과 같은 유클리드 공간에 투영합니다.

( )

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.