Python 减少fuzzypattern匹配的执行时间

Python 减少fuzzypattern匹配的执行时间,python,nlp,pattern-matching,fuzzywuzzy,Python,Nlp,Pattern Matching,Fuzzywuzzy,我不是迭代地传递单个参数,而是传递整个列,但仍然需要相同的时间 大约需要1分钟,非常长 这是密码 from fuzzywuzzy import fuzz import json import pandas as pd import time k = pd.read_csv(r"/home/hamza/Downloads/retrosynthesis1-all.csv") k.dropna() word = input(" Enter String : "

我不是迭代地传递单个参数,而是传递整个列,但仍然需要相同的时间

大约需要1分钟,非常长

这是密码

from fuzzywuzzy import fuzz
import json
import pandas as pd
import time

k = pd.read_csv(r"/home/hamza/Downloads/retrosynthesis1-all.csv")
k.dropna()
word = input(" Enter String : ")
t0 = time.time()

patterns = pd.DataFrame(data=k['Target'])
print(type(patterns))
result = pd.DataFrame(data=k['Reactant'])
w=[word for i in range(len(patterns))]

wd = pd.DataFrame(data=w, columns=['input'])
df = pd.concat([wd, patterns, result], axis=1, sort=False)
print(df)

def get_ratio(row):
    name = row['input']
    name1 = row['Target']
    return fuzz.partial_ratio(name, name1)

res = df[df.apply(get_ratio, axis=1) > 70]

您可以尝试使用
difflib
,因为处理整个数据集仍然需要2-3分钟。就执行时间而言,这比上一个要高。您可以尝试使用rapidfuzz来执行此操作,它应该比FuzzyFuzzy快一点。您可以尝试使用
difflib
,因为处理整个数据集仍然需要2-3分钟。就执行时间而言,这比上一个要高。您可以尝试使用rapidfuzz来实现这一点,它应该比FuzzyFuzzy快一点。