Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby中的近似字符串匹配_Ruby - Fatal编程技术网

Ruby中的近似字符串匹配

Ruby中的近似字符串匹配,ruby,Ruby,我正在编写一个小实用程序,希望根据搜索的值筛选最相关的结果: 例如:如果用户搜索了“just For fun linus”,我的搜索结果如下: “只为女孩” “只是为了好玩:简单的摇滚班卓琴” “只是为了好玩:一个偶然的革命故事——莱纳斯·托瓦尔兹” 我的算法应该赋予最后一个最大的权重。目前,我有一个自制的算法,它使用soundex匹配来给出权重,但有时会失败 是否有一个ruby gem可以给我提供找到最近匹配字符串的最佳方法?我试着使用“amatch”-但它没有给出正确的比赛权重 我找到了一个

我正在编写一个小实用程序,希望根据搜索的值筛选最相关的结果:

例如:如果用户搜索了“just For fun linus”,我的搜索结果如下:

  • “只为女孩”

  • “只是为了好玩:简单的摇滚班卓琴”

  • “只是为了好玩:一个偶然的革命故事——莱纳斯·托瓦尔兹”

  • 我的算法应该赋予最后一个最大的权重。目前,我有一个自制的算法,它使用soundex匹配来给出权重,但有时会失败


    是否有一个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