質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

Q&A

解決済

1回答

531閲覧

自然言語処理をするための、ファイル読み込みでエラーが出てしまいます

J1N

総合スコア56

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

0グッド

0クリップ

投稿2019/06/08 00:22

編集2019/06/08 00:43

前提・実現したいこと

自然言語処理の練習をするため、下記のサイトにあるファイルを読み込み、MeCabによる処理をしたいです。

https://www.aozora.gr.jp/cards/000296/card47061.html
ここのテキストファイル(ZIP)をダウンロードしています。

OSはMacを使っています。
原因と対処方法を教えていただけますと幸いです。

発生している問題・エラーメッセージ

UnicodeDecodeError Traceback (most recent call last) <ipython-input-29-95f53f514a7a> in <module> 1 with open('gakumonno_susume.txt', 'r', encoding = 'utf-8') as file: ----> 2 lines = file.readlines() ~/anaconda3/lib/python3.6/codecs.py in decode(self, input, final) 319 # decode input (taking the buffer into account) 320 data = self.buffer + input --> 321 (result, consumed) = self._buffer_decode(data, self.errors, final) 322 # keep undecoded input until the next call 323 self.buffer = data[consumed:] UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8a in position 0: invalid start byte

該当のソースコード

Python3

1with open('gakumonno_susume.txt', 'r', encoding = 'utf-8') as file: 2 lines = file.readlines()

フルパスを指定した場合のコード

Python3

1with open('/Users/username/Downloads/自然言語処理/gakumonno_susume.txt', 'r', encoding = 'utf-8') as file: 2 lines = file.readlines()

エラーメッセージ

UnicodeDecodeError Traceback (most recent call last) <ipython-input-31-4af16d10178e> in <module> 1 with open('/Users/username/Downloads/自然言語処理/gakumonno_susume.txt', 'r', encoding = 'utf-8') as file: ----> 2 lines = file.readlines() ~/anaconda3/lib/python3.6/codecs.py in decode(self, input, final) 319 # decode input (taking the buffer into account) 320 data = self.buffer + input --> 321 (result, consumed) = self._buffer_decode(data, self.errors, final) 322 # keep undecoded input until the next call 323 self.buffer = data[consumed:] UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8a in position 0: invalid start byte

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

そのファイルをフルパスで指定してみてはどうでしょう


ファイルの文字コードの指定が違ってるようですね
エンコードをShiftJISにしてみるとかしてみれば

投稿2019/06/08 00:25

編集2019/06/08 00:43
y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

J1N

2019/06/08 00:36

早速ご返答いただき、ありがとうございます。 試してみましたが、残念ながら同じエラーが出てしまいました。
y_waiwai

2019/06/08 00:38

そのコードとエラーメッセージを提示しましょう
y_waiwai

2019/06/08 00:44

追記しました
J1N

2019/06/08 00:46

ありがとうございます。 教えていただいた通り、ShiftJISにしたら、すぐに解決しました。 大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問