2009-11-06 51 views
2

我期待比較兩個文檔,以確定基於關鍵字的文本匹配百分比。文字處理/比較引擎

要做到這一點,我可以很容易地砍他們進入的消毒詞一組詞和比較,但我想的東西有點聰明,這東西可以匹配根據他們的根,即字。即使他們的時態或數量不同。這種技術似乎用於全文搜索,但我不知道要尋找什麼。

是否這樣的發動機(優選適用於爪哇)存在嗎?

回答

4

是的,你想有一個詞幹。 Lauri Karttunen在有限狀態機上做了一些很棒的工作,但令人遺憾的是,我不認爲有一個可用的實現可供使用。如前所述,Lucene擁有各種語言的詞幹,OpenNLP和Gate項目也可能對您有所幫助。另外,你打算如何「砍掉它們」?由於標點符號,擁有者等原因,這比大多數人想象的要複雜一些。在許多語言中,在空白區域分割根本不起作用。看看OpenNLP也是如此。

另一個要考慮的是,僅僅比較這兩個文件的不停止的話可能不是取決於你實際上是試圖做的,因爲你失去本地信息很好的相似性的最佳方法。例如,剽竊檢測的一種常見方法是將文檔分成n個令牌並對其進行比較。有一些算法可以比這樣更有效地比較每個文檔之間的成對比較,從而可以同時比較多個文檔。

1

我想Lucene可能是沿着你想找的線條。從我的經驗來看,它非常易於使用。

編輯:我只是重讀這個問題,想過這個問題更多一些。 Lucene是一個用於java的全文搜索引擎。但是,我不太確定如何重新設計你想要做的事。無論哪種方式,這可能是一個很好的資源,開始尋找並從那裏開始。

1

我不知道預構建的引擎,但如果您決定推出自己的(例如,如果您找不到預先編寫的代碼來執行您想要的操作),搜索「Porter Stemmer」應該讓你開始使用一種算法來合理地消除(大部分)後綴。