我是R的新手,想要比较2个字符串(地址)
有时可能在一个单词中有空格,例如Pitampura - > Pitam pura。
例如
S1 = QU 23/24 Shalimar Bagh,Pitampura,Street no。 22,德里
S2 = QU Flat 23/24 Pitam Pura,St。22,Shalimar Bagh,Delhi
到目前为止,我已删除地址中的特殊字符,空格,冗余字词。
像cosine或levenshtein距离这样的距离公式是一个不错的选择。如果是,请如何在不使用任何包的情况下在R 中应用相同的内容。
不必自由安装任何外部包。
提前致谢。
答案 0 :(得分:1)
不是一个直接的答案,而是一个想法:你可以计算出在另一个向量中出现的分裂小写单词的分数,并建立某种阈值。在R
中,这可能是:
S1 <- "QU 23/24 Shalimar Bagh, Pitampura, Street no. 22, delhi"
lcwords1 <- tolower(unlist(strsplit(S1, " ")))
S2 <- "QU Flat 23/24 Pitam Pura, St. No. 22, Shalimar Bagh, Delhi"
lcwords2 <- tolower(unlist(strsplit(S2, " ")))
(score <- sum(lcwords1 %in% lcwords2)/length(lcwords1) +
sum(lcwords2 %in% lcwords1)/length(lcwords2)) / 2
并且得分
[1] 0.7070707
其中1
将是相等的向量
您很可能需要将此包装在一个会产生结果的函数中,请参阅a similar post here。