如何优化使用fuzzyfuzzy匹配相似名称的代码?

2024-10-04 05:20:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含客户机名称的dataframe,我想通过对客户机名称使用#fuzzywuzzy包中的字符串相似性函数来对引用同一个人的行进行分组,但由于每一行都要与其他行进行比较,因此需要花费太多时间,我正在寻找一种方法来消除完全不同的字符串,并且在模糊匹配程序开始之前只比较可能是匹配的字符串,并且优化我编写的模糊匹配程序

我把包含名字和姓氏的列存储在liste中,然后遍历这个列表,每次我发现名字相似,我就给它们分配相同的id,这样可以工作,但速度很慢。 Fuzz.token_sort_比率是计算字符串之间相似性的相似性函数,它根据字符串的相似程度返回一个从0到100的整数
liste_fnln包含应进行比较的串联名称。在

`from fuzzywuzzy import fuzz
`liste_positions=[]`
`liste_ucid=[]`
`leng=range(len(df.index))`
`for i in leng:`
      `for j in leng:`
          `x=fuzz.token_sort_ratio((liste_fnln[i]),(liste_fnln[j]))`
          `if x>=80 :`
              `if(j not in liste_positions )`
              ` liste_id[i]=i`
               `liste_id[j]=i`
               `liste_positions.append(j)`

这些是输入和预期结果:

^{2}$

Tags: 函数字符串in程序名称tokenid客户机