我正在编写一个程序,将较小的游戏列表与包含许多游戏的主列表进行比较,以确定较小列表中哪些游戏标题与主列表中的游戏标题更相似。为此,我一直在使用
为了寻找更好更快速的字符串搜索方法,我想问一下,在Python中搜索字符串列表中最高百分比Levenshtein距离的最快方法是什么。如果没有比使用上述两个函数或编写其他循环代码更好的方法,请告诉我。
我使用的两个函数具体用于搜索最高距离如下:
difflib
和fuzzywuzzy
模块检查较小列表中每个游戏与主列表中所有游戏之间的Levenshtein距离(以百分比形式),并取所有这些值的最大值(最大百分比越低,游戏就越独特)。但是,使用process.extractOne()
或difflib.get_close_matches()
进行典型搜索需要大约5秒以上(主列表中有38000+个字符串),而我需要搜索约4500个游戏(5 * 4500约为6小时15分钟,我没有那么多时间)。为了寻找更好更快速的字符串搜索方法,我想问一下,在Python中搜索字符串列表中最高百分比Levenshtein距离的最快方法是什么。如果没有比使用上述两个函数或编写其他循环代码更好的方法,请告诉我。
我使用的两个函数具体用于搜索最高距离如下:
metric = process.extractOne(name, master_names)[1] / 100
metric = fuzz.ratio(name, difflib.get_close_matches(name, master_names, 1, 0)[0]) / 100