|
楼主 |
发表于 2013-9-9 23:34
|
显示全部楼层
借鉴
· 数据模糊匹配或相似度匹配函数公式实现及思路解析
加权
改写
'****************************************************************
'功能: 模糊查找
'函数名: FuzzyLookup
'参数1: find_text 查找字符
'参数2: within_text 在此范围查找
'参数3: word_segmentation within_text的已知中文分词,可省略,默认为:""
'参数4: n 连续n字符开始计数,可省略,默认为:2
'参数5: m 计数m 及以上找到,可省略,默认为:2
'参数6: mode 输出方式,可省略,默认为:4
' 为0时,雷同强度(匹配度)
' 为1时,雷同字数
' 为2时,雷同字,分隔符="_"
' 为3时,位置数字(或单元格地址),分隔符=","
' 为30时,位置数字。仅返回第一个
' 为4时,字符
' 为34时,位置数字&字符
' 为304时,位置数字&雷强同度&字符
' 为314时,位置数字&雷同字数&字符
' 为正时,雷同度相同时:分隔符="|"
' 为负时,雷同度相同时:分隔符=回车符
'参数7: intensity 雷同强度,0~1。可省略,默认为:0.8,
' 为>n时,输出强度最高的第n个(n>1,1<n<2时第一个)
' 为1时,输出强度最高的所有结果
' 为0.8时,输出>=80%最高强度的结果
' 为0时,输出所有匹配结果
'参数8: Case_insensitive 为True时,忽略大小写。可省略,默认为:False
'参数9: NoRepeat 为True时,无重复,within_text只匹配一次。可省略,默认为: True
'返回值: 一个数字型:雷同度相同时:返回第一个
' 或一个字符型:雷同度相同时:"|"分隔
'使用方法:arr = FuzzyLookup(A, B,,4,6)
|
|