レビューを肯定的または否定的な感情に分類するRNNモデルを構築しようとしています。Imdbレビューのエンコーディングエラー
辞書のボキャブもあり、前処理でインデックスのシーケンスを確認します。私は頻繁にvocabsを取得し、その内容を確認しようとすると
は例えば、
"This movie was best" --> [2,5,10,3]
は、私はこのエラーを得た:
num of reviews 100
number of unique tokens : 4761
Traceback (most recent call last):
File "preprocess.py", line 47, in <module>
print(vocab)
UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 10561: ordinal not in range(128)
コードを以下のようなものです:
from bs4 import BeautifulSoup
reviews = []
for item in os.listdir('imdbdata/train/pos')[:100]:
with open("imdbdata/train/pos/"+item,'r',encoding='utf-8') as f:
sample = BeautifulSoup(f.read()).get_text()
sample = word_tokenize(sample.lower())
reviews.append(sample)
print("num of reviews", len(reviews))
word_freq = nltk.FreqDist(itertools.chain(*reviews))
print("number of unique tokens : %d"%(len(word_freq.items())))
vocab = word_freq.most_common(vocab_size-1)
index_to_word = [x[0] for x in vocab]
index_to_word.append(unknown_token)
word_to_index = dict((w,i) for i,w in enumerate(index_to_word))
print(vocab)
質問どうすればこの問題を回避することができますか?UnicodeEncodeError
PythonでNLP問題を扱うときは?特に、open
機能を使用してテキストを取得する場合。
これは私が探していた非常に答えです!ありがとうございました。 –