首页 > 解决方案 > 给定一个排序规则,如何选择多个等价形式中的“最简单”?

问题描述

我们正在处理使用不同拼写变体来表示同一实体的数据。让我们以汽车制造商为例:也许一张唱片上写着“雪铁龙”,另一张写着“雪铁龙”,但它们指的是同一家法国汽车制造商。

现在我想找到这些名称的“最简单”形式(此处:“Citroen”)用作该汽车制造商的主要名称,而所有其他名称(此处:“Citroën”)将成为别名。

更好的是:有没有办法让我计算出“最简单”的形式,即使它从未出现在数据中?例如,所有记录都说“Citroën”,但我还是计算“Citroen”?

通过这种方式,我可以快速确定提到汽车制造商的新数据是否与我已经知道的任何汽车制造商匹配:我只需将新数据中的汽车制造商转换为其最简单的形式,然后匹配所有我最简单的形式知道,然后我可以看看我以前是否见过这家汽车制造商。

Java 提供了一种比较给定排序规则的字符串的方法,因此我可以发现它们是相等的。但我还没有找到如何找到最简单的形式。

(Unicode 规范化做了一些不同的事情,尽管我也想应用它。)

标签: javaunicodecollationunicode-normalization

解决方案


推荐阅读