【发布时间】:2010-10-03 04:16:10
【问题描述】:
我正在为我正在处理的项目做一个 CSV 导入工具。 客户端需要能够在 excel 中输入数据,将它们导出为 CSV 并将它们上传到数据库。 例如我有这个 CSV 记录:
1, John Doe, ACME Comapny (the typo is on purpose)
当然,这些公司保存在一个单独的表中并通过外键链接,因此我需要在插入之前找到正确的公司 ID。 我计划通过将数据库中的公司名称与 CSV 中的公司名称进行比较来做到这一点。 如果字符串完全相同,则比较应该返回 0,并返回一些随着字符串不同而变大的值,但 strcmp 不会在这里剪掉它,因为:
“Acme Company”和“Acme Comapny”应该有一个非常小的差异索引,但是 “Acme Company”和“Cmea Mpnyaco”应该有很大的差异指数 或“Acme Company”和“Acme Comp”。即使字符数不同,也应该有一个小的差异索引。 此外,“Acme Company”和“Company Acme”应返回 0。
因此,如果客户在输入数据时输入了一个类型,我可以提示他选择他最可能想要插入的名称。
有没有一种已知的算法可以做到这一点,或者我们可以发明一个:) ?
【问题讨论】:
标签: algorithm string word compare similarity