2015-11-30 4 views
2

Я ищу слово в поиске на основе lucene, и я хочу преобразовать строку, например, «есть», «ест», чтобы «есть» в java. Я искал и нашел лемматизацию в качестве решения, но все инструменты английского lemmatizer, с которыми я столкнулся, используют список слов или словарь. Есть ли какой-либо lemmatizer, который позволяет избежать поиска в словаре и дает высокую эффективность, может быть lemmatizer, основанный на правилах. Да, и я не ищу «стволовых». или Есть какой-либо способ (не важно, готовы использовать библиотеку, любой алгоритм, подход и т. д.), чтобы получить корень/исходное слово.Английский Лемматизатор без словаря для JAVA?

ответ

1

На английском языке нет никаких инструментов, основанных на правилах, потому что для многих слов невозможно создать регулярные правила, например. все неправильные глаголы или некоторые существительные множественного числа, такие как дети/дети или мужчины/мужчины. Если вы ищете решение с высокой эффективностью, я могу порекомендовать посмотреть проект English/Russian morphology for Lucene. Он имеет скорость около 800 000 слов в секунду, потребляет небольшой объем памяти - несколько мегабайт и обеспечивает некоторую эвристику для нормализации неизвестных слов.