python - 如何提高数据框中字符串相似度得分的计算速度?
问题描述
我有一个数据框如下:
df = pd.DataFrame(data=[[1, 'Berlin',], [2, 'Paris', ],
[3, 'Lausanne', ], [4, 'Bayswater',],
[5, 'Table Bay', ], [6, 'Bejing',],
[7, 'Bombay',], [8, 'About the IIS']],
columns=['id', 'text'],)
我想使用库 jellyfish 中的 jaro_winkler 来计算每个字符串的相似度得分,并与其余字符串进行比较,并输出最相似的一个或得到相似度得分矩阵,如下所示:
str1 str2 str3
str1 1 0.6 0.7
str2 0.6 1 0.3
str3 0.7 0.3 1
我怎样才能以快速的方式获得这个结果。现在我只是使用循环来比较每一个并将结果存储在列表中。
def sim_cal(string1, string2):
similar = jellyfish.jaro_winkler(string1, string2)
return similar
但是如果数据变大速度会很慢,那么有什么办法可以加快速度呢?
谢谢。
解决方案
推荐阅读
- java - Android Studio Java:setSystemUIVisibility 无法解析符号视图
- python - Python多处理无法从共享集中读取
- python - 有没有办法知道传递给函数的参数值?
- linux - 如何将 libname.so 链接到 C?
- c# - 使用 iText 打印扭曲的粗体文本
- c++ - 基于模板变量参数的类模板内的函数指针定义
- hive - HiveSQL 的 REPLACE() 函数,REGEXP_REPLACE() 未按预期工作
- r - 直接在一个因子上使用 case_when
- nginx - Nginx 条件代理通过配置
- node.js - 为什么我可以从浏览器访问 url 但从节点(axios.get)得到 403 错误(API)