Levenshtein /编辑任意序列的距离

时间:2017-04-05 13:17:52

标签: r unicode levenshtein-distance

我想计算两个任意序列之间的Levenshtein距离。

a <- 1:100
b <- c(1, 1:100)

edit_distance(a, b) == 1

我知道adist函数和stringdist包,但它们只适用于字符向量。如果序列中的符号数很少,我可以将它们编码为字符并使用上述函数。

但通常会有1000个不同的符号。另一种选择是将它们编码为Unicode字符(adist对它们起作用:adist("\U00001", "\U00001\U00002")),但我不知道如何做到这一点。

1 个答案:

答案 0 :(得分:2)

您可以使用intToUtf8将整数映射到Unicode字符:

a2 <- intToUtf8(a)
b2 <- intToUtf8(b)

adist(a2, b2)
#      [,1]
# [1,]    1