0

我想请大家注意一下这个挑战。

我的目的是在系统内找到一些解决方案来开发。

在我公司的业务(土木工程)中,我有以下场景:

我们在我们的数据库中注册了元素/材料,但我们成千上万的供应商拥有相同的元素/材料,但名称不同但相似。

所以我有一个通过 XML 来自发票的元素列表(例如水泥)。

另一方面,我在我的数据库中注册了相同类型的元素,但名称不同(在大多数情况下它们几乎相等),我想在发票列表中找出更像是比较它们的名称。

是否有任何类似于贝叶斯算法的方法,我可以在其中比较名称并具有介于“0”和“1”之间的值?其中“1”将是 100% 相同的字符。

示例(我将更改水果元素的类型):

如果我必须比较:覆盆子

Invoice List - Values of Algortim
---------------------------------
 strawberry ........ 0,89
 blueberry ......... 0,77
 cherry ............ 0,46
 grape ............. 0,11
 raspberry ......... 1,00
 pineapple ......... 0,13

重要的是在我没有完美组合时找出最接近的名字。

还有其他技巧吗?

很高兴看到你们的想法!

4

1 回答 1

6

我不确定我是否完全遵循 - 但如果您正在寻找一种方法来计算两个字符串彼此之间的相似程度,您可以尝试Levenshtein Distance,它通常用于这些目的。

您可以稍后对结果进行标准化以使其在您想要的范围内,例如一个简单的标准化将是:

                                            distance(u,v)
normalized_distance(u,v) =               ----------------
                              max{distance(x,v) | for each x in the collection }
于 2012-07-18T13:09:33.130 回答