-4
私は、1組のテキストファイルと84個のテキストファイルのデータセットのコサイン類似度を計算する目的でループを実行しています(反復プロセスとして)。私が従うロジックは、最初に文書0と1からそれを計算し、次に文書1と2を文書n-1とnまで計算することです。私はそれをコード化された方法は以下の通りです:list index out of range
:リストインデックスが範囲外ループPython
my_funcs = {}
for i in range(len(data)):
def foo(x, y):
x = data[i]['body']
y = data[i+1]['body']
tfidf = vectorizer.fit_transform([x, y])
return ((tfidf * tfidf.T).A)[0,1]
foo.func_name = "cosine_sim%d" % i
my_funcs["cosine_sim%d" % i] = foo
globals().update(my_funcs) # Export to namespace
は驚くほど私のコードは私に次のエラーを与えるわけではありません。 i = len(data)
のときにループを停止するよう指示する方法はありますか?
あなたはループを停止するよう指示しましたが、 'data [i + 1]'はフォールトしているものです。おそらく 'range(len(data) - 1)'が必要です。 – msw
大きな理由なしに 'globals()'を使わないでください。なぜあなたの理由が素晴らしいのか説明できない限り、大きな理由がないとします。 – msw