python - 在 r/python 中查找 id 列之间的相似性
问题描述
数据如下:
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 如下
首选是余弦相似度,用于查找地址之间的相似度
解决方案
使用 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)))
推荐阅读
- mysql - 如何在 mysql 中删除而不删除主要和外部约束
- algorithm - 转换循环以进行并行化
- r - 如何测试\是否在字符串中?
- java - 如何在 Spring Cloud Gateway 中添加特定于路由的自定义过滤器
- reactjs - antd 表通过 react-csv 导出到 csv 使表变慢
- excel - 将存在的文件与 Excel 工作表进行比较
- visual-studio - 只有在工具支持的情况下,我如何有条件地构建 .Net Core 3.0?
- swift - 获取 Anyhashable 类型的数据?
- sql - 将库存图正确连接到公司
- jupyter-notebook - 如何在数据更新时触发现有的 Jupyter Notebook