自分のファイルに対してldaモデルを実行しようとしています。まず、トークン化や単語削除のような前処理を行いました。私は複数のファイルに対してこれをやっていますが、最終出力をldaモデルに渡すとエラーになり、ldaが複数のファイルを入力として受け取ることがGoogleで分かりました。 今、私は各ファイルの出力を配列に格納し、その配列を入力として渡したいが、IndexError:リスト割り当てインデックスが範囲外です。私は何が問題なのか分かりません。どんな助けでも大変感謝しています!複数のファイルの出力を配列に渡す方法
# URDU STOP WORDS REMOVAL
doc_clean = []
stopwords_corpus = UrduCorpusReader('./data', ['stopwords-ur.txt'])
stopwords = stopwords_corpus.words()
count = 1
# print(stopwords)
for infile in (wordlists.fileids()):
words = wordlists.words(infile)
finalized_words = remove_urdu_stopwords(stopwords, words)
doc_clean[count] = finalized_words
print(doc_clean)
count =count+1
print("\n==== WITHOUT STOPWORDS ===========\n")
print(finalized_words)
id2word = corpora.Dictionary(doc_clean)
mm = [id2word.doc2bow(text) for text in texts]
lda = models.ldamodel.LdaModel(corpus=mm, id2word=id2word, num_topics=3, update_every=1, chunksize=10000, passes=1)
どのラインでエラーが発生しますか?あなたはスタックトレースを持っていますか? 問題は 'count = 1'で始まっていると思います。後で 'doc_clean [count]'を呼び出します。これは明らかに0ではなくインデックス1で始まります。 –
'doc_clean.append(finalized_words)'を使います。 'append'はリストに項目を追加するためのリストメソッドです。 –
@MaxM空リストでは、このような要素にアクセスしたり追加したりすることができないため、エラーが発生します。 –