首页 > 解决方案 > Ruby 可以识别同一个单词的不同拼写吗?

问题描述

在获取用户输入时,除了在我的代码中编写每个拼写,还有其他方法可以识别"gr*y"*字符无关紧要)吗?"grey""gray"

标签: ruby

解决方案


您要查找的术语称为fuzzy matchor fuzzy search

我找到了 3 个库,它们提供了这样的功能:

您可以查看他们每个人的文档并决定,这对您来说更可取。我只是展示以下示例amatch

require 'amatch'
include Amatch

m = Levenshtein.new("grey")
m.match('gray') # 1
m.match('pray') # 2

它计算两个单词之间的 Levenshtein 距离:将一个单词更改为另一个单词所需的单字符编辑(插入、删除或替换)的最小数量。因此,为了计数graygrey单词相同,您需要将允许距离设置为1


推荐阅读