编程语言
首页 > 编程语言> > java – Android&模糊匹配,n-gram和Levenshtein距离

java – Android&模糊匹配,n-gram和Levenshtein距离

作者:互联网

我正在构建一个Android应用程序,它采用字符串输入并使用Google API返回排名的书籍列表.

我正在寻找一种方法来比较用户输入的开放式字符串,以及列表中的第一项,以查看他们输入的内容是否“可能”是一本书.我有大量关于书籍,标题,作者,描述等的信息,所以我可以搜索任何部分.

一个例子是:

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

最好的方法是什么?我已经看过levenshtein距离,但是不认为它可以用这种开放式输入,n-gram似乎是一个很好的方法,或模糊匹配.

还有其他想法吗?

解决方法:

我会选择其中一个:

SimMetrics(SimMetrics是一个开源可扩展的相似度或距离度量库,例如Levenshtein距离,L2距离,余弦相似度,Jaccard相似度等等)

Commons Lang LevenshteinDistance

或者摆脱听力或拼写错误:soundexmetaphone.

标签:java,android,levenshtein-distance,fuzzy-search,n-gram
来源: https://codeday.me/bug/20190526/1156777.html