2010-07-23 8 views
2

흠, 내가 어떻게 얻을 필요가 은 전체 문서 모음에서 단어가 인 으로 색인되어 있습니다. 나는 "표현할 수있는 단어"를 추출 할 필요가 있으며, 공통적 인 개념을 말하고 전체 컬렉션에 표현할 수 있습니다. 또는 "키워드"모음. 나는 전체 텍스트 색인을 만들었고 문서의 제목은 대부분 표현할 수 없기 때문에 텍스트 내용 만 사용했다. (숫자, 코드 등 ....)lucene 색인에있는 단어 중요성

편집 : 어쩌면 60 개 문서 ....

int numDocs = fReader.numDocs(); 
while(termEnum.next()) 
    { 
     Term term = termEnum.term(); 
     double df = fReader.docFreq(term); 

     TermDocs termDocs = indexReader.termDocs(term); 

    //HERE is what i mean when i say tfidf is per document, 

      while(termDocs.next()) 
      { 
       double tf = termDocs.freq(); 
       // Calculate tfidf....... 
      } 

      termDocs.close(); 

}

그래서, 나는이 용어의 TFIDF를 얻을 것이다,하지만 통해 모든 문서에 대한 것을 우리는 루프. 그리고 나는 이러한 결과가 필요하지 않습니다 :

tfidf (term1, doc1);

tfidf (term1, doc2);

tfidf (term1, doc3); ........... 등등.
컬렉션에서이 용어의 중요성에 대한 측정이 필요합니다. 직관함으로써, 용어 1 "용어가"

"5 개 문서에서 좋은 TFIDF 있었다 다음이 중요하다"같은 될 것이라고하지만 당연히 스마트 뭔가 :

감사합니다!

답변

0

Luke을 사용하여 색인을 열어 볼 수 있으며 상위 순위의 용어가 표시됩니다.

+0

@Mikos, 그 조건을 확인하실 수 있습니다 알고리즘을 분석 할 필요가 있습니다. 그러므로 루크에서 그들을 보지 못했습니다. 나는 그것을 구현할 필요가있다. 그러나 그럼에도 불구하고, 나는 당신이 내가 묻는 것을 이해하지 못했습니다. 런타임에 이러한 용어가 필요하지 않은 경우에도 루크의 최상위 용어는 내가 필요한 것이 아닐 것이라고 생각합니다. Luke가 이러한 topterms를 검색하는 데 사용하는 유사 기능이 무엇인지 알고 계십니까? 인덱스의 빈도 (내 생각에)가 그렇다고해도 제 경우에는 도움이되지 않습니다 ......... :/ – Julia

+0

@Julia, 귀하의 요구 사항을 자세히 설명해야합니다. 미안하지만, 다른 사람들에게도 용의자가 될 수 있으므로 비즈니스 케이스에 대해 자세히 설명해 주시면 도와 드리겠습니다. :-) – Mikos

+0

@Mikos : 나는 더 나은 설명으로 편집을 했어! – Julia

0

편집 : 아직 달성하려는 것을 얻지 못했습니다. TF/IDF 값이 높으면이 문서가 나머지 문서 ()와 차별화 된 유용한 용어 인 입니다. 즉이 용어는 특정 문서에서 일반적으로 컬렉션보다 상대적으로 더 자주 사용됩니다. 그러므로 그것은 수집 배경에 대한 문서를 "대표한다". 이게 니가 원하는거야?

한 가지 가능한 질문은 고주파수 용어를 사용하지 않고 모음집을 압축하는 것입니다. 이것은 컬렉션에 많이 나타나는 단어를 의미하며 낮은 idf를 가진 단어를 사용하여 수행 할 수 있습니다.

또 다른 대안은보다 일반적인 배경, 즉 더 큰 컬렉션이나 전체 WWW에 대해 컬렉션을 표현하는 간결한 방법을 원한다는 것입니다. 이 경우 컬렉션간에 단어 빈도를 비교하려면 단어 유형과 컬렉션 사이에 mutual information 또는 다른 feature selection 방법을 고려하십시오.

여전히 귀하의 의견을 놓치면 알려주세요.

+0

나는 더 나은 설명으로 편집을 했어! – Julia

+0

@ Julia : 내 대답을 편집했습니다. 그것이 더 명확하고 요점에 있기를 바랍니다. –

1

그래서 tfidf를 계산하면 단일 문서와 관련하여 단일 용어의 중요성이 부여됩니다.

사실이 아닙니다. IDF는 전체 코퍼스에서 전체적으로 측정됩니다. IDF의 요점은 당신이 찾고있는 것을 정확하게 측정 할 수있는 방법을 제공하는 것입니다 - 용어가 얼마나 중요한지.

그래서 물어 보는 일을하는 가장 쉬운 방법은 코퍼스에서 가장 자주 나오는 용어를 찾아서 문서 빈도에 따라 가중치를 부여하는 것입니다.