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
переопределяются на основе сходства деревьев разбора.