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
或者摆脱听力或拼写错误:soundex或metaphone.
标签:java,android,levenshtein-distance,fuzzy-search,n-gram 来源: https://codeday.me/bug/20190526/1156777.html