在Java中匹配不精确的公司名称

我有一个公司数据库.我的应用程序接收按名称引用公司的数据,但名称可能与数据库中的值不完全匹配.我需要将传入的数据与它所引用的公司进行匹配.

例如,我的数据库可能包含名为“A. B. Widgets& Co Ltd.”的公司.而我的传入数据可能会引用“AB Widgets Limited”,“A.B.Widgets and Co”或“A B Widgets”.

公司名称中的某些单词(A B Widgets)对于匹配比其他单词(Co,Ltd,Inc等)更重要.避免错误匹配很重要.

公司的数量足够小,我可以在内存中维护他们的名字地图,即.我可以选择使用Java而不是sql来查找正确的名称.

你会如何用Java做到这一点?

解决方法

您可以在DB / map& amp;中尽可能地标准化格式.输入(即转换为大写/小写),然后使用动态编程中的 Levenshtein (edit) distance metric来根据所有已知名称对输入进行评分.

然后,您可以让用户确认匹配&如果他们不喜欢它,给他们选择将这个值输入你的已知名字列表(第二个想法 – 这可能是给用户太多的力量……)

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...