gpt4 book ai didi

sequences - 测量两个字符串序列之间相似性的算法

转载 作者:行者123 更新时间:2023-12-02 23:45:21 25 4
gpt4 key购买 nike

如何测量两个字符串序列之间的相似性百分比?

我有两个文本文件,在文件中序列的写法如下

第一个文件:

AAA BBB DDD CCC GGG MMM AAA MMM

第二个文件:

BBB DDD CCC MMM AAA MMM

如何根据字符串顺序来衡量这两个文件之间的相似性?

例如,在上面的示例中,由于字符串顺序相同,两个文件具有相似性,但 file-2 中缺少一些字符串。什么算法最适合解决这个问题,以便我可以测量两个字符串的顺序而不是字符串的频率有多相似?

最佳答案

您可以使用Levenstein Distance算法。它分析将一个字符串转换为另一个字符串需要多少次编辑。 This文章对此进行了很好的解释,并提供了示例实现。

Codeproject 复制粘贴:

1.  Set n to be the length of s. ("GUMBO")
Set m to be the length of t. ("GAMBOL")
If n = 0, return m and exit.
If m = 0, return n and exit.
Construct two vectors, v0[m+1] and v1[m+1], containing 0..m elements.
2. Initialize v0 to 0..m.
3. Examine each character of s (i from 1 to n).
4. Examine each character of t (j from 1 to m).
5. If s[i] equals t[j], the cost is 0.
If s[i] is not equal to t[j], the cost is 1.
6. Set cell v1[j] equal to the minimum of:
a. The cell immediately above plus 1: v1[j-1] + 1.
b. The cell immediately to the left plus 1: v0[j] + 1.
c. The cell diagonally above and to the left plus the cost: v0[j-1] + cost.
7. After the iteration steps (3, 4, 5, 6) are complete, the distance is found in the cell v1[m].

关于sequences - 测量两个字符串序列之间相似性的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10845114/

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