是否可以使用一些現成的搜索引擎(如Lucene,Solr或Sphinx)以及與查詢最相關的搜索文檔來創建大型文檔的摘要?按摘要進行全文搜索
我不需要在文檔內搜索或創建一個片段。只需獲得最符合查詢的5個文檔。
更新。更具體地說,我不希望引擎保留整個文檔,但只有它是「摘要」(您可以稱它爲索引信息或TD-IDF表示)。
是否可以使用一些現成的搜索引擎(如Lucene,Solr或Sphinx)以及與查詢最相關的搜索文檔來創建大型文檔的摘要?按摘要進行全文搜索
我不需要在文檔內搜索或創建一個片段。只需獲得最符合查詢的5個文檔。
更新。更具體地說,我不希望引擎保留整個文檔,但只有它是「摘要」(您可以稱它爲索引信息或TD-IDF表示)。
更新。更具體地說,我不希望引擎保留整個 文檔,但只有它是「摘要」(您可以將其稱爲索引信息 或TD-IDF表示形式)。
回答您更新的問題。 Lucene/Solr符合您的需求。對於「摘要」,你可以選擇不通過指定存儲原文:
org.apache.lucene.document.Field.Store.NO
通過保存「摘要」作爲現場org.apache.lucene.document.TextField
,總結會indexed
和tokenized
。它將存儲TD-IDF信息供您搜索。
基本上,如果你想有摘要功能 - 有很多方法可以做到這一點,例如TextRank,wiki上的大article,可用於NTLK的大量實現等等。但是,它不會幫助你查詢,你需要在任何地方索引它。
我想你可以使用稱爲More Like This的功能來實現這樣的功能。它存在於Lucene/Solr/Elasticsearch中。它背後的想法是,如果你發送一個查詢(這是文檔的原始文本),搜索引擎將找到最合適的一個,通過從中提取最相關的單詞(這使我想起總結),然後將採取查看裏面的倒排索引以找到最前N個相似的文檔。不過,它不會丟棄文本,但它會根據TF-IDF度量標準來做「喜歡」操作符。
參考MLT在Elasticsearch,Lucene,Solr
,但只有它的 「摘要」(你可以把它叫做索引信息或TD-IDF表示)。
什麼你正在尋找似乎相當標準:
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/
我不是那些系統的專家,但除非您提供一些關於摘要應該是什麼樣子的定義,那麼這些系統應該如何知道在哪裏尋找匹配?我要麼提供一些搜索到的摘要字段,要麼對整個文檔進行查詢。一般而言 - – Thomas
- 是的,你可以應用一些技術,但我認爲你的問題非常廣泛,你能更具體一點嗎? – Mysterion
更新了問題。 –