我想創建一個應用程序在其數據庫中搜索相似的文檔;例如。用戶上傳文件(文本,圖像等),我想查詢我的應用程序是否有類似的情況。文檔相似性框架
我已經創建了用於該過程(指紋識別,特徵提取,哈希,哈希比較等)的必要算法,我正在尋找一個框架,它將所有這些耦合起來。
例如,如果我要實現它在Lucene的,我會做到以下幾點:
- 創建自定義「標記生成器」和「詞幹」(〜特徵提取和指紋)
- 不是添加創建的元素到Lucene索引
- 最後使用MoreLikeThis類找到類似文件
所以,基本上Lucene的可能是一個不錯的選擇 - 但據我所知, Lucene並不是一個文檔相似性搜索引擎,而是一個基於術語的搜索引擎。
我的問題是:是否適用於上述問題的任何應用程序/框架?
感謝, krisy
更新:它看起來像我上面描述的過程被稱爲基於內容的媒體(聲音,圖像,視頻)檢索。
有使用Lucene的這許多項目,請參閱:http://wiki.apache.org/lucene-java/PoweredBy(里拉,同理,等等),但還是沒沒有發現任何專門的框架...
看看[這個問題的答案](http://stackoverflow.com/questions/1844194/get-cosine-similarity-between-two-documents-in-lucene),我認爲它解決了同一主題。 – mindas 2013-05-03 09:20:21
謝謝;它證實了我最初的想法可以在Lucene中完成! :-)但是還有其他專門爲此任務設計的框架嗎? – krisy 2013-05-03 09:26:41
我聽說過[gensim](http://radimrehurek.com/gensim/),但這是針對Python的。不確定Java是否有類似的東西。 – mindas 2013-05-03 09:30:07