【发布时间】:2013-10-11 11:50:25
【问题描述】:
我想检查数据库值和用户输入之间的单词顺序。
例如:
示例一:
数据库值:Lorem Ipsum
用户输入:Ipsum Lorem
示例 2:
数据库值:Lorem Ipsum Dolo
用户输入:Dolo Lorem Ipsum(以及可能的组合,除了 确切的分贝值)
我会在空格上进行拆分并比较匹配单词的索引,但总是有拼写错误的机会。例如:
数据库值:Lorem Ipsum
用户输入:Lorm Ipsm
在我的应用程序中,我必须允许容忍一些拼写错误。有没有其他方法可以查看订单?
我目前正在通过以下方式使用 Levenshtein(Ruby on Rails 代码)
answer = 'Lorem Ipsum'
response = 'Ipsum Lorem'
score = Text::Levenshtein.distance(answer,response)/answer.length.to_f
这是使用 levenshtein 得分的正确方法吗?如果是,我如何确定可接受的分数?有相同的示例数据资源吗?对于上面这个特定的例子,我得到的分数是0.72
【问题讨论】:
-
你能澄清你想要达到的目标吗?您是否将用户输入与数据库记录匹配而不管顺序并允许拼写错误?
-
与数据库记录相比,不匹配但在用户输入的词序变化中获得了某种分数。这同时允许拼写错误。
-
根据这个变化的分数,我会选择将其视为正确输入或不正确。
标签: ruby-on-rails string pattern-matching string-matching