在编辑距离中维护标题

时间:2016-12-23 18:53:16

标签: r edit-distance stringdist

我正在使用stringdist运行编辑距离。输出用编号列表替换输入,而不是要比较的实际字符串。这就是我现在所拥有的:

library(stringdist)

a <- c("foo", "bar", "bear", "boat", method = "lv")
stringdistmatrix(a)

1 2 3
2 3    
3 4 1  
4 3 2 2

我希望输出看起来如下所示,以便我可以看到编辑距离的来源。

foo bar bear
bar 3    
bear 4 1  
boat 3 2 2

2 个答案:

答案 0 :(得分:2)

您可以指定useNames参数:

stringdistmatrix(a, useNames = TRUE)

#     foo bar bear
#bar    3         
#bear   4   1     
#boat   3   2    2

答案 1 :(得分:1)

您可能希望method = 'lv'作为函数的参数:

library(stringdist)
a <- c("foo", "bar", "bear", "boat")
stringdistmatrix(a, method = "lv", useNames = TRUE)

#     foo bar bear
#bar    3         
#bear   4   1     
#boat   3   2    2

您也可以使用adist中的base R获取距离矩阵(广义Levenshtein距离),如下所示:

matrix(adist(c("foo", "bar", "bear", "boat")), nrow=length(a), dimnames=list(a, a))

#     foo bar bear boat
#foo    0   3    4    3
#bar    3   0    1    2
#bear   4   1    0    2
#boat   3   2    2    0

或下三角dist

as.dist(matrix(adist(c("foo", "bar", "bear", "boat")), 
               nrow=length(a), dimnames=list(a, a)))

#     foo bar bear
#bar    3         
#bear   4   1     
#boat   3   2    2