Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
6年前关闭。
在Java中,如何找到具有不同长度的两个向量之间的相似性度量。
考虑我们有
我正在寻找Jaccard系数或Sørensen–Dice系数以外的相似性度量
我们找到了3个操作的序列。如果我们设法证明没有更短的序列,那么我们可以得出结论,
希望这可以帮助!
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
6年前关闭。
在Java中,如何找到具有不同长度的两个向量之间的相似性度量。
考虑我们有
V1 = [1, 0, 0, 1, 1]
V1 = [1, 0, 1, 0, 1, 0, 1, 0]
我正在寻找Jaccard系数或Sørensen–Dice系数以外的相似性度量
最佳答案
正如有人已经评论过的那样,可能的替代方法是Levenshtein距离,有时也称为编辑距离。
Levenshtein距离是一个为每对字符串A
和B
分配自然数n
的函数,该自然数表示将A
转换为B
所需的最小操作数。允许的操作是
从A
删除符号,
在A
中插入一个符号,
替换A
中的符号。
注意,编辑距离是对称的(对于将A
转换为B
的任何操作序列),可以构造将“ B
”转换为A
的“反转”操作序列。
Levenshtein distance上的Wikipedia文章列出了一些有用的属性。
最后,作为一个示例,让我们变换两个向量:
[10011]
// Insert 1 into position 2:
[101011]
// Insert 0 into position 5:
[1010101]
// Insert 0 into position 7:
[10101010]
我们找到了3个操作的序列。如果我们设法证明没有更短的序列,那么我们可以得出结论,
V1
和V2
之间的距离为3。那么,考虑到Levenshtein距离始终至少是两个字符串之间的大小差(考虑一下为什么),那么我们得出结论:levenshtein_distance(V1,V2) == 3 // returns true!
希望这可以帮助!
关于java - 查找具有不同长度的特征向量的相似性度量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21679586/
10-09 00:28