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

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

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

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python 3.x

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

Mecab

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

Q&A

2回答

2700閲覧

MeCabの文字化け

退会済みユーザー

退会済みユーザー

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python 3.x

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

Mecab

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

0グッド

2クリップ

投稿2017/07/26 06:44

###実現したいこと
pythonで形態素解析を行うためにMeCabをインストールしたのですが、MeCabを起動し日本語を入力してみても、文字化けしてしまい、上手く形態素解析ができていません。
言語は「日本語」を選択、文字コードは「utf-8」を選択しました。ちなみにOSはWindowsです。
様々なサイトを調べてみたのですが、解決することはできませんでした。

また、pythonのコード内で「import MeCab」と書くと「そのモジュールは見つかりません」といったエラーが出てしまいます。他の形態素解析ツール「janome」を使おうとした場合にも同じエラーが出てしまいました。エラーを原因と解決法を教えていただきたいです。

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

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

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

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

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

guest

回答2

0

私も過去に同様の疑問を持ち、公式ドキュメントやネット上を調べましたが、コマンドプロンプト(やPowerShell)上では文字化けは避けられないと結論づけました。
(chcpで文字コード変更すれば出力(表示)は解消するが、ターミナル上で入力した結果が正しく扱えない?)
そのかわりに以下のようにファイル経由であれば文字化けしませんので、こちらの手段をお勧めします。

DOS

1c:\users\hoge>mecab in.txt -o out.txt

in.txt ※文字コードUTF-8であること

すもももももももものうち

out.txt ※文字コードUTF-8で出力される。

すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ の 助詞,連体化,*,*,*,*,の,ノ,ノ うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ EOS

また、Pythonから利用できますが、以下などを参考に環境構築の必要があります。
参考:MeCabを「Windows10;Python3.5(64bit)」に入れる
ただしWindows上での環境構築は茨の道です。
ubuntuなどでの利用を検討することをお勧めします。

投稿2017/07/26 08:11

can110

総合スコア38262

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

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

0

MeCab及びjanomeをインストールした手順を質問文に正確に追記してくださいー。
janomeならpip install janome でインストールできます。

Python

1# coding: utf-8 2from janome.tokenizer import Tokenizer 3 4 5def main(): 6 t = Tokenizer() 7 for token in t.tokenize(u'すもももももももものうち'): 8 print(token) 9 10if __name__ == '__main__': 11 main()

投稿2017/07/28 15:41

umyu

総合スコア5846

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問