SOLR и анализ естественного языка. Могу ли я использовать его?

Требования

Частотный алгоритм слов для обработки естественного языка

Использование Solr

Хотя ответ на этот вопрос отличный, мне было интересно, могу ли я использовать все время, которое я потратил на знакомство с SOLR для моего НЛП.

Я думал о SOLR, потому что:

  • Он получил кучу токенизаторов и выполняет много НЛП.
  • Это довольно удобно использовать из коробки.
  • Это успокаивающее распределенное приложение, поэтому его легко подключить.
  • Я провел некоторое время с этим, поэтому использование могло бы сэкономить мне время.

Могу ли я использовать Solr?

Несмотря на то, что приведенные выше причины хороши, я не знаю SOLR THAT, поэтому мне нужно знать, подходит ли оно для моих требований.

Идеальное использование

В идеале, я хотел бы настроить SOLR, а затем отправить SOLR текст и получить индексированный контент с тонкостями.

Контекст

Я работаю над небольшим компонентом более крупного механизма рекомендаций.

Ответ 1

Я думаю, вы можете использовать Solr и объединить его с другими инструментами. Токенизация, удаление стоп-слов, сужение и даже синонимы выходят из коробки с помощью Solr. Если вам требуется распознавание имени или извлечение базовой фразы, вам нужно использовать OpenNLP или эквивалентный инструмент в качестве этапа предварительной обработки. Вероятно, вам понадобятся терминальные векторы для ваших поисковых целей. Интеграция Apache Mahout с Apache Lucene и Solr может быть полезна, поскольку она обсуждает интеграцию Lucene и Solr с механизмом машинного обучения (включая рекомендации). В противном случае, не стесняйтесь задавать более конкретные вопросы.

Ответ 2

Фактически вы можете настроить Solr на использование алгоритмов NLP как при индексировании документов, так и во время поиска. Первая фаза (время индексирования) может быть выполнена с использованием/записи плагинов Solr UpdateRequestProcessor для анализа текстов текстов, в то время как вторая фаза может быть реализована путем написания пользовательского QParserPlugin, который анализирует запрос, пораженный пользователем. Я представил подход для реализации поиска естественного языка в Solr на Lucene Eurocon 2011, который использует Apache UIMA для запуска (open source) алгоритмов NLP. Вы можете посмотреть slides и на видео" > беседы. Надеюсь это поможет. Томмазо

Ответ 3

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

Смотрите блог http://search-engineering.blogspot.com

и документ http://dx.doi.org/10.1016/j.datak.2012.07.003

Этот обработчик запроса поиска SOLR будет доступен как часть компонента сходства OpenNLP

Ответ 4

В этом проекте кода Google

http://code.google.com/p/relevance-based-on-parse-trees

вы можете использовать обработчик запросов на основе лингвистики в пакете opennlp.tools.similarity.apps.solr Открытый класс SyntGenRequestHandler расширяет SearchHandler

где результаты поиска, полученные SearchHandler переопределяются на основе сходства деревьев разбора.