Levenshtein/编辑任意序列的距离
Levenshtein / edit distance for arbitrary sequences
我想计算两个任意序列之间的 Levenshtein 距离。
a <- 1:100
b <- c(1, 1:100)
edit_distance(a, b) == 1
我知道 adist
函数和 stringdist
包,但它们只适用于字符向量。如果序列中的符号数量很少,我可以将它们编码为字符并使用上述函数。
但通常会有大约 1000 个不同的符号。另一种选择是将它们编码为 Unicode 字符(adist
适用于它们:adist("\U00001", "\U00001\U00002")
),但我不知道该怎么做。
您可以使用 intToUtf8
将整数映射到 Unicode 字符:
a2 <- intToUtf8(a)
b2 <- intToUtf8(b)
adist(a2, b2)
# [,1]
# [1,] 1
我想计算两个任意序列之间的 Levenshtein 距离。
a <- 1:100
b <- c(1, 1:100)
edit_distance(a, b) == 1
我知道 adist
函数和 stringdist
包,但它们只适用于字符向量。如果序列中的符号数量很少,我可以将它们编码为字符并使用上述函数。
但通常会有大约 1000 个不同的符号。另一种选择是将它们编码为 Unicode 字符(adist
适用于它们:adist("\U00001", "\U00001\U00002")
),但我不知道该怎么做。
您可以使用 intToUtf8
将整数映射到 Unicode 字符:
a2 <- intToUtf8(a)
b2 <- intToUtf8(b)
adist(a2, b2)
# [,1]
# [1,] 1