2014-10-09 3 views
0

일부 텍스트 영역에서 결정 및 선택을위한 알고리즘을 찾고 있는데, 이는 일부 사용자 쿼리와 관련이 있습니다. 어쩌면 텍스트에서 사용자 쿼리와 관련된 스 니펫을 선택하십시오.텍스트에서 관련 영역을 찾는 방법은 무엇입니까?

누구든지이 작업에 적합한 알고리즘을 권장 할 수 있습니까?

P. 나는이 질문을 보았다 : Is there an algorithm for determining the relevance of a text to a theme? 텍스트의 관련 영역을 선택해야하고, 기계 학습 알고리즘을 사용하는 것이이 작업에 적합하지 않기 때문에 제 질문에 대한 해결책이 아닙니다.

답변

2

이 경우 Lucene Highlighter을 사용할 수 있습니다. Lucene의 강조 패키지에는 결과 페이지의 텍스트에서 검색 용어를 강조하는 데 일반적으로 사용되는 "키워드를 문맥에"제공하는 클래스가 포함되어 있습니다.

형광펜 클래스는 중심 구성 요소이며 Fragmenter, fragment Scorer 및 Formatter 클래스를 사용하여 텍스트 부분에서 가장 흥미로운 부분을 추출하고 강조 표시하는 데 사용할 수 있습니다. Highlighter 클래스의 getBestTextFragments 메서드는 문서에서 가장 관련성 높은 텍스트를 선택합니다.

샘플 조각 :

Highlighter highlighter = new Highlighter(htmlFormatter, new QueryScorer(query)); 
for (int i = 0; i < 10; i++) { 
    int id = hits.scoreDocs[i].doc; 
    Document doc = searcher.doc(id); 
    TokenStream tokenStream = TokenSources.getAnyTokenStream(searcher.getIndexReader(), id, "body", analyzer); 
    TextFragment[] frag = highlighter.getBestTextFragments(tokenStream, text, false, 10); 
    ... 
    ... 
관련 문제