博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编程之美-3.3-计算字符串的相似度
阅读量:5890 次
发布时间:2019-06-19

本文共 671 字,大约阅读时间需要 2 分钟。

1. 简述

    使用两个字符串之间的编辑距离计算它们的相似度,相似度=1/(编辑距离+1)。两个字符串的编辑距离:指通过下面三种操作可以将两个字符串变为相同的字符串需要的次数。1) 修改一个字符 2) 增加一个字符 3) 删除一个字符。

    对于"abcdefg"和"abcdef"两个字符串来说,我们认为可以通过增加/减少一个"g"的方式来达到目的,将两个字符串变成相同字符串的最小步数为1,因此编辑距离为1,相似度=1/(1+1)=0.5。
    给定两个字符,编程实现计算它们的相似度。

2. 思路

    这道题我暂时没什么新的想法,基本上是沿用书上的方法。见过一个论文是计算字典树中字符串的相似度的,回来有机会把那个看看。

    假设两个字符串为A和B,当前匹配A[i]与B[j]。
    如果A[i]==B[j],当前编辑距离+=A[i+1,Len_A-1]与B[j+1,Len_B-1]编辑距离。
    如果A[i]!=B[j],当前编辑距离+=Min {
{A[i+1,Len_A-1]与B[j+1,Len_B-1]编辑距离} ,
                                                      {A[i,Len_A-1]与B[j+1,Len_B-1]编辑距离},
                                                      {A[i+1,Len_A-1]与B[j,Len_B-1]编辑距离}  }  + 1。   
    采用备忘录方法,使用int Record[len_A][len_B]数组将计算过的编辑距离存储,Record[i][j],表示A[i,Len_A-1]与B[j,Len_B-1]的编辑距离。
    最后相似度=1.0 / (编辑距离+1)

3. 参考

    编程之美,3.3节,计算字符串的相似度

转载地址:http://ocfsx.baihongyu.com/

你可能感兴趣的文章
js判断checkbox是否选中
查看>>
Eclipse中修改代码格式
查看>>
关于 error: LINK1123: failure during conversion to COFF: file invalid or corrupt 错误的解决方案...
查看>>
Linux 进程中 Stop, Park, Freeze【转】
查看>>
PHP盛宴——经常使用函数集锦
查看>>
重写 Ext.form.field 扩展功能
查看>>
Linux下的搜索查找命令的详解(locate)
查看>>
安装gulp及相关插件
查看>>
如何在Linux用chmod来修改所有子目录中的文件属性?
查看>>
Hyper-V 2016 系列教程30 机房温度远程监控方案
查看>>
笔记:认识.NET平台
查看>>
cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)
查看>>
【吉光片羽】短信验证
查看>>
gitlab 完整部署实例
查看>>
GNS关于IPS&ASA&PIX&Junos的配置
查看>>
影响企业信息化成败的几点因素
查看>>
SCCM 2016 配置管理系列(Part8)
查看>>
struts中的xwork源码下载地址
查看>>
ABP理论学习之仓储
查看>>
我的友情链接
查看>>