前提・実現したいこと
現在Udemyで自然言語処理に関する学習を行っています。
その中で「吾輩は猫である」のテキストデータに前処理として以下のコードを実行したところ、次のような問題が発生しました。
知識がほぼないため全く解決策の見当がつきません...
この問題の対処が分かる方、どうかご教授お願いします。
発生している問題・エラーメッセージ
TypeError Traceback (most recent call last) <ipython-input-1-8c3280badc2d> in <module> 22 23 with open('wagahai_words.pickle', mode='wb') as f: # pickleに保存 ---> 24 pickle.dump(wagahai_words, f) TypeError: can't pickle generator objects
Python
import re import pickle from janome.tokenizer import Tokenizer with open("wagahaiwa_nekodearu.txt", mode="r", encoding="utf-8") as f: # ファイルの読み込み wagahai_original = f.read() wagahai = re.sub("《[^》]+》", "", wagahai_original) # ルビの削除 wagahai = re.sub("[[^]]+]", "", wagahai) # 読みの注意の削除 wagahai = re.sub("[| 「」\n]", "", wagahai) # | と全角半角スペース、「」と改行の削除 seperator = "。" # 。をセパレータに指定 wagahai_list = wagahai.split(seperator) # セパレーターを使って文章をリストに分割する wagahai_list.pop() # 最後の要素は空の文字列になるので、削除 wagahai_list = [x+seperator for x in wagahai_list] # 文章の最後に。を追加 t = Tokenizer() wagahai_words = [] for sentence in wagahai_list: wagahai_words.append(t.tokenize(sentence, wakati=True)) # 文章ごとに単語に分割し、リストに格納 with open('wagahai_words.pickle', mode='wb') as f: # pickleに保存 pickle.dump(wagahai_words, f)
補足情報(FW/ツールのバージョンなど)
python3.6
回答1件
あなたの回答
tips
プレビュー