Я новичок в python, и я запускаю fuzzywuzzy string matching логический на список с 2 миллионами записей. Код работает, и он также дает результат. Проблема в том, что это крайне медленно. Через 3 часа он обрабатывает только 80 строк. Я хочу ускорить процесс, сделав его обрабатывать сразу несколько строк.Как выполнить многопроцессорную обработку в python на 2-м строках с использованием логической логики строки fuzzywuzzy? Текущий код очень медленный
Если это помогает - я запускаю его на своей машине с 16 ГБ оперативной памяти и 1,9 ГГц двухъядерным процессором.
Ниже приведен код, в котором я запущен.
d = []
n = len(Africa_Company) #original list with 2m string records
for i in range(1,n):
choices = Africa_Company[i+1:n]
word = Africa_Company[i]
try:
output= process.extractOne(str(word), str(choices), score_cutoff=85)
except Exception:
print (word) #to identify which string is throwing an exception
print (i) #to know how many rows are processed, can do without this also
if output:
d.append({'Company':Africa_Company[i],
'NewCompany':output[0],
'Score':output[1],
'Region':'Africa'})
else:
d.append({'Company':Africa_Company[i],
'NewCompany':None,
'Score':None,
'Region':'Africa'})
Africa_Corrected = pd.DataFrame(d) #output data in a pandas dataframe
Заранее благодарен!
Передача 'str (выбор)' '' extractOne' кажется неправильным для меня, разве это не просто «выбор»? – mata