通过摘要进行全文搜索
Full text search by summaries
是否可以使用一些开箱即用的搜索引擎(如 Lucene、Solr 或 Sphinx)创建大型文档的摘要并搜索与查询最相关的文档?
我不需要在文档中搜索或创建片段。只需获取 5 个与查询最匹配的文档。
Update. 更具体地说,我不希望引擎保留整个文档,但只有 "summary"(你可以称它为 索引信息 or TD-IDF representation).
基本上,如果您想拥有摘要功能 - 有很多方法可以实现,例如 TextRank, big article on the wiki, tons of implementation available in NTLK,等等。但是,它不会帮助您进行查询,无论如何您都需要在某个地方对其进行索引。
我认为您可以使用名为 More Like This 的功能实现类似的功能。它存在于 Lucene/Solr/Elasticsearch 中。它背后的想法是,如果你发送一个查询(这是文档的原始文本),搜索引擎将通过从中提取最相关的词(这让我想起了总结)来找到最合适的,然后将进行查看倒排索引以查找前 N 个相似文档。不过,它不会丢弃文本,但会根据 TF-IDF 指标执行 "like" 运算符。
中 MLT 的参考资料
but only it's "summary" (you may call it index information or TD-IDF representation).
你要找的东西看起来很标准:
- Apache Lucene [1],如果你找一个库
- Apache Solr 或 Elastic Search,如果您正在寻找
生产就绪企业搜索服务器。
Lucene 搜索引擎的工作原理 [2] 正在为文档中的每个字段构建倒排索引(加上其他功能所需的一组附加数据结构)。
显然你不想做的是 store 字段的内容,这意味着获取文本内容并将其完整(压缩)存储在索引中(稍后检索)。
在 Lucene 和 Solr 中,这是配置问题。
总结是一项完全不同的 NLP 任务,可能不是您所需要的。
干杯
[1] http://lucene.apache.org/index.html
[2]https://sease.io/2015/07/26/exploring-solr-internals-the-lucene-inverted-index/
Update. More specifically I don't want an engine to keep the whole
document, but only it's "summary" (you may call it index information
or TD-IDF representation).
回答你更新的问题。 Lucene/Solr 满足您的需求。对于 'summary',您可以选择不存储原始文本,方法是指定:
org.apache.lucene.document.Field.Store.NO
通过将 'summary' 保存为字段 org.apache.lucene.document.TextField
,摘要将是 indexed
和 tokenized
。它将存储 TD-IDF 信息供您搜索。
是否可以使用一些开箱即用的搜索引擎(如 Lucene、Solr 或 Sphinx)创建大型文档的摘要并搜索与查询最相关的文档?
我不需要在文档中搜索或创建片段。只需获取 5 个与查询最匹配的文档。
Update. 更具体地说,我不希望引擎保留整个文档,但只有 "summary"(你可以称它为 索引信息 or TD-IDF representation).
基本上,如果您想拥有摘要功能 - 有很多方法可以实现,例如 TextRank, big article on the wiki, tons of implementation available in NTLK,等等。但是,它不会帮助您进行查询,无论如何您都需要在某个地方对其进行索引。
我认为您可以使用名为 More Like This 的功能实现类似的功能。它存在于 Lucene/Solr/Elasticsearch 中。它背后的想法是,如果你发送一个查询(这是文档的原始文本),搜索引擎将通过从中提取最相关的词(这让我想起了总结)来找到最合适的,然后将进行查看倒排索引以查找前 N 个相似文档。不过,它不会丢弃文本,但会根据 TF-IDF 指标执行 "like" 运算符。
中 MLT 的参考资料but only it's "summary" (you may call it index information or TD-IDF representation).
你要找的东西看起来很标准:
- Apache Lucene [1],如果你找一个库
- Apache Solr 或 Elastic Search,如果您正在寻找 生产就绪企业搜索服务器。
Lucene 搜索引擎的工作原理 [2] 正在为文档中的每个字段构建倒排索引(加上其他功能所需的一组附加数据结构)。
显然你不想做的是 store 字段的内容,这意味着获取文本内容并将其完整(压缩)存储在索引中(稍后检索)。
在 Lucene 和 Solr 中,这是配置问题。
总结是一项完全不同的 NLP 任务,可能不是您所需要的。
干杯
[1] http://lucene.apache.org/index.html
[2]https://sease.io/2015/07/26/exploring-solr-internals-the-lucene-inverted-index/
Update. More specifically I don't want an engine to keep the whole document, but only it's "summary" (you may call it index information or TD-IDF representation).
回答你更新的问题。 Lucene/Solr 满足您的需求。对于 'summary',您可以选择不存储原始文本,方法是指定:
org.apache.lucene.document.Field.Store.NO
通过将 'summary' 保存为字段 org.apache.lucene.document.TextField
,摘要将是 indexed
和 tokenized
。它将存储 TD-IDF 信息供您搜索。