当前位置: 首页 > 知识库问答 >
问题:

Ruby-搜索相似单词的文件

梁研
2023-03-14

共有1个答案

易星宇
2023-03-14

看看在这里发现的宝石Amatch。这个gem实现了几种距离算法。另外,阅读关于Levenshtein和Jaro距离算法之间差异的另一个答案,并检查哪一个更适合您。

TL;DR,这里有一个小片段来帮助你开始解决你的问题,使用业余宝石。

'subscription'.levenshtein_similar('SUBSCR|P||ON') #=> 0.0
'SUBSCRIPTION'.levenshtein_similar('SUBSCR|P||ON') #=> 0.75
'subscription'.jaro_similar('SUBSCR|P||ON')        #=> 0.83
'SUBSCRIPTION'.jaro_similar('SUBSCR|P||ON')        #=> 0.83
'subscription'.jarowinkler_similar('SUBSCR|P||ON') #=> 0.9
'SUBSCRIPTION'.jarowinkler_similar('SUBSCR|P||ON') #=> 0.9

如果您想评估给定文本是否有任何单词出现,请尝试以下操作:

def occurs?(text, target_word)
  text_words = text.split(' ') # Splits the text into an array of words.
  text_words.each do |word|
    return true if word.jaro_similar(target_word) > 0.8
  end
  false
end

example_text = 'This text has the word SUBSCR|P||ON malformed.'
other_text = 'This text does not.'

occurs?(example_text, 'SUBSCRIPTION') #=> true
occurs?(other_text, 'SUBSCRIPTION')   #=> false
 类似资料:
  • 有没有办法在elasticsearch中查询一组术语的相似性(匹配分数)? 简单的例子: 数据: 查询: 后果 说明:doc1包含搜索中存在的所有标记。doc2包含搜索中存在的3个标记中的2个 所以基本上查询将返回按匹配排序的文档列表,其中匹配=文档中的标签与查询中的标签有多相似。不需要模糊性。返回%只是一个例子,返回点或其他单位就可以了。标签的数量可以不同。 我正在设计系统,因此可以以任何格式存

  • 问题内容: 我在Firestore数据库中有一个用户列表及其名称。我要实现的目标是使用户能够搜索并找到其他用户。我的问题是: 在上面的代码中,仅当我输入的名字和姓氏完全正确时,我才能找到用户。但是我想要获得的用户确实具有相似的名字或姓氏。而且,用户的姓氏和名字存储在一个字符串变量中。就像在Facebook中一样,如果您搜索一些名称,它也会显示相似的名称。有没有一个好的方法可以通过Firestore

  • 问题内容: 因此,这是我编写的用于查找单词内回文的代码(以检查单词内是否包括单词本身在内的回文)条件:字符之间的空格已被计算并且不被忽略示例:A但大号是回文,但从技术上讲是应有的现在所涉及的空间不是。这就是标准。 基于上面的内容,以下代码通常应该起作用。您可以自己尝试不同的测试,以检查此代码是否提供任何错误。 这是已废止的版本。我的意思是,我试图从中间开始,并从头开始进行迭代,并通过检查字符是否相

  • 问题内容: MySQL全文搜索似乎是一种很棒的方法,也是使用SQL进行搜索的最佳方法。但是,我似乎停留在以下事实:它不会搜索部分单词。例如,如果我有一篇标题为“ MySQL Tutorial”的文章并搜索“ MySQL”,它将找不到它。 完成一些搜索后,我发现MySQL 4中提供了各种支持该功能的参考(我使用的是5.1.40)。我曾尝试使用“ MySQL ”和“%MySQL%”,但均无效(我发现一

  • 我在处理一个单词搜索问题。我正确地实现了dfs搜索,但在其他地方有一些琐碎的错误。

  • 这道题是 LeetCode 212 题,是 79 题的升级版。 给定一个二维网格和包含多个单词的字典,找出所有同时在二维网格和字典中出现的单词。 解法一:回溯 直接使用 79 题的代码,依次查找每个单词是否在 board 中有一条对应的路径。 时间复杂度:$(n×4^L)$,$n$ 为单词个数,$L$ 为单词的最大长度 搜索每个单词的时间复杂度相当于搜索树的节点数。搜索最大深度为 $L$,$L$