R - 计算列表的成对正交相似度

时间:2017-12-07 12:31:03

标签: r levenshtein-distance

我需要计算给定语料库中单词之间的正交相似度(编辑/ Levenshtein距离)。

R包vwr似乎能够计算出来:

coltheart.N(list1, list2)

其中Levenshtein距离在两个单词列表的匹配单词之间成对计算。

我想知道是否有办法计算给定单词列表的所有可能单词组合之间的Levenshtein距离。有人可以给我一个暗示吗?

1 个答案:

答案 0 :(得分:1)

您可以使用包levenshtein.distance中的函数vwr并循环遍历列表中的每个单词:

library(vwr)

wordlist <- list("but", "nut", "rut")

output <- lapply(wordlist, function(x) levenshtein.distance(x, wordlist))

> output
[[1]]
but nut rut 
  0   1   1 

[[2]]
but nut rut 
  1   0   1 

[[3]]
but nut rut 
  1   1   0 

有关于将列表参数传递给stringdist的警告消息,但结果合适,所以我非常确定您可以忽略它。

编辑:

要将单词指定为列表项的名称,只需使用

names(output) <- wordlist

> output
$but
but nut rut 
  0   1   1 

$nut
but nut rut 
  1   0   1 

$rut
but nut rut 
  1   1   0