gpt4 book ai didi

java - 如何计算基于结构的字符串相似度?

转载 作者:行者123 更新时间:2023-12-01 14:12:31 24 4
gpt4 key购买 nike

我有一些字符串,我想要衡量它们的相似性,但与字符串编辑距离不同,例如,更多地基于结构相似性而不是字母相似性。

例如:312164和48479应该得到非常高的分数,因为它们只是数字并且具有相同的长度。对于 Bla blubb 和 bla bloob blo 应该是相同的,因为它们只包含字母并且之间有间隙。对于像 apple 和 app3 f 这样的组合,即使它们共享一些字母,但具有不同的结构,也应该应用较少的分数。

类似的事情...有人有线索吗?如果可能的话,使用 Java。

谢谢!

最佳答案

定义它们的相似度并对其进行评分。

示例字符串:

Banana

Orange

Orange 123

Banana 234

长度 = x 点,其中 x 是长度

相同字符 = 1 分 (A != a)

相似角色的相同位置 = 2 分

对每个字符串唯一的字符扣分

例如比较香蕉和橙子

长度 = 6 点(长度均为 6)

对于 'a' = 1 分(两者都有 a)。如果两者都有两个 A,我们就给 2 分。如果 'a' 在两个字符串中的位置相同,我们会再给 2 分。

对于“n”= 1 分

Total positive points: 8

B 为 1,因为 Orange 没有 B

2 代表“a”,因为 Banana 有 3 个 a

1 代表“n”,因为 Banana 有 2 个 n

1 代表 O

1 表示 r

1 代表 g

1 代表 e

Total minus: 8

总加分 - 总减分 = 0

这只是一个粗略的逻辑,但你可以从中得出一些东西。

关于java - 如何计算基于结构的字符串相似度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18385590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com