Независимый от культуры стеммер / анализатор для Lucene.NET - PullRequest
0 голосов
/ 28 марта 2011

В настоящее время мы разрабатываем приложение с поддержкой полнотекстового поиска, и Lucene.NET - наше предпочтительное оружие.Ожидается, что приложение будет использоваться людьми из разных стран, поэтому Lucene.NET должен уметь одинаково хорошо выполнять поиск по русскому, английскому и другим текстам.

Существуют ли универсальные и независимые от культуры стеммеры?и анализаторы под наши нужды?Я понимаю, что в конечном итоге нам придется использовать культурные особенности, но мы хотим начать работу с этим потенциально быстрым и грязным подходом.

Ответы [ 2 ]

1 голос
/ 28 марта 2011

Учитывая, что орфография, грамматика и наборы символов английского и русского языков существенно различаются, любой стеммер, который попытался сделать оба, был бы либо массивно большим, либо плохо работоспособным (скорее всего, оба).

Вероятно, было бы намного лучше использовать стеммер для каждого языка и выбирать, какой из них использовать, основываясь на подсказках пользовательского интерфейса (какой язык используется для запроса) или путем явного выбора.

Сказав это, маловероятно, что какой-либо русский текст будет соответствовать поисковому запросу на английском языке правильно или наоборот.

Это похоже на случай, когда немного больше бизнес-анализа помогло бы больше, чем код.

1 голос
/ 28 марта 2011

Нет такого понятия, как независимый от языка стеммер. Фактически, улучшает ли поиск по стволам производительность поиска, зависит от языка. Лучшее, что вы можете сделать, - это угадать язык в документах и ​​запросах, а затем отправить их в соответствующий анализатор / стеммер.

Язык угадывания при коротких запросах - сложный , хотя (как в современном состоянии, не быстрый 'n' грязный). Если ваши запросы короткие, вы можете использовать простой анализатор пробелов в запросах и ничего не останавливать.

...