我有一个包含超过 1000 万个字符串的列表,我需要在使用相似度函数时对其进行迭代并获得得分百分比。我通过从另一个列表中获取一个项目来做到这一点,该项目将用于检查 giga 列表中的相似性,如下所示..
similarities = []
del similarities[:]
i = 0
drugs ['amoxil', 'acyclovir', 'univir', ...]
while i < len(drugs):
for idx, item in enumerate(drugs):
similarity1 = jaro.jaro_winkler_metric(text1,item)*100
similarity2 = jaro.jaro_winkler_metric(text2,item)*100
similarity3 = jaro.jaro_winkler_metric(text3,item)*100
similarity4 = jaro.jaro_winkler_metric(textn..,item)*100
similarityn..= ..
similarities.append(similarity1)
i += 1
return similarities
要使用的文本(text1、text2 等)大约为 50 到 100。如果药物列表有 10 个左右的项目,则代码运行良好且快速。我添加的项目越多,它变得越慢,问题越多,如果我有 500k 个项目,笔记本电脑可能会冻结。我有超过 1000 万个项目可用于药物清单。如何在不使系统崩溃的情况下加快速度?问候