【问题标题】:Computing edit distance using two simple columns from iris dataset使用 iris 数据集中的两个简单列计算编辑距离
【发布时间】:2017-12-07 08:57:53
【问题描述】:

在下面的代码中,我想计算两列文本字符串之间的相似度。为此,我从 iris 中取出前 10 行 "Petal.Length" 列并将其分配给 a1 ,前 4 行从来自 iris 的“Sepal.Length”列并将其分配给 a2。我的目标是应该使用最后一行中的公式将每个“a2”值与每个 a1 值进行比较,以便我得到一个具有 40 个值的最终向量 percent_calc。

library(stringdist)
library(RecordLinkage)

a1 = iris$Petal.Length[1:10] * 1000
a2 = iris$Sepal.Length[1:4]  * 1000
a1 = as.character(a1)
a2 = as.character(a2)

percent_calc = RecordLinkage::levenshteinSim(a2,a1)

【问题讨论】:

  • sapply(a2, function(i) RecordLinkage::levenshteinSim(i,a1))
  • @Sotos,我看到一个矩阵,我只想要 40 个值的向量。
  • 所以将该矩阵转换为向量!!!!做起来没那么难!!!
  • 非常感谢,我明白了。
  • @zx8754,我按照你的建议创建了一个新问题,请帮忙。 stackoverflow.com/questions/47693376/…

标签: r stringdist record-linkage


【解决方案1】:

获取所有组合,然后获取距离:

a12 <- expand.grid(a1, a2, stringsAsFactors = FALSE)

percent_calc <- levenshteinSim(a12$Var1, a12$Var2)

percent_calc
# [1] 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.50
# [19] 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.75 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.50
# [37] 0.50 0.50 0.50 0.50

【讨论】:

  • 感谢您的帮助和回复,但是我已经找到了解决方案,但是我需要上面第二部分的帮助,请在这里帮助我。
猜你喜欢
  • 2020-12-18
  • 2020-08-05
  • 1970-01-01
  • 1970-01-01
  • 2013-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多