【发布时间】:2016-03-18 13:10:56
【问题描述】:
我正在尝试比较像 PRABHAKAR SHARMA 和 SHARMA KUMAR PRABHAKAR 这样的字符串。目的是检查较短字符串的所有字符是否存在于另一个字符串中。如果是这种情况,我应该得到一个 100% 的匹配,否则一个百分比表示匹配的字符百分比。
我尝试在RecordLinkage 包中使用levenshteinSim,但它给出的数字对应于将一个字符串更改为另一个字符串所需的更改次数。
install.packages("RecordLinkage")
require(RecordLinkage)
levenshteinSim("PRABHAKAR SHARMA","SHARMA KUMAR PRABHAKAR")
#[1] 0.3636364
在这种情况下,我想要 100% 的匹配。此外,这必须复制超过 1,000,000 条记录。
【问题讨论】:
-
你的意思是短字符串中的所有字符还是所有单词都需要在长字符串中匹配?
-
如果您正在寻找单词匹配,您可以尝试类似
long_strings <- "SHARMA KUMAR PRABHAKAR"; short_strings <- "PRABHAKAR SHARMA"; mapply(function(l, s) mean(s %in% l), strsplit(long_strings, " "), strsplit(short_strings, " ")) -
所有字符..它可能会进一步混乱..例如-“PRA SHARBHAK ARRMA”和“PRABHAKAR SHARMA KUMAR”..
标签: r string-matching