RecordLinkage - R 一个向量。不匹配自己
RecordLinkage - R one vector. Do not match to self
如果我有一个名称向量,请说:
a = c("tom", "tommy", "alex", "tom", "alexis", "Alex", "jenny", "Al", "michell")
我想使用 levenshteinSim
或类似工具来获得此向量中的相似度分数。但是,我不希望它自我评分。例如,"tom" #1
对 "tom" #3
得分。而不是 return "tom" #1
对 "tom" #1
的得分,所以不要自我得分。
我之前用两个不同的向量 a
和 b
做过。但是,如果我将它用于相同的向量,那么 "tom" #1
将比 "tom" #1
得分,这是我想要避免的。
有办法吗?
您可以使用 combn
生成 a
的所有无序元素对:
a <- c("tom", "tommy", "alex", "tom", "alexis", "Alex", "jenny", "Al", "michell")
df <- data.frame(t(combn(a, 2)), stringsAsFactors = FALSE)
df$sim <- RecordLinkage::levenshteinSim(df$X1, df$X2)
head(df)
# X1 X2 sim
# 1 tom tommy 0.6
# 2 tom alex 0.0
# 3 tom tom 1.0
# 4 tom alexis 0.0
# 5 tom Alex 0.0
# 6 tom jenny 0.0
如果我有一个名称向量,请说:
a = c("tom", "tommy", "alex", "tom", "alexis", "Alex", "jenny", "Al", "michell")
我想使用 levenshteinSim
或类似工具来获得此向量中的相似度分数。但是,我不希望它自我评分。例如,"tom" #1
对 "tom" #3
得分。而不是 return "tom" #1
对 "tom" #1
的得分,所以不要自我得分。
我之前用两个不同的向量 a
和 b
做过。但是,如果我将它用于相同的向量,那么 "tom" #1
将比 "tom" #1
得分,这是我想要避免的。
有办法吗?
您可以使用 combn
生成 a
的所有无序元素对:
a <- c("tom", "tommy", "alex", "tom", "alexis", "Alex", "jenny", "Al", "michell")
df <- data.frame(t(combn(a, 2)), stringsAsFactors = FALSE)
df$sim <- RecordLinkage::levenshteinSim(df$X1, df$X2)
head(df)
# X1 X2 sim
# 1 tom tommy 0.6
# 2 tom alex 0.0
# 3 tom tom 1.0
# 4 tom alexis 0.0
# 5 tom Alex 0.0
# 6 tom jenny 0.0