タイトルに記載されているこの IndexError に遭遇したように見えたとき、TFIDF 関数を (自分で使用するために) 書き直そうとしていました。今、私はこれについて少し読んでいますが、まだ意味を正しく理解できません. . 私のこのばかげたエラーについての助けをいただければ幸いです。助けてくれてありがとう。
コードは次のとおりです-
tfidf_matrix = [[0 for x in range(len(txt2))] for j in set(nltk.word_tokenize(full1))]
def search1(vocab1,searchFor):
m=0
for word,indexNo in vocab1.items():
if word==str(searchFor):
m=indexNo
break
else:
m=len(vocab1)+10
return m
j=0
for idx in range(len(txt2)):
post = txt2[idx]
tfidf_matrix[idx] = []
for term in set(nltk.word_tokenize(post)):
k = search1(vocab,str(term))
if k<len(vocab):
tfidf_matrix[k][idx] = tfidf(term,post,txt2)
else:
vocab[str(term)]= j
tfidf_matrix[j][idx] = tfidf(term,post,txt2)
j=j+1
txt2 は私のコーパスです。2415 のドキュメントが含まれています。full1 は txt1 の連結バージョンです。つまり、連結された txt1 のすべての文字列であるため、tfidf 行列を作成する列の数を事前に知ることができます。
トレースバックは次のとおりです。
Traceback (most recent call last):
File "<ipython-input-6-5cb754d2e391>", line 23, in <module>
tfidf_matrix[j][idx] = tfidf(term,post,txt2)
IndexError: list assignment index out of range
どんな提案でも大歓迎です。