Python 减少fuzzypattern匹配的执行时间
我不是迭代地传递单个参数,而是传递整个列,但仍然需要相同的时间 大约需要1分钟,非常长 这是密码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 : "
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快一点。