SOLR和自然语言解析 - 我可以使用它吗?

时间:2010-06-02 03:34:24

标签: lucene solr nlp recommendation-engine

要求

Word frequency algorithm for natural language processing

使用Solr

虽然这个问题的答案非常好,但我想知道我是否可以利用所有的时间来了解SOLR以获得我的NLP。

我想到了SOLR,因为:

  1. 它有一堆标记符并执行大量NLP。
  2. 开箱即用非常有用。
  3. 这是一个安静的分布式应用程序,所以很容易挂钩
  4. 我花了一些时间,所以使用可以节省我的时间。
  5. 我可以使用Solr吗?

    虽然上述原因很好,但我不太了解SOLR,所以我需要知道它是否适合我的要求。

    理想用法

    理想情况下,我想配置SOLR,然后能够发送SOLR一些文本,并检索索引的tonkenized内容。

    上下文

    我正在研究更大推荐引擎的一个小组件。

4 个答案:

答案 0 :(得分:10)

我猜你可以使用Solr并将其与其他工具结合使用。 标量化,停止单词删除,词干化,甚至同义词都是Solr开箱即用的。 如果您需要命名实体识别或基本名词短语提取,则需要使用OpenNLP或等效工具作为预处理阶段。您可能需要术语向量用于检索目的。 Integrating Apache Mahout with Apache Lucene and Solr可能很有用,因为它讨论了Lucene和Solr与机器学习(包括推荐)引擎的集成。除此之外,请随时提出更具体的问题。

答案 1 :(得分:6)

实际上,您可以将Solr配置为在索引文档和搜索时使用NLP算法。 第一阶段(索引时间)可以使用/编写Solr UpdateRequestProcessor插件来分析字段文本,而第二阶段可以通过编写自定义QParserPlugin来实现,该QParserPlugin分析用户查询的查询。 我在Lucene Eurocon 2011上提出了一种在Solr中实现自然语言搜索的方法,该方法利用Apache UIMA来运行(开源)NLP算法。 您可以查看slides和谈话的video。 希望这可以帮助。 托马索

答案 2 :(得分:3)

有一个特殊的请求处理程序,用于应用解析来过滤不太相关的搜索结果。它基于OpenNLP获得的选区解析树的机器学习。

请参阅博客 http://search-engineering.blogspot.com

和论文 http://dx.doi.org/10.1016/j.datak.2012.07.003

此SOLR搜索请求处理程序将作为OpenNLP相似性组件的一部分提供

答案 3 :(得分:2)

在此Google代码项目中

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

您可以使用基于语言的请求处理程序 在包opennlp.tools.similarity.apps.solr中 公共类SyntGenRequestHandler扩展了SearchHandler

搜索结果由SearchHandler获取 根据解析树的相似性重新排名。