Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-窗体/数据页

【Access示例】两个字符串之间的相似性分析/两个字符串之间的比对

时 间:2018-06-22 08:32:23
作 者:缪炜   ID:24010  城市:江阴
摘 要:最近遇到一个问题,就是关于两个字符串比对的问题,该如何去比对,比对得到的一个比例是否有参考意义,也请教了一位大神,大神给了一些思路,有了大神的帮助解决问题自然就变得简单了。
正 文:

我们的大神红尘如烟 发给我这样一个链接https://blog.csdn.net/yixianfeng41/article/details/61917158 我在看完后,得到了这样的思路

两个字符串比较思路:假设Expression为被比较的字符串,FindString 为去比较的字符串,得到FindString字符串与Expression字符串相同字符的数量=A;FindString字符串与Expression字符串并集的长度=B,最后得到比例=A/B
首先计算出A和B的交(A ∩ B),以及A和B的并 (A ∪ B),Jaccard Similarity J(A,B)=|Intersecion(A,B)|/|Union(A,B)|

例:Expression=增城玲龙宠物医院,FindString=增城新宠兽医诊所,两个字符串交集的长度为4,两个字符串并集的长度为12,结果4/12≈33.33%

Function StrLike(ByVal Expression As String, ByVal FindString) As Single
    Dim intCounter As Integer
    Dim intI As Integer
    
    If Trim(FindString) = "" Then Exit Function
    
    FindString = Replace(FindString, " ", "")
    
    For intI = 1 To Len(FindString)
        If InStr(1, Expression, Mid(FindString, intI, 1)) > 0 Then
            intCounter = intCounter + 1
        End If
    Next
      StrLike = intCounter / (Len(Expression) + Len(FindString) - intCounter)
End Function

附   件:

点击下载此附件


图   示:

点击图片查看大图



Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助