0

我在 CSV 文件中有一个列,其名称使得该列中的每个单元格都可能与一个稍微拼写错误的单元格相同。例如,“耐克”可能与“耐克公司”相同。可能与“Nike Inc”相同。

我当前的脚本

我已经用 Python 编写了一个程序,如果该值在列中作为前缀或后缀出现超过 2 次,则从每个单元格中删除前缀和后缀。在此列中按字母顺序排序后,我将一行与下一行进行了比较。

我目前的问题

仍有许多单元格实际上是其他单元格的副本,但它们并未如此表示。这些示例是:a) 不完全匹配(并且不仅仅是大写) b) 通过比较其词干(无前缀和无后缀)与其按字母顺序排列的邻居没有发现

我目前的问题

1) 有没有人有将 ID 映射到来自世界各地的名称的经验(所以口音、unicode 和所有这些东西在这里也是一个问题,尽管我设法解决了大多数这些 un​​icode 问题)并且对算法开发有很好的想法这里没有列出?

2)在某些没有拾取重复的情况下,我知道为什么我知道它们是重复的。在一种情况下,一行中间有一个句点,该句点在其不包含句点的兄弟单元格中不存在。根据我知道为什么我知道它的少数实例,简单地创建一个额外的列并输出我怀疑是重复的单元格值是一种好策略吗?

3) 我如何检查自己?一种方法是标记潜在重复的最大数量并手动查看所有这些。不幸的是,我们的数据集的大小并没有使它非常漂亮,也不是很可行......

感谢您的任何帮助,您可以提供!

4

1 回答 1

0

尝试音译名称,删除所有国际符号,然后考虑使用类似soundexhttp://en.wikipedia.org/wiki/Levenshtein_distance的函数(例如http://pypi.python.org/pypi/Fuzzy)计算文本相似度。

于 2012-09-14T23:42:41.920 回答