Ruby中的近似字符串匹配
我正在编写一个小实用程序,希望根据搜索的值筛选最相关的结果: 例如:如果用户搜索了“just For fun linus”,我的搜索结果如下:Ruby中的近似字符串匹配,ruby,Ruby,我正在编写一个小实用程序,希望根据搜索的值筛选最相关的结果: 例如:如果用户搜索了“just For fun linus”,我的搜索结果如下: “只为女孩” “只是为了好玩:简单的摇滚班卓琴” “只是为了好玩:一个偶然的革命故事——莱纳斯·托瓦尔兹” 我的算法应该赋予最后一个最大的权重。目前,我有一个自制的算法,它使用soundex匹配来给出权重,但有时会失败 是否有一个ruby gem可以给我提供找到最近匹配字符串的最佳方法?我试着使用“amatch”-但它没有给出正确的比赛权重 我找到了一个
是否有一个ruby gem可以给我提供找到最近匹配字符串的最佳方法?我试着使用“amatch”-但它没有给出正确的比赛权重 我找到了一个gem-amatch-哪个做得很好我找到了一个gem-amatch-哪个做得很好你的数据库是什么?如果您使用mysql,有一些内置函数可以解决这个问题。我相信其他数据库也有类似的功能。只计算相同的小写单词怎么样?你的数据库是什么?如果您使用mysql,有一些内置函数可以解决这个问题。我相信其他数据库也有类似的功能。那就只计算相同的小写单词怎么样?我用你的例子尝试了Amatch附带的所有算法
LongestSequence
是唯一一个为了好玩而给予最大权重的:一个偶然的革命故事Linus Torvalds
。编辑距离的那些(Hamming
,Jaro
,JaroWinkler
,Levenshtein
,或Sellers
)没有。或者PairDistance
(公共bigram除以所有bigram)或LongestSubstring
。我在示例中尝试了Amatch附带的所有算法LongestSequence
是唯一一个为了好玩而给予最大权重的:一个偶然的革命故事Linus Torvalds
。编辑距离的那些(Hamming
,Jaro
,JaroWinkler
,Levenshtein
,或Sellers
)没有。或PairDistance
(公共双字符除以所有双字符)或LongestSubstring
。