Лучший межъязыковой анализатор для использования с индексом lucene [закрыто]

StackOverflow https://stackoverflow.com/questions/1001003

  •  05-07-2019
  •  | 
  •  

Вопрос

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

Есть ли какие-либо другие предложения или я должен просто использовать простой анализатор?

Спасибо

Это было полезно?

Решение

SimpleAnalyzer действительно прост, все, что он делает, это строчные термины. Я бы подумал, что StandardAnalyzer даст лучшие результаты, чем SimpleAnalyzer, даже с данными не на английском языке. Возможно, вы могли бы немного улучшить его, предоставив собственный список стоп-слов в дополнение к стандартным англоязычным.

Другие советы

Из вашего описания я предполагаю, что у вас есть документ на нескольких языках, но каждый документ имеет текст только на одном языке.

В этом случае вы можете использовать идентификацию языка Nutch для получения языка документа. Затем используйте соответствующий анализатор языка для индексации. Чтобы получить правильные результаты поиска, необходимо применить идентификацию языка к поисковому запросу и использовать этот анализатор.

Плюсом здесь является то, что вы сможете использовать стеммер для конкретного языка & amp; стоп-слова, повышающие качество поиска. Дополнительные издержки при индексации должны быть приемлемыми. Однако могут пострадать поисковые запросы, в которых идентификация языка не может определить правильный язык. Я использовал эту пару лет назад, и результаты оказались лучше, чем ожидалось.

Для CJK вы можете применить похожую технику, но инструменты могут отличаться.

Я использовал StandardAnalyzer с неанглийскими словами, и он работает нормально. Это даже касается акцентированных персонажей. Если язык CJK (китайский, японский, корейский), русский или немецкий, у него могут быть проблемы, но я подозреваю, что большинство проблем будет связано с основанием слов. Если у вас не включен стемминг, вероятно, этого будет достаточно.

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

Большинство наших документов составлены на английском языке, но значительная их часть на китайском и японском языках, а на французском, испанском, португальском и корейском - меньше.

Конечный результат? Мы используем StandardAnalyzer , и у нас очень мало жалоб от людей, использующих систему на других языках, о том, как работает наш поиск. Кстати, наша система несколько «навязана» своим пользователям, поэтому люди не жалуются, а куда-то уходят; если они несчастны, мы, как правило, знаем.

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

Правильный ответ зависит от вашего основного языка (если есть).

Для лучшей межъязыковой ИК-производительности я бы выбрал анализатор на 4/5 грамма, он отлично работает на многих языках. Это может даже работать лучше, чем SimpleAnalyzer для английского языка. См. http://www.eecs.qmul.ac. uk / ~ christof / html / публикации / inrt142.pdf , например.

Я смотрел на это , но из другой угол. Кажется, что нет универсального анализатора - для каждого языка нужен свой подход для достижения наилучших результатов.

Во-первых, вы должны выяснить, на каком языке вы говорите? Например, мои документы находятся в английский, японский или персидский. вы можете обнаружить, что ваш язык документа по процессу на UTF-8 символов.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top