字符串匹配技术

2024-01-06

以下字符串被视为相等。我怎样才能匹配这样的东西?

"Hazard Const. Company"
"hazard construction company"

"PETERSON-CHASE GENERAL ENGINEERING CONSTRUCTION INC"
"peterson-chase general  engineering construction inc"

"TRAFFIC DEVELOPMENT SERVICES "
"traffic development services"

我的环境是红宝石,但我只是想知道匹配字符串的一般原则。由于空格问题和缩写,上面的示例不适用于基本的“a”==“b”。我可以使用正则表达式忽略大小写或小写字符串来缓解大小写问题...


以下示例比较所有字符串并计算编辑差异(使一个字符串适应另一个字符串所需的击键次数)。

根据定义的最大差异和对字符串长度的补偿,然后将字符串作为包含出现次数值的键放入哈希中。

require 'levenshtein'

MAX_DISTANCE, COMPENSATION = 3, 5

strings = [
    "Hazard Const. Company",
    "hazard construction company",
    "PETERSON-CHASE GENERAL ENGINEERING CONSTRUCTION INC",
    "peterson-chase general  engineering construction inc",
    "TRAFFIC DEVELOPMENT SERVICES ",
    "traffic development services"
]

result = {}
strings.each do |s|
    s.downcase!
  similar = result.keys.select { |key| Levenshtein.distance(key, s) < MAX_DISTANCE+(s.length/COMPENSATION) }
  if similar.any?
    result[similar.first] += 1
  else
    result.merge!({s => 1})
  end
end

puts result.inspect
# {"hazard const. company"=>2, "peterson-chase general engineering construction inc"=>2, "traffic development services "=>2}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符串匹配技术 的相关文章

随机推荐

  • 在 Chrome 扩展内容脚本中使用 Dart 无法运行?

    我正在尝试使用 Dart 编写 Chrome 扩展 到目前为止 除了内容脚本之外 一切都很顺利 内容脚本 dart 文件中的 main 函数似乎没有运行 更具体地说 首先 Dartium 无法使用 因为在清单中的 js 规则中给出 dart
  • 学习编程语言的工作原理

    我已经编程多年 主要是Python 但我不明白当我编译或执行代码时幕后发生了什么 本着question https stackoverflow com questions 1514812 gentle introduction to ope
  • Eclipse 调试器跳转到错误的返回语句

    我遇到了一个非常奇怪的情况 我正在 Android 2 1 平台上用 Java 通过 Eclipse Galileo 执行以下操作 Get gravity geomagnetic data to return to the caller f
  • Python:csvwriter 的问题

    我正在尝试将数据 主要是日期 布尔值和浮点数据类型 写入 CSV 文件格式 这是我的代码片段 Write data to file with open OUTPUT DIR output filename w as outputfile w
  • 合并提交第一和第二父母

    在涉及相对提交引用的 Udacity 课程中 它说 表示父提交 表示第一个父提交 和 之间的主要区别在于提交的时间 由合并创建 合并提交有两个父项 通过合并 commit 时 引用用于指示该文件的第一个父级 提交 而 2 表示第二个父级 第
  • NSPropertyListSerialization propertyListWithData 产生不兼容的转换警告/错误

    我正在尝试使用以下代码从 plist 中读取数据 NSString error NSData tempData NSData alloc initWithContentsOfFile Data plist NSDictionary temp
  • 如何通过维基百科 API 获取特定部分的文本

    我只想从维基百科页面中提取特定部分 例子 我想从维基百科文章 House 的 Parts 部分中提取文本 https en wikipedia org wiki House https en wikipedia org wiki House
  • 为什么 Javadoc 会生成不兼容的 XHTML?

    我刚刚将一些生成的 javadoc 粘贴到 eclipse 项目中 发现没有一个 HTML 是兼容的 甚至存在关闭从未打开过的标签的情况 有什么方法可以解决这个问题吗 也许是 遵守 选项 经过一番谷歌搜索后 我发现XHTML Doclet
  • Apache Spark 2.2 支持用户定义类型(UDT)吗?

    从这张 JIRA 票证中Spark 2 0 中隐藏 UserDefinedType https issues apache org jira browse SPARK 14155 似乎spark从2 0版本开始隐藏了UDT API 2 2
  • 如何制作具有三个角和阴影的图像视图

    如何制作这样一个只有三个角的图像 我尝试使用框架布局插入图像视图并使其成为原始图像的资源 添加另一个具有 3 个角的边框 src 的图像视图 但它不起作用 随着材料组件库 https github com material componen
  • Paypal 预付款和 PayFlow 与定期付款链接

    我们想在我们的应用程序中实现 Paypal 这就是我们需要的 经常性付款 试用期 优惠券代码 无需离开我们的页面即可付款 我们发现我们可以使用 Paypal Advanced Payment 和 PayFlow Link Gateway D
  • 获取对象可能为“null”。在 Angular 模板文件中

    在我的 Angular 应用程序中 我收到以下错误 对象可能为 空 问题是我收到此错误不是因为某些打字稿代码 而是因为这个 html 模板
  • HttpClient.PostAsync 第一次很慢

    经过一些基准测试后 我意识到每次启动应用程序时 第一个请求都会比下一个请求花费更多的时间 第一个平均为 500 毫秒 接下来的平均为 120 毫秒 我在 HttpClient 中设置了 cookie 并将 UseProxy 设置为 fals
  • 如何仅使用正则表达式验证 YouTube 嵌入链接

    我在我的网站中使用 YouTube 嵌入链接 我想验证该链接 就像用户粘贴嵌入链接以外的其他内容一样 那么它应该向我发出无效 URL 的警报 我已经使用了很多正则表达式 其中一些已经在我的代码中进行了评论 我只想要 YouTube 嵌入链接
  • ActiveMQ 获取入队/出队计数

    在DEBUG模式下 有一个ActiveMQ日志为 09 44 10 666 ActiveMQ Task 1 DEBUG org apache activemq broker region Queue 1687 queue demo toPa
  • 如何导航到 .java 文件而不是在类路径中指定源路径的 .class 文件?

    我在项目的 libs 文件夹下有一个预构建的 jar 以加快构建时间 但是 我想在导航到其包含的类之一时浏览该库的源代码 因此将以下行添加到 classpath 中
  • Spring Servicemix 骆驼中的 Sql 连接

    Spring Servicemix 骆驼中的 Sql 连接
  • 删除列中项目的百分比

    我正在尝试删除存在超过 90 NA 值的列 我已遵循以下操作 但我只得到一个值作为回报 不确定我可能做错了什么 我期待一个实际的数据框 我尝试将 as data frame 放在前面 但这也是错误的 领英帖子 删除缺失超过 x 的列 行 h
  • 未捕获 Google 地图信息窗口中的点击事件

    使用 Google Map v2 我希望能够在单击 GMarker 信息窗口中的文本时触发功能 foo click myFunction marker openInfoWindowHtml span class myText span 不起
  • 字符串匹配技术

    以下字符串被视为相等 我怎样才能匹配这样的东西 Hazard Const Company hazard construction company PETERSON CHASE GENERAL ENGINEERING CONSTRUCTION