2013-05-03 66 views
3

我想創建一個應用程序在其數據庫中搜索相似的文檔;例如。用戶上傳文件(文本,圖像等),我想查詢我的應用程序是否有類似的情況。文檔相似性框架

我已經創建了用於該過程(指紋識別,特徵提取,哈希,哈希比較等)的必要算法,我正在尋找一個框架,它將所有這些耦合起來。

例如,如果我要實現它在Lucene的,我會做到以下幾點:

  • 創建自定義「標記生成器」和「詞幹」(〜特徵提取和指紋)
  • 不是添加創建的元素到Lucene索引
  • 最後使用MoreLikeThis類找到類似文件

所以,基本上Lucene的可能是一個不錯的選擇 - 但據我所知, Lucene並不是一個文檔相似性搜索引擎,而是一個基於術語的搜索引擎。

我的問題是:是否適用於上述問題的任何應用程序/框架?

感謝, krisy

更新:它看起來像我上面描述的過程被稱爲基於內容的媒體(聲音,圖像,視頻)檢索。

有使用Lucene的這許多項目,請參閱:http://wiki.apache.org/lucene-java/PoweredBy(里拉,同理,等等),但還是沒沒有發現任何專門的框架...

+0

看看[這個問題的答案](http://stackoverflow.com/questions/1844194/get-cosine-similarity-between-two-documents-in-lucene),我認爲它解決了同一主題。 – mindas 2013-05-03 09:20:21

+0

謝謝;它證實了我最初的想法可以在Lucene中完成! :-)但是還有其他專門爲此任務設計的框架嗎? – krisy 2013-05-03 09:26:41

+0

我聽說過[gensim](http://radimrehurek.com/gensim/),但這是針對Python的。不確定Java是否有類似的東西。 – mindas 2013-05-03 09:30:07

回答

0

由於您使用Lucene的,你可能會看一看SOLR。我確實意識到它不是一個專用的框架,但它確實在Lucene之上添加了一些非常方便的東西。考慮到Lucene的可插拔性,它的記錄以及存在大量有用資源的事實,SOLR可能會幫助您完成工作。

此外,answer是@mindas指出,鏈接the blog post描述如何與SOLR達成你的目標的技術細節(但你可能已經讀過,在此期間)。

+0

Solr看起來不錯 - 將仔細看看! 博客文章 - 是的,我讀了 - 看起來很棒;我自己的想法有點類似,謝謝! – krisy 2013-05-14 09:45:38

0

如果我正確地讓你有你自己的數據庫,並且您正在搜索數據庫中用戶上傳時/用戶上傳後是否重複或複製/相似。

如果是這樣的情況下,域相比是非常大的..

1)圖像必須使用模式匹配,有可用於圖像重複的發現者幾篇論文,淨,找到這些人,會得到很多選項是,

2)文檔再次出現的特點是分工

  1. DOC(X)
  2. PDF
  3. TXT
  4. RTF等。

每個文件進行不同的屬性,現在這裏Lucene可以幫助你,但它的搜索引擎,

當搜索語言模式,有我們需要的東西檢查,因爲你正在尋找類似的(不完全相同)。

因此,模糊語言程序將派上用場。

這個要求太大,論壇頁面將不足以反正解釋一切,我希望這多少會做

+0

我知道,這是一個巨大的領域 - 知道我只想找到最適合這項工作的工具。 關於論壇頁面的大小;這讓我想起:「我已經發現了一個非常奇妙的證據,這個邊緣太窄而無法包含」:-) – krisy 2013-05-14 09:49:04

+0

我已經看到了lucene,但沒有太多的意識到這一點,所以無法這麼說,但我知道使用神經語言或模糊邏輯你找到重複,使用神經語言你會創建一個模式,並使用模糊你可以分析和匹配它們。 SPSS工具是一種統計工具,只有在我記得正確的情況下才能使用包含文件的文本。它的演示是免費的。 – MarmiK 2013-05-14 09:52:30

+0

也許這是一個鏈接來匹配使用spss的兩個數據集,如果它涉及'http:// www.ats.ucla.edu/stat/spss/faq/update.htm' :) – MarmiK 2013-05-14 09:57:13