2017-02-15 56 views
0

是否可以使用一些現成的搜索引擎(如Lucene,Solr或Sphinx)以及與查詢最相關的搜索文檔來創建大型文檔的摘要?按摘要進行全文搜索

我不需要在文檔內搜索或創建一個片段。只需獲得最符合查詢的5個文檔。

更新。更具體地說,我不希望引擎保留整個文檔,但只有它是「摘要」(您可以稱它爲索引信息或TD-IDF表示)。

+1

我不是那些系統的專家,但除非您提供一些關於摘要應該是什麼樣子的定義,那麼這些系統應該如何知道在哪裏尋找匹配?我要麼提供一些搜索到的摘要字段,要麼對整個文檔進行查詢。一般而言 - – Thomas

+1

- 是的,你可以應用一些技術,但我認爲你的問題非常廣泛,你能更具體一點嗎? – Mysterion

+0

更新了問題。 –

回答

1

更新。更具體地說,我不希望引擎保留整個 文檔,但只有它是「摘要」(您可以將其稱爲索引信息 或TD-IDF表示形式)。

回答您更新的問題。 Lucene/Solr符合您的需求。對於「摘要」,你可以選擇不通過指定存儲原文:

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

通過保存「摘要」作爲現場org.apache.lucene.document.TextField,總結會indexedtokenized。它將存儲TD-IDF信息供您搜索。

1

基本上,如果你想有摘要功能 - 有很多方法可以做到這一點,例如TextRank,wiki上的大article,可用於NTLK的大量實現等等。但是,它不會幫助你查詢,你需要在任何地方索引它。

我想你可以使用稱爲More Like This的功能來實現這樣的功能。它存在於Lucene/Solr/Elasticsearch中。它背後的想法是,如果你發送一個查詢(這是文檔的原始文本),搜索引擎將找到最合適的一個,通過從中提取最相關的單詞(這使我想起總結),然後將採取查看裏面的倒排索引以找到最前N個相似的文檔。不過,它不會丟棄文本,但它會根據TF-IDF度量標準來做「喜歡」操作符。

參考MLT在ElasticsearchLuceneSolr

1

,但只有它的 「摘要」(你可以把它叫做索引信息或TD-IDF表示)。

什麼你正在尋找似乎相當標準:

  • 的Apache Lucene的[1],如果你找一個庫
  • Apache Solr實現或彈性的搜索,如果你正在尋找一個 生產就緒企業搜索服務器。

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/