Как стать автором
Обновить

Комментарии 7

Интересная статья, профессионально все изложено. Давно интересовала эта тема. Практически нашлись все ответы на мои вопросы.

Как вы определяете язык документа когда текст многоязычный? Стоп слова нужно разных языков использовать же?

Мы для фильтрации слов (вместо словарей стоп-слов) используем морфологический анализатор  для русского языка  pyMorphy2. Соответственно, если язык слова не русский, то для нормализации применяем Wordnet лемматизатор из NLTK.

Не пробовали префиксное дерево использовать для хранения индекса?

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

А если в поиск ввести именованные сущности, как организован их поиск? Например: Екатеринбург или Naumen

При вводе значений в поисковую строку поведение системы всегда одинаково, работает полнотекстовый поиск. Что касается задачи NER (Named Entity Recognition), то для этого подходит фасетный поиск, т.е. через фильтры. Естественно, фильтры у нас тоже есть. Задачу NER нам приходилось решать, можно значения фильтров наполнять распознанными по тексту именованными сущностями.

Зарегистрируйтесь на Хабре , чтобы оставить комментарий