小编Jam*_*son的帖子

Python 中针对 50K 项列表的嵌套循环优化

我有一个 csv 文件,其中包含大约 50K 行搜索引擎查询。一些搜索查询是相同的,只是词序不同,例如“查询 A 这是”和“这是查询 A”。

我已经测试过使用 fuzzywuzzy 的 token_sort_ratio 函数来查找匹配的词序查询,效果很好,但是我正在努力解决嵌套循环的运行时问题,并寻找优化技巧。

目前,嵌套 for 循环在我的机器上运行大约需要 60 小时。有谁知道我如何加快速度?

代码如下:

from fuzzywuzzy import fuzz
from fuzzywuzzy import process
import pandas as pd
from tqdm import tqdm

filePath = '/content/queries.csv'

df = pd.read_csv(filePath)

table1 = df['keyword'].to_list()
table2 = df['keyword'].to_list()

data = []

for kw_t1 in tqdm(table1):
  for kw_t2 in table2:
     score = fuzz.token_sort_ratio(kw_t1,kw_t2)
     if score == 100 and kw_t1 != kw_t2:
       data +=[[kw_t1, kw_t2, score]]

data_df = pd.DataFrame(data, columns=['query', 'queryComparison', 'score'])
Run Code Online (Sandbox Code Playgroud)

任何意见,将不胜感激。 …

python optimization loops nested-loops

5
推荐指数
1
解决办法
109
查看次数

标签 统计

loops ×1

nested-loops ×1

optimization ×1

python ×1