安卓&模糊匹配、n-gram 和 Levenshtein 距离

发布于 2024-10-19 09:28:27 字数 406 浏览 2 评论 0原文

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

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

一个例子是:

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

解决这个问题的最佳方法是什么?我已经研究过编辑距离,但认为它不适用于这种开放式输入,n-grams 似乎是一个好方法,或者模糊匹配。

还有其他想法吗?

I am building an Android app which takes a string input and returns a ranked list of books using the Google API.

I am looking for a way to compare the open ended string that the user enters, with the first item in the list to see if what they entered is 'likely' to be one book. I have loads of information about the book, title, author, description etc so I can search in any part.

An example is:

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

What would be the best way to go about this? I have looked at levenshtein distance but don't think it would work with such open ended input, n-grams seem a good way to go, or fuzzy matching.

Any other ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦中楼上月下 2024-10-26 09:28:27

我会选择其中之一:

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

Commons Lang LevenshteinDistance

或者消除听力或拼写错误:soundexmetaphone

I would go with one of these:

SimMetrics (SimMetrics is an open source extensible library of Similarity or Distance Metrics, e.g. Levenshtein Distance, L2 Distance, Cosine Similarity, Jaccard Similarity etc etc.)

Commons Lang LevenshteinDistance

Or to get rid of hearing or spelling mistakes: soundex or metaphone.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文