如何根据用户文本输入从列表中选择最可能的选项


11

我正在研究OCR应用程序,需要根据用户文本输入选择一个选项。

Ex:
Available Options:
["python", "ruby", "java", "clojure", "haskell"]

Input: kava
Output: java

Input: ruby
Output: ruby

Input: clujuro
Output: clojure

etc.. 

我的应用程序基于python,是否已经存在解决该问题的算法。


1
现在可能不值得纠正,但是IMO一个更合适的标题是“如何确定弦之间的距离(差)”
Jeff Welling

3
@Jeff:然后我再也找不到这个问题,因为我根本不知道我所需要的叫做“距离差”……而这并不是不将所需解决方案放入其中的唯一原因。题。它可能会阻止人们针对您实际遇到的问题提出替代解决方案。恰当的例子:大视技术的答案。
Marjan Venema

1
我的意思是,既然您已经知道,使用更准确的标题可能会帮助吸引那些不知道“如何选择最可能...”但知道“字符串之间的距离”的人的答案,但是每个人。这只是一个建议。我不知道您的意思,因此几乎没有点击您的问题。
杰夫·威灵

Answers:


10

这是通过“ 近似字符串匹配 ”类别的算法完成的。比较两个字符串的常用方法称为Levenshtein距离。有可用的Python实现在这里

您基本上可以将输入与可能的输出进行比较,然后选择与所需输出距离最短的输入。

维基百科文章还提到了其他各种算法,以防万一您需要更具体的内容。


我在红宝石中也遇到了类似的问题,而这正是我解决的方法。
杰夫·韦林

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.