2011-02-24 68 views
4

我正在構建一個Android應用程序,它接受一個字符串輸入並返回使用Google API的書籍的排名列表。Android和模糊匹配,n-gram和Levenshtein距離

我正在尋找一種方法來比較用戶輸入的開放式字符串與列表中的第一項,以查看它們輸入的內容是否可能是一本書。我有關於書籍,標題,作者,說明等的大量信息,所以我可以在任何部分進行搜索。

一個例子是:

 
'eyre affair fforde', 'fforde eyre affair', 'the eyre affair' 
----> 
'Likely' to be 'The Eyre Affair by Jasper Fforde' 

什麼會去了解這一點的最好方法是什麼?我已經考慮了levenshtein距離,但不認爲它可以用於這種開放式輸入,n-gram似乎是一種好方法或模糊匹配。

還有其他想法嗎?

回答

7

我會去的其中之一:

SimMetrics(SimMetrics是相似度或距離度量,例如Levenshtein距離,L2距離,餘弦相似度,Jaccard相似等等等等的一個開源可擴展庫)

下議院郎LevenshteinDistance

還是擺脫聽力或拼寫錯誤:soundexmetaphone

+0

輝煌,非常感謝你的鏈接。 – 2011-02-25 23:31:41

+0

@ puppetmaster04:你非常歡迎,我很高興能幫上忙。我閱讀了您的問題,並且很好奇您的應用會如何發展。 – Chris 2011-02-26 00:20:53

+0

不幸的是,除SimMetrics之外的所有鏈接均已死機 – MrMaffen 2013-12-10 23:27:18