18

要求

自然语言处理的词频算法

使用 Solr

虽然这个问题的答案很好,但我想知道我是否可以利用我花在了解 SOLR 上的所有时间来进行 NLP。

我想到了 SOLR,因为:

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

我可以使用 Solr 吗?

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

理想用途

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

语境

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

4

4 回答 4

14

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

于 2010-06-02T10:52:04.233 回答
7

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

于 2011-11-22T08:48:39.477 回答
3

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

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

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

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

于 2012-09-19T17:11:08.723 回答
2

在这个谷歌代码项目中

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

您可以使用 opennlp.tools.similarity.apps.solr 包中的基于语言的请求处理程序 public class SyntGenRequestHandler extends SearchHandler

其中 SearchHandler 得到的搜索结果会根据解析树的相似度进行重新排序。

于 2012-11-09T00:29:25.980 回答