我会使用这个功能adist
从包装中stringdist
.
最小工作示例:
创建一个无意义词向量并将该向量称为 a:
a <- c("gkhk", "ololsol", "tyuil", "tyuio", "etytyuli")
修改一些单词(或多或少的修改程度)并将该向量称为向量 b:
b <- c("gwrwkhk", "olseotyuioplsol", "thsyuil", "tasyuio", "etytyuli")
然后计算元素之间的距离
yourdistance <- adist(x = a, y = b, ignore.case = TRUE)
yourdistance
将是一个计算元素之间距离的矩阵。
[,1] [,2] [,3] [,4] [,5]
[1,] 3 15 7 7 8
[2,] 7 8 6 7 7
[3,] 7 10 2 3 5
[4,] 7 10 3 2 5
[5,] 8 11 5 5 0
例如,a [5,] 中的“etytyuli”和 b [5] 中的“etytyuli”之间的距离将为 0,因为我没有将该字符串从 a 修改为 b。
一旦你有了这个矩阵,你就可以决定什么对你来说“足够接近”,并只选择那些元素。您还可以使用参数成本,它允许您为插入、删除或替换提供不同的成本。
您可能想了解更多相关信息:
https://www.r-bloggers.com/fuzzy-string-matching-a-survival-skill-to-tackle-unstructured-information/
希望能帮助到你。