문제

Java 응용 프로그램에서 일부 영어 텍스트를 처리 중이며이를 어간해야합니다. 예를 들어 "amenities / amenity"라는 텍스트에서 "amenit"를 가져와야합니다.

함수는 다음과 같습니다. 라코 디스

Lucene 분석기를 찾았지만 내가 필요한 것에 비해 너무 복잡해 보입니다. http://lucene.apache.org/java/2_2_0/api/org/apache/lucene/analysis/PorterStemFilter.html

분석기를 구축하지 않고 단어를 분리하는 데 사용할 수있는 방법이 있습니까?모든 Analyzer 비즈니스를 이해하지 못합니다 ...

편집 : 실제로 형태소 분석 + 표명 화가 필요합니다.Lucene이 이것을 할 수 있습니까?

도움이 되었습니까?

해결책

라코 디스

여기 <자세한 내용은 / a>를 참조하십시오.형태소 분석 만 수행 할 수있는 경우 Lucene 대신 this 를 사용해야합니다.

수정 : term에 전달하기 전에 stem()를 소문자로 지정해야합니다.

다른 팁

SnowballAnalyzer는 더 이상 사용되지 않습니다. 대신 Lucene Porter Stemmer를 사용할 수 있습니다. 라코 디스

도움이 되길 바랍니다!

'EnglishAnalyzer'를 사용하지 않는 이유는 무엇입니까?사용이 간단하고 문제가 해결 될 것 같습니다. 라코 디스

도움이 되길 바랍니다!

이전 예제는 검색 쿼리에 형태소 분석을 적용하므로 전체 텍스트를 형태소에 관심이 있다면 다음을 시도해 볼 수 있습니다. 라코 디스

TermAttribute 클래스는 더 이상 사용되지 않으며 Lucene 4에서 더 이상 지원되지 않지만 문서는 그 자리에서 무엇을 사용해야하는지 명확하지 않습니다.

또한 첫 번째 예에서 PorterStemmer는 클래스 (숨김)로 사용할 수 없으므로 직접 사용할 수 없습니다.

도움이 되었기를 바랍니다.

다음은 JAVA에서 Snowball Stemmer를 사용하는 방법입니다. 라코 디스

Ling pipe 는 여러 토크 나이저를 제공합니다.형태소 분석 및 중지 단어 제거에 사용할 수 있습니다.간단하고 효과적인 형태소 분석 수단입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top