2013-07-30 2 views
0

Я обрабатываю некоторые индонезийские тексты в приложении Java, и мне нужно их остановить.ищет индонезийский язык stemmer

В настоящее время я использую индейский стеблемер люцен. org.apache.lucene.analysis.id.IndonesianAnalyzer;

но результаты не являются удовлетворительными.

Может ли кто-нибудь предложить мне другой стебель?

+0

«Индонезийский Анализатор» кажется очевидным правильным выбором. Можете ли вы объяснить, почему это неудовлетворительно? – femtoRgon

+0

Это дает слова, которых даже не существует в индонезийском словаре. Подобно «berenang» и «pemenang», оба были связаны с «enang», которого не существует (проверено google translate). –

ответ

2

"enang" - это стебель. Стебли не обязательно должны быть фактическими словами. Например, на английском языке «спорить», «утверждает» и «спорить», сводится к «аргументу» стебля. «arg» не является английским словом, но это значимая основа. Вот как работают стволовые клетки. До тех пор, пока вы применяете стеблем так же, как к индексированным данным и запросу, он должен работать хорошо.

Если вы не хотите такого поведения, нет смысла использовать штокмер вообще.

Помимо инсектицидов, индонезийский Анализер довольно легко реплицируется. Это другие компоненты, которые включают только StandardTokenizer, StandardFilter, LowercaseAnalyzer и StopFilter. Это просто StandardAnalyzer с индонезийским набором стоп-слов, когда вы получите прямо к нему, так что вы можете создать Indonesiananalyzer без стеммера так просто, как:

//If you are using the default stopword location defined in the IndonesianAnalyzer you could load them like this. 
CharArraySet defaultStopSet = StopwordAnalyzerBaseloadStopwordSet(false, IndonesianAnalyzer.class, IndonesianAnalyzer.DEFAULT_STOPWORD_FILE, "#"); 
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_43, defaultStopSet); 

Я не уверен, будет ли у вас возникнут проблемы только передавая считыватель в файл стоп-слова по умолчанию в конструктор StandardAnalyzer.

Смежные вопросы