我尝试使用Levenshtein距离算法(在Python中,如果有区别的话)在两个公司名称列表之间进行模糊字符串比较。例如,列表A包含XYZ INDUSTRIAL SUPPLY
,但列表B可能会说XYZ INDUSTRIAL SUPPLY, INC.
,但它们仍然应该匹配。在
现在,我的实现非常不准确。作为第二个例子,目前算法发现abc metal finishing
和{
谢谢!在
编辑更多示例:
应匹配:
s west tool supply
,southwest tool supply
abc indust inc
,abc industries
icg usa
,icg usa llc
不应匹配(但当前匹配):
ohio state university
,iowa state university
m e gill corporation
,s g corporation
更新:
已经取得了一些进展:)如果有人对这类事情感兴趣,我最终试验了插入-删除和替换的成本。我的想法是对字符串的开头进行更重的加权,因此我基于矩阵中当前位置的权重。但是,这造成的问题是,由于我的权重是如何分配的,所以所有的东西都与几个非常短的名字匹配。我通过计算长度来修正这个问题。例如,我的插入权重最终是(1 if index<=2/3*len(target) else .1*(len(source)-index))
,其中source
总是两个字符串中较长的一个。我计划继续调整这个值并尝试其他值,但它已经显示出了很大的改进。这绝不是一门精确的科学,但如果它是有效的,那才是最重要的!在
目前没有回答
相关问题 更多 >
编程相关推荐