我们的大神红尘如烟 发给我这样一个链接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
附 件:
点击下载此附件
图 示: