2011-12-24 5 views
0

텍스트 색인 생성을 위해 lucene에 복합어 목록을 제공하는 것이 가능합니까?Lucene의 합성어

예를 들어, "컴퓨터 정보"를 단일 단어로 색인 싶습니다.

내가 변환과 "컴퓨터 정보"에서 "Computer_Information"또는 "ComputerInformation을"그것을 할 수 있지만,이 변환은 매우 어렵습니다, 문제는 열기 여기에 있습니다 :

Replace Long list Words in a big Text File

+1

이것은 마지막으로 처리 된 토큰을 메모리에 저장하는 TokenFilter에서 가능하지만 분석하기 전에 공백을 먼저 나누기 때문에 이러한 유형의 토큰은 표준 Lucene 쿼리 구문 분석기와 작동하지 않는다는 점을 알아야합니다. 당신의 목표가 무엇인지 설명해 주시겠습니까? 아마 다른 접근법들도 효과가있을 것입니다. – jpountz

+0

그것은 정보 검색 연구 (ESA 방법)를위한 것이고 설명하기가 어렵지만 http://github.com/faraday/wikiprep-esa에서 더 많은 정보를 찾을 수 있습니다. 제 가정은 "Computer_Information"을 인덱싱하면 더 나은 결과를 얻을 수 있다는 것입니다. 질의 시간. –

+0

TokenFilter를 검색 중이지만 내 목표로 사용하는 방법을 이해하지 못한다면 합성 단어 목록에 1,200 만 개가 넘는 항목이 있습니다! 복합 단어를 하나의 단어 (A B)로 대체하는 것보다 빠릅니다 (A_B) –

답변

1

I wrote a 토큰 필터 이것을 할 수 있습니다. @jpountz가 묘사 한 것입니다.

+0

Very Nice, 좋은 성능이 있습니까? 내 사전에는 ~ 3 백만 개의 항목이 있습니다. –

+0

기본 Hash 테이블 구현의 성능은 무엇이든 상관 없습니다. 3m 항목을 가진 해시 테이블을 생성하는 데는 어느 정도 시간이 걸릴 수 있으므로 분석기를 지속 할 수 있습니다. – Xodarap