摘要全文搜索

时间:2017-02-15 16:21:10

标签: java solr lucene full-text-search sphinx

是否可以使用一些开箱即用的搜索引擎(如Lucene,Solr或Sphinx)以及与查询最相关的搜索文档来创建大型文档的摘要?

我不需要在文档内搜索或创建代码段。只需获得最符合查询的5个文档。

更新。更具体地说,我不希望引擎保留整个文档,但只有它的"摘要" (您可以将其称为索引信息或TD-IDF表示)。

3 个答案:

答案 0 :(得分:1)

基本上,如果你想拥有摘要功能 - 有很多方法可以做到这一点,例如wiki上的TextRank,大articleNTLK中可用的大量实现, 和别的。但是,它无法帮助您进行查询,无论如何都需要将其编入索引。

我认为你可以使用名为More Like This的功能实现这样的功能。它存在于Lucene / Solr / Elasticsearch中。它背后的想法,如果你发送一个查询(这是文档的原始文本),搜索引擎将找到最合适的一个,通过从中提取最相关的单词(这提醒我有关摘要),然后将采取看里面的倒排索引找到前N个类似的文件。但是它不会丢弃文本,但它会像#34;喜欢"基于TF-IDF指标的运算符。

ElasticsearchLuceneSolr

中对MLT的引用

答案 1 :(得分:1)

  

但只有它"摘要" (您可以将其称为索引信息或TD-IDF表示。)

您正在寻找的内容似乎很标准:

  • Apache Lucene [1],如果你找一个库
  • Apache Solr或Elastic Search,如果您正在寻找 生产就绪企业搜索服务器。

Lucene搜索引擎如何工作[2]正在为文档中的每个字段构建一个反向索引(以及其他功能所需的一组其他数据结构)。

显然你不想做的是存储字段的内容,这意味着获取文本内容并将其存储在索引中的完整(压缩)中(稍后检索。)

在Lucene和Solr中,这是配置问题。

Summarisation是一个完全不同的NLP任务,可能不是您需要的。

干杯

[1] http://lucene.apache.org/index.html

[2] https://sease.io/2015/07/26/exploring-solr-internals-the-lucene-inverted-index/

答案 2 :(得分:1)

  

更新。更具体地说,我不希望引擎保持整体   文档,但只有它的“摘要”(你可以称之为索引信息   或TD-IDF表示。)

回答你更新的问题。 Lucene / Solr满足您的需求。对于“摘要”,您可以选择不通过指定存储原始文本:

 org.apache.lucene.document.Field.Store.NO

通过将“摘要”保存为字段org.apache.lucene.document.TextField,摘要将为indexedtokenized。它将存储TD-IDF信息供您搜索。