2016-06-20 9 views
-1

두 개의 문서가 주어지면이 두 문서의 유사점을 계산하고 싶습니다. 내가 알고 싶은 This is a previously asked question두 개의 문서를 파이썬으로 비교하십시오.

은 더 무엇을 요구 이러한 기능을 사용하여 수행 할 : 나는 코사인 거리,이를 사용하여 N-그램과 TF-IDF을 찾을 수있는 방법이있다. 나는 다음과 같은 코드를 사용하여 찾는 유사성을 시도하는 다음 또한, 나는 Word2Vec을 구현하는 시도

: 주어진 문서에 적 단어를 들어

for i in range(len(Words)): 
    print i 
    for k in range(len(Words)): 
     net_sim = 0.0 
     for j in range(len(Words.ix[i]['A'])): 
      sim = 0.0 
      for l in range(len(Words.ix[k]['A'])): 
       if sim < model.similarity(Words.ix[i]['A'][j],Words.ix[k]['A'][l]): 
        sim = model.similarity(Words.ix[i]['A'][j],Words.ix[k]['A'][l]) 
      net_sim += sim 
     Similarity.ix[i][k] = net_sim/len(Words.ix[i]['A']) 

, 나는 두 번째 문서에서 가장 유사한 단어를 찾으려고 그들의 유사성을 추가하십시오. 그런 다음 단어의 수로 나누어 0에서 1의 범위로 정규화합니다. 여기에서 단어는 서로 다른 문서의 단어로 구성된 DataFrame이며 별도의 행에 있으며 모델은 Word2Vec 모델입니다. 이 과정은 많은 시간이 걸리므로이를 최적화하여 다른 접근 방식을 찾고 싶습니다.

+0

우리에게 당신이 이미 가지고있는 코드를 보여주세요! –

+0

http://stackoverflow.com/a/22577329/6350407 –

+1

** ** ** 이미 ** 코드를 표시하십시오! 죄송합니다.하지만 다른 곳에서 찾은 코드를 함께 사용하는 것은 아닙니다. 적어도 약간의 노력을 보여줘야합니다. –

답변

1

당신이 설명한이 기능을 사용하는 데 집중한다면, nltk wiki을 읽으면 쉽게 구현할 수 있지만, 이것이 그들 사이의 유사성을 비교하는 가장 좋은 방법인지를 안다.

difflib docs 페이지에 설명 된대로 해당 패키지를 사용하여 파일 및 시퀀스를 비교할 수도 있습니다.

이 모듈 서열 비교 ​​ 클래스 및 기능을 제공한다. 은을 비교하는 과 같이 사용할 수 있으며 HTML 및 컨텍스트 및 통합 된 diff를 비롯한 다양한 형식의 차이 정보를 개 생성 할 수 있습니다.

디렉터리와 파일을 비교하는 경우 filecmp 모듈도 참조하십시오.


더 구체적으로, 당신은 텍스트의 순서를 비교하는 difflib.SequenceMatcher()를 사용할 수 있습니다.

예 : 더 많은 예제와 자습서

import difflib 

# passing strings 
difflib.SequenceMatcher(None, str1, str2) 

# reading files 
difflib.SequenceMatcher(None, file1.read(), file2.read()) 

은 다음을 참조하십시오

PyMOTW - difflib

+0

아니요, 범위 0에서 1 사이의 유사성을 찾아야합니다. Word2Vec 접근 방식을 시도했지만 시간이 많이 걸리고 더 큰 데이터를 얻으려면 더 빠른 프로그램이 필요합니다. –