문서 유사성 측정


21

문서를 군집화하려면 문서 쌍 간의 유사성을 측정하는 방법이 필요합니다.

두 가지 대안이 있습니다 :

  1. 코사인 유사성 -및 TF / IDF를 항의 가중치로 사용하여 문서를 항 벡터로 비교합니다 .

  2. f-divergence를 사용하여 각 문서 확률 분포를 비교하십시오 (예 : Kullback-Leibler divergence)

한 가지 방법을 다른 방법보다 선호하는 직관적 인 이유가 있습니까 (평균 문서 크기가 100 항이라고 가정)?

답변:


23

텍스트 문서의 경우 피처 벡터는 표준 표현 (단어 또는 TF-IDF 등)에서 매우 차원이 높고 희박 할 수 있습니다. 이러한 표현에서 직접 거리를 측정하는 것은 매우 높은 치수에서 두 점 사이의 거리가 동일하게 보이기 시작한다는 알려진 사실이므로 신뢰할 수 없습니다. 이 문제를 해결하는 한 가지 방법은 PCA 또는 LSA ( 잠재적 의미 분석 ( 잠재적 의미론 색인 이라고도 함 )) 를 사용하여 데이터 차원을 줄이고 새 공간의 거리를 측정하는 것입니다. PCA보다 LSA와 같은 것을 사용하는 것은 낮은 차원 공간에서 거리를 측정하는 것 외에도 "의미 개념"의 관점에서 의미있는 표현을 제공 할 수 있기 때문에 유리하다.

확률 분포를 기반으로 문서를 비교하는 것은 일반적으로 먼저 각 문서의 주제 분포 ( Latent Dirichlet Allocation 과 같은 것을 사용하여 )를 계산 한 다음 문서 쌍의 주제 분포 사이에 일종의 분기 (예 : KL 분기)를 계산하여 수행됩니다. 어떤 방식으로, 실제로 LSA를 먼저 수행 한 다음 벡터 사이의 KL- 분산 (코사인 유사성 대신)을 사용하여 LSA 공간의 거리를 측정하는 것과 비슷합니다.

KL- 분산은 분포를 비교하기위한 거리 측정법이므로 문서 표현이 일부 분포 (예를 들어 LDA에서와 같이 주제에 대한 분포로 표현 된 문서)와 관련이있는 경우 바람직 할 수 있습니다. 또한 이러한 표현에서 특징 벡터의 항목은 1로 합산됩니다 (기본적으로 문서를 주제 또는 의미 개념에 대한 배포 로 처리하기 때문에 ).

또한 관련 스레드를 참조 하십시오 .


감사. LDA는 주제를 미리 알고 있어야합니까? 이 경우 각 문서가 어떤 주제에 속하는지 알지 못하며 유사성 측정을 사용하여 클러스터링 (EM-G-Means 또는 GAAC)을 수행 할 것입니다.
Joel

@ ebony1 LSA에 대한 좋은 언급, 나는 몇 시간 전에 stats.stackexchange.com/questions/369/
chl

1
@Joel : 아니요. LDA는 각 문서에 대한 주제를 미리 알고 있다고 가정하지 않습니다. BTW, LDA는 각 문서를 하나의 주제가 아닌 주제의 혼합으로 표현합니다. 따라서 각 주제는 문서의 일부 분수에 기여하며 개별 분수의 합계는 1입니다. 기본적으로 LDA는 문서의 각 단어가 일부 주제에 의해 생성되는 것으로 가정합니다.
ebony1

@ebony-감사합니다! 질문을 되풀이하고 반복 할 위험이있는 LDA는 신중한 주제의 수를 알아야합니까?
Joel

예. 그러나 주제 수를 지정하지 않아도되는 LDA (HDP-LDA) 변형이 있습니다. 이 문서를 참조하십시오 : cse.buffalo.edu/faculty/mbeal/papers/hdp.pdf
ebony1

0

코사인 문서 유사성 http://www.scurtu.it/documentSimilarity.html에 대해이 온라인 서비스를 사용해 볼 수 있습니다 .

import urllib,urllib2
import json
API_URL="http://www.scurtu.it/apis/documentSimilarity"
inputDict={}
inputDict['doc1']='Document with some text'
inputDict['doc2']='Other document with some text'
params = urllib.urlencode(inputDict)    
f = urllib2.urlopen(API_URL, params)
response= f.read()
responseObject=json.loads(response)  
print responseObject

2
자세한 내용을 알려주십시오.
Xi'an
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.