下記サイトを参考にしてpythonでword2vecのモデルを作成するために、下のソースコードをうごかしてみたのですが、UnicodeDecodeErrorが取れません。
どうすればよいのでしょうか?
・ソースコード
python
1#coding: UTF-8 2from gensim.models import word2vec 3import logging 4logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO) 5data = word2vec.Text8Corpus("/jikken/wikiextractor-master/wiki_wakati.txt") 6model = word2vec.Word2Vec(data, size=200) 7model.save("./wiki.model")
・エラーメッセージ
C:\jikken>python genModel.py C:\Anaconda\lib\site-packages\gensim\utils.py:1212: UserWarning: detected Windows; aliasing chunkize to chunkize_serial warnings.warn("detected Windows; aliasing chunkize to chunkize_serial") 2018-11-02 06:40:53,466 : INFO : collecting all words and their counts 2018-11-02 06:40:53,466 : INFO : PROGRESS: at sentence #0, processed 0 words, keeping 0 word types Traceback (most recent call last): File "genModel.py", line 6, in <module> model = word2vec.Word2Vec(data, size=200) File "C:\Anaconda\lib\site-packages\gensim\models\word2vec.py", line 767, in __init__ fast_version=FAST_VERSION) File "C:\Anaconda\lib\site-packages\gensim\models\base_any2vec.py", line 759, in __init__ self.build_vocab(sentences=sentences, corpus_file=corpus_file, trim_rule=trim_rule) File "C:\Anaconda\lib\site-packages\gensim\models\base_any2vec.py", line 936, in build_vocab sentences=sentences, corpus_file=corpus_file, progress_per=progress_per, trim_rule=trim_rule) File "C:\Anaconda\lib\site-packages\gensim\models\word2vec.py", line 1571, in scan_vocab total_words, corpus_count = self._scan_vocab(sentences, progress_per, trim_rule) File "C:\Anaconda\lib\site-packages\gensim\models\word2vec.py", line 1540, in _scan_vocab for sentence_no, sentence in enumerate(sentences): File "C:\Anaconda\lib\site-packages\gensim\models\word2vec.py", line 1372, in __iter__ text[last_token:].strip()) if last_token >= 0 else ([], text) File "C:\Anaconda\lib\site-packages\gensim\utils.py", line 355, in any2unicode return unicode(text, encoding, errors=errors) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe3 in position 5685: invalid continuation byte
参考にしたサイト↓
https://qiita.com/kenta1984/items/93b64768494f971edf86
サイト内のコマンドがUNIX向けのものだったため、自分でWindows向けのコマンドに直しています。それがちゃんとあっている自信もないので、確認お願い致します。
元のコマンド1 $ find text/ | grep wiki | awk '{system("cat "$0" >> wiki.txt")}' ↓ 直したコマンド1 for /r text\ %a in (*wiki.*) do type "%a" >>wiki.txt 元のコマンド2 $ nkf -w --overwrite wiki_wakati.txt ↓ 直したコマンド2 nkf32 -w -w80 wiki_wakati.txt
また、ソースコード内のwiki-wakati.txtの文字コードをEmacsで確認したところ、文字コードはBOM無しUTF-8になっているのですが、開く際に、
"指定されたエンコードで変換できない文字が含まれています。編集を続行して保存するとファイルの中身が破壊されます。"
と出ます。もしこれが原因なのであればどうすればこの状態を解消できるのでしょうか?御回答お願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/03 04:13