查找名称/字符之间比较的算法

Gus*_*elo 0 algorithm math comparison compare

我想稍微关注一下这个挑战.

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

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

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

所以我有一个通过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
Run Code Online (Sandbox Code Playgroud)

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

还有其他技巧吗?

很高兴看到你们的想法!

ami*_*mit 6

我不确定我是否完全关注 - 但如果您正在寻找计算两个字符串彼此相似的方法,您可以尝试Levenshtein Distance,它通常用于这些目的.

您可以稍后将结果标准化以使其达到您想要的范围,例如,简单的标准化将是:

                                            distance(u,v)
normalized_distance(u,v) =               ----------------
                              max{distance(x,v) | for each x in the collection }
Run Code Online (Sandbox Code Playgroud)