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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Mecab

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

2566閲覧

[Google Colab]MeCabでのUnicodeDecodeError

52kkp

総合スコア6

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Mecab

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/05/28 04:02

GoogleColabにて以下のコードを実行するとUnicodeDecodeErrorが発生しました。
解決方法などをご教授いただければありがたいです。

Python

1!apt install aptitude 2!aptitude install mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file -y 3!pip install mecab-python3==0.7 4 5 6f = open('/content/検索履歴.txt',encoding='UTF-8-SIG') 7text = f.read() 8f.close() 9 10import MeCab 11m = MeCab.Tagger ('-Ochasen') 12 13node = m.parseToNode(text) 14words=[] 15while node: 16 words.append(node.surface) 17 node = node.next

「検索履歴.txt」の文字コードについては以下で確認済みです。

import chardet with open('検索履歴.txt', 'rb') as f: print('検索履歴.txt') print(chardet.detect(f.read())) #結果 検索履歴.txt {'encoding': 'UTF-8-SIG', 'confidence': 1.0, 'language': ''}

エラー内容はこちらです。

UnicodeDecodeError Traceback (most recent call last) <ipython-input-38-23e2e29d0c41> in <module>() 14 words=[] 15 while node: ---> 16 words.append(node.surface) 17 node = node.next UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa1 in position 0: invalid start byte

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

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

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

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

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

guest

回答2

0

ベストアンサー

こんばんは。

問題文読ませていただきました。

こちらあたりの記事を確認すると、

https://www.koichihori.tech/mecab_unicode_jp.html
https://qiita.com/kasajei/items/0805b433f363f1dba785

Python

1m = MeCab.Tagger('-Ochasen') 2# 追加 3m.parse("")

とするとうまくいきそうです。

ご確認のほど、よろしくお願いいたします。????‍♂️

投稿2021/05/28 10:49

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

52kkp

2021/05/29 05:57

ご回答ありがとうございます! 以前もお世話になりました。 追加すると上手く動作しました。 色々検索してみましたが、こんな的確な答えのページにたどり着けなかった私の検索力が低いのも問題ですね・・・
退会済みユーザー

退会済みユーザー

2021/05/29 06:16

いえいえ。 うまくいってよかったです。検索力は時間をかけていくと慣れてくると思いますので、焦らずじっくりと経験を積んでいきましょう! Enjoy!!!
guest

0

わざわざ0.7と古いバージョンを指定しているので、古いバグが残ったままなのです。
なぜ0.7を指定したんでしょう?


アドホックに解決するなら、TeratailでparseToNode UnicodeDecodeErrorと検索して、トップに出てくる質問からたどった
https://qiita.com/kasajei/items/0805b433f363f1dba785
の通りに、parseToNodeの前に

python

1mecab.parse("")

を1回実行しておけばエラーはなくなるはずです。

投稿2021/05/28 05:25

編集2021/05/28 05:38
quickquip

総合スコア11038

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

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

52kkp

2021/05/29 05:54

ご回答ありがとうございます! 追加してみるとうまく動作しました。 参考にした方のコードでは旧バージョンを使用していたためです。 最新Verにして確認もしてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問