繁体   English   中英

字符串算法比较 VB.Net

[英]String Algorithm Comparison VB.Net

我想问一些建议,因为我已经这样做了一个星期。 它基本上是一个数据清理程序。 我有一个包含数千个公司名称的 excel 文件,我有这个包含正确公司名称的数据库。 我想要的是读取我已经完成的 excel 文件,并将 excel 文件中的每个公司与我在数据库中的值进行比较。 例如

Excel 中的数据

  • 惠普,哥斯达黎加
  • 惠普 (HP)
  • 惠普新加坡(私人)有限公司

数据库中的数据

  • 惠普

它会自动检测 excel 中的这 3 个值是惠普,因为 excel 是自由类型的形式。 我想更正其中输入的所有内容并在我的数据库中找到相似的值。 就像如果 Hewlett-Packard 拼写错误,它会自动告诉它是 Hewlett-Packard。 任何的想法?

它就像一个自动完成,但带有思考。 自动完成但决定正确的值

顺便说一句,我在 VB.Net 中这样做。 我正在研究模糊搜索算法和 levenstein 之类的东西。 但我还是不明白我该如何使用它

参见我的博客, 解决正确的问题,有点类似。 您最好进行简单的匹配并将任何失败输出到您手动编辑的文本文件。 这是苦差事,但它会完成工作。 当您开始谈论 Levenstein 距离和模糊搜索时,您正在将一个简单但枯燥的任务变成一个研究项目。

如果您的数据库仅包含“数千个”(而不是数百万个)名称,那么您可以做的一件事就是将所有名称加载到一个列表中,并对它们进行排序。 然后对 Excel 文件中的名称进行排序。 然后遍历两个列表(标准的合并类型算法)。 例如,您的数据库中可能有:

Hasbro
Hewlett Packard
Home Depot

并在您的 Excel 文件中:

Grainger
Halliburton
Hewlet Packard, Costa Rica
Hewlett Packard (HP)
Humana

使用合并算法,您可以将“Hewlett Packard, Costa Rica”与“Hewlett Packard”进行比较,您甚至可以将其输出为建议的替换。 这可能构成您的大部分错误。

无论如何,我强烈建议使用计算机来识别不匹配,然后手动解决它们。 这通常是解决此类问题的最快方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM