Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算未分类和未知名称_Python_Machine Learning_Scikit Learn - Fatal编程技术网

Python 计算未分类和未知名称

Python 计算未分类和未知名称,python,machine-learning,scikit-learn,Python,Machine Learning,Scikit Learn,我有一份大约10万人的名单。这些是人的名字、公司的名字等。这些名字可以是完全匹配的,也可以在某些方面有所不同。我也有地址,但地址可能错误或不存在。我需要收集和计算每个名字进行分析。这是一个示例集 Bank America, N.A BOA Bank f Amerca America Bank Wells Fargo Bank Wells Fargo Wells Fargo, N.A Fargo Bank 对于美国银行,计数为三,因为美国银行有所不同。对于富国银行而言,计数将为三,因为富国银行有

我有一份大约10万人的名单。这些是人的名字、公司的名字等。这些名字可以是完全匹配的,也可以在某些方面有所不同。我也有地址,但地址可能错误或不存在。我需要收集和计算每个名字进行分析。这是一个示例集

Bank America, N.A
BOA
Bank f Amerca
America Bank
Wells Fargo Bank
Wells Fargo
Wells Fargo, N.A
Fargo Bank
对于
美国银行
,计数为三,因为
美国银行
有所不同。对于
富国银行
而言,计数将为三,因为
富国银行
有所不同

编辑:

另一种选择是使用模糊匹配,而不是使用机器学习。我看过difflib和fuzzyfuzzy库,但问题是我没有参考列表;逻辑本身必须找出参考(这就是为什么我认为机器学习是答案)

作为练习,这里是第二个数据示例

John Smith - First instance found, therefore, this is labeled as ID 1
Chase Bank - First instance found, this is labeled as ID 2
John J. Smith - Similar to John Smith, therefore, this is labeled as ID 1
BOA - First instance found, this is labeled as ID 3
Bank of America - Not similar to BOA, therefore labeled as ID 4 (Technically this is BOA but the system will not know this at first)
BOA, N.A. - Similar to BOA, therefore labeled as ID 3
现在让我们来看一下美国银行和美国银行。程序如何知道这些是相同的?不会的,所以我需要回来指出
BOA
bankofamerica
是相同的。如果我们走机器学习路线,我可以创建一个新字段并手动指示
BOA
bankofamerica
是相同的,然后再次重试该过程以获得更好的结果。但是假设我们想走简单的路线,而不是这样做,有没有python库可以帮助我


我更需要一个好的起点,而不是实际的代码。

我仍然想尝试机器学习,但我已经创建了一个Python解决方案,我将使用FuzzyWzzy实现它

我将根据DB中的循环生成一个动态引用列表。因此,对于循环1,我将为该文本创建一个唯一的ID。这将存储在一个表中。在循环2中,我将查看新表中的记录并尝试匹配它,如果存在匹配项,则相同的ID将分配给下一条记录。如果未找到任何内容,则文本将以新的唯一ID添加到新表中。等等这种方法避免了机器学习,对于当前的一组需求来说可能已经足够好了

编辑: 我正在添加一个附加表,因此这些表将如下所示

Table 1 = Unprocessed Source Data
Table 2 = Unique Names
Table 3 = All derivations of Unique Names
我还得到了一个唯一的列表来开始最常见的名字,并将其添加到表2和表3中。这只是一个起点