2012-04-27 4 views
0

거대한 파일 (3.5GB, 300K 라인, 300K 문서), 한 줄에 하나의 문서에있는 문서의 대형 자료를 분석하려고합니다. 이 과정에서 전 색인을 위해 Lucene을 사용하고 전처리를 위해 Lingpipe를 사용합니다.용어 문서 대형 자료에서 Lucene/Lingpipe를 사용하는 Java의 빈도

문제는 문서에서 매우 드문 단어를 제거하고 싶다는 것입니다. 예를 들어, 코퍼스 (거대한 파일)에서 MinDF 시간보다 작은 단어가 발생하면 제거하고 싶습니다.

나는 Lucene으로하려고 시도 할 수있다 : 모든 다른 용어에 대한 문서 주파수를 계산하고, 오름차순으로 정렬하고, MinDF보다 DF가 낮은 용어를 얻고, 거대한 파일로 다시 이동하고, 한 줄에

이 프로세스는 상당히 느립니다. Java를 사용하여이를 수행하는 더 빠른 방법을 아는 사람이 있습니까?

감사

답변

0

첫째는, 임시 인덱스를 만들 최종 인덱스를 생성하는 그것의 정보를 사용합니다. IndexReader.terms()을 사용하여 반복하고 각 용어에 대해 TermEnum.docFreq이 있어야합니다. 모든 저주파 용어를 누적 한 다음 해당 정보를 최종 색인을 생성 할 때 StopWordAnalyzerBase을 확장하는 분석기로 공급하십시오.

+0

감사합니다. 매우 도움이되는 대답, 나는 뒤로보고 할 것이다! – jimkots