Более быстрый способ получения результатов из Fuzzywuzzy без использования многопроцессорных - PullRequest
0 голосов
/ 11 сентября 2018

Я использую код Python, в котором я пытаюсь получить 2 ближайших совпадения по 2 наборам данных.Я использую выдержку из Fuzzywuzzy, чтобы получить результаты.Код ниже:

from fuzzywuzzy import process
import pandas as pd
import time

data1=pd.read_csv('Dump.csv',encoding='latin-1')
data2=pd.read_csv('Dump5.csv',encoding='latin-1')
b=[]
a=time.time()
long_name=data2['LONG_NAME'].tolist()
long_juri=data2['City'].tolist()
def get_matches(name,juri,limit=2):
    result=process.extract(name,data1[data1.JURISDICTION==juri]['LONG_NAME'].tolist(),limit=limit)
    return result
for i in range(1,1000):
    b.append(get_matches(long_name[i],long_juri[i]))
print(round(time.time()-a,10),"seconds")
c=pd.DataFrame.from_records(b)
c.to_csv("Results.csv",index=False)

Я перебираю 1 000 записей против 300 000 записей, чтобы получить 2 ближайших совпадения.Это займет 40 минут, чтобы выполнить.Мне нужно повторить 300 000 записей против этих 300 000 записей.Таким образом, это займет около 200 часов, и это также, когда я не работаю в системе, которую я не могу себе позволить.

Невозможно использовать многопроцессорность, так как это приведет к снижению производительности моей системы.

Как выполнить программу быстрее?

...