在r/python中查找id列之间的相似性

2024-06-13 17:11:07 发布

您现在位置:Python中文网/ 问答频道 /正文

数据如下:

id <- c(1,1,2,1,3,2)
address <- c("ABC Ret1","ABC","NY AB1","XYZ","DEL1","NY AB")
similar_address <- data.frame(id,address)

我想找到每个id的相似地址,并创建一个新的data.frame,如下所示

enter image description here

首选是使用余弦相似度来查找地址之间的相似度


Tags: 数据iddataabaddress地址framesimilar
1条回答
网友
1楼 · 发布于 2024-06-13 17:11:07

使用qlcMatrix包中的函数sim.strings:

get_count_of_similar_strings = function(x){
  issim=(sum(sim.strings(x)>=.5) - length(x))/1
  isnotsim=length(x)-issim
  c(issim,isnotsim)
}

out = by(similar_address$address
,similar_address$id
,get_count_of_similar_strings
,simplify = T)    

data.frame(id=unique(similar_address$id),t(sapply(out,I)))

相关问题 更多 >