私はPythonを初めて使い、fuzzywuzzyの文字列と一致するのリストに2百万のレコードがあります。 のコードはで動作しており、同様に出力しています。問題は、が極端に遅いです。 3時間で80行しか処理しません。私はそれをに一度に複数の行を処理することによって、速くしたいです。fuzzywuzzy文字列マッチングロジックを実行している2m行のPythonでマルチプロセッシングを行う方法は?現在のコードは極端に遅いです
私は16Gb RAMと1.9GHzデュアルコアCPUを搭載したマシンで実行しています。
以下は実行しているコードです。
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(choices)'を 'extractOne'に渡すのは間違っているようですが、' choices'だけではないでしょうか? – mata