0

나는 코사인 거리를 계산하기 위해 상대 주파수에 대해 TFIDF를 사용하려고합니다. 한 문서에서 10 단어를 선택했습니다 : 파일 1과 10 단어 및 빈도를 사용하여 파일 1과 유사한 10 개의 파일을 확인하면서 내 폴더에서 다른 10 개의 파일을 선택했습니다. 폴더의 파일 총 수는 다음과 같습니다. 46.i DF (단어가 나타나는 문서의 수) IDF (파일 (46)/DF의 총 수)와 TFIDF (한 문서의 단어 빈도)의 곱인 IDF IDF)친화적 인 주파수, 코사인의 유사성에 대한 TFIDF 사용

는 질문 :

  1. 내가 위에서 말했다 하나 개의 문서에있는 모든 10 개 단어의 TFIDF을받은 후, 100 % 정확 어떤 가정 말 : 파일 2, 나는 각각에 대해 모든 TFIDF를 추가하려면 어떻게해야합니까 파일 2에 대한 TFIDF를 얻으려면 함께 10 단어?

  2. 코사인 거리 란 무엇입니까?

예를 들어 도움을 줄 수 있습니까?

답변

0

문제는 코사인 유사성과 tf-idf가 혼동 스럽다는 것입니다. 전자가 두 벡터 (이 경우 문서) 사이의 유사성의 척도 인 반면, 후자는 간단히 전자에 사용되는 벡터의 구성 요소를 설정하는 기술입니다.

귀하의 질문에 특히 각 문서에서 10 가지 용어를 선택하는 것이 불편합니다. 오히려 모든 용어를 다루는 것이 좋습니다. V를 전체 용어 수 (컬렉션의 모든 문서에 대한 통합 집합의 카디널리티)로 둡니다. 각 문서를 V 치수의 벡터로 나타낼 수 있습니다. 특정 문서 D의 i 번째 구성 요소는 해당 용어 (즉 t)에 해당하는 tf-idf 가중치로 설정할 수 있습니다. 즉, D_i = tf (t, D) * idf (t)

이 방법으로 컬렉션을 만들면 다음과 같은 방식으로 문서 간 유사성을 계산할 수 있습니다.

cosine-sim(D, D') = (1/|D_1|*|D'|) * \sum_{i=1}^{V} D_i * D'_i 
        = (1/|D_1|*|D'|) * \sum_{i=1}^{V} tf(t,D)*idf(t)*tf(t,D')*idf(t) 

이 합계의 공헌 용어는 두 문서에 모두 포함되어 있습니다. 용어 t가 D에서 발생하지만 D '에서 발생하지 않으면 tf (t, D') = 0이며 따라서 0에 기여합니다.