【问题标题】:integrating Elasticsearch & Stanford NLP without re-indexing无需重新索引即可集成 Elasticsearch 和斯坦福 NLP
【发布时间】:2015-07-20 00:53:06
【问题描述】:

我们一直在系统中使用 Elasticsearch。虽然我使用了它的分析器和查询。我没有深入研究它的索引。到目前为止,我不知道 ES 让我们在其分片中使用 Lucene(倒置)索引到什么程度。

我们现在正在研究一系列 NLP 功能——其中一个是 NER 斯坦福 NLP 提出上诉。

没有插件可以一起使用这两个包(?)

我没有深入了解斯坦福 NLP。然而——据我所见, 它正在工作 这一切都在它自己的索引上。无论传递给它的对象或类型, 斯坦福 NLP 正在索引它本身并从那里开始。

这将使系统为同一组文档工作 2 个不同的索引-- ES 和 StanfordNLP 的那些,这将是昂贵的。

有没有办法解决这个问题?

我的一个场景是:让 StanfordNLP 在 Lucene 段上工作——ES 已经构建的倒排索引。 在这种情况下:

1.) StanfordNLP 是否使用 Lucene 索引而不为自己重新索引任何内容?我不知道 StanfordNLP 的索引结构——甚至不知道它使用/不使用 Lucene 的程度。

2.) 在 ES 分片中使用 Lucene 索引有什么限制吗?我们会在直接使用这些 Lucene 段时跌到谷底,绕过 ES 吗?

我正在尝试将所有东西放在一起——暂时还没有定论。对不起天真的Q。

我知道 OpenNLP 及其插件。我还没有检查 - 我猜它不会是“双索引”并使用 ES 的索引(?) 然而,我们追求的是 StanfordNLP。

TIA。

【问题讨论】:

    标签: elasticsearch lucene nlp stanford-nlp opennlp


    【解决方案1】:

    Stanford NER 既不使用 Lucene/SOLR 索引,也不创建自己的文本索引。它将一段文本或标记序列映射到带有 NER 注释的标记序列。

    通常,您会在提取时、在标记化时、在索引之前对每个文档运行 NER,然后为每个文档索引实体和单词。

    我知道斯坦福 NER 没有现有的 ElasticSearch 插件,但看看人们是如何使用 Solr 做到这一点的,它可能会提供有用的信息:http://www.searchbox.com/named-entity-recognition-ner-in-solr/。 Solr 和 ElasticSearch 都在内部使用 Lucene 分析器和索引。

    【讨论】:

    • 感谢您的回复。有没有一种方法可以输入一组索引文档,即这些文档上的倒排索引,让 StanfordNLP 准备好它们而无需冗长的处理将它们变成自己的索引结构?没有办法绕过双重索引——除非我在每个文档的基础上工作,获取 StanfordNLP 组件的结果并从那里获取它(?)。我现在正在研究将其转换为斯坦福 NLP 类型的过程时间效率。
    • 有一系列包,nlp.stanford.edu/software/index.shtml。我现在一般都在看它们。我不知道每个具体做什么,但是我想知道使用那些处理整个文档库而不仅仅是几个文档我会有多大的担忧。
    【解决方案2】:

    github 上有一个存储库,它一直在使用OpenNLPgithub page 在 ElasticSearch 上试验 NER。它使用ElasticSearch Plugin 架构,因此应该很容易在 ES 实例中进行测试。我没有尝试过这个插件,但我在以前的工作中使用过 OpenNLP,它有一个非常可靠的 NER 解析器。

    【讨论】:

      猜你喜欢
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      • 2015-04-30
      • 2014-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多