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

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

新規登録して質問してみよう
ただいま回答率
85.50%
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

解決済

1回答

1734閲覧

Windowsで、MeCabとCaboChaのエンコードが分からない

hapdap

総合スコア14

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グッド

0クリップ

投稿2019/12/09 06:35

編集2019/12/10 06:58

Windows 10で、MeCab・CaboChaを使用したいのですが、CaboChaに関して出力が得られず、困っています。
コンソール上ではなく、Python(3系)で実行することが目的です。

特に、エンコードに関してが原因ではないかと推察していますが、どこが原因なのか理解できていません。
解決策、アドバイス等をご教示頂ければと存じます。

以下、現状で調べてみた内容です。

  • MeCab・CaboChaとも、UTF-8の辞書でインストールした
  • コマンド プロンプトのデフォルトのエンコードはSHIFT-JISらしい
    • chcp → 932
  • このとき、mecabの入出力はこうなる(文字化けする)

彼はリンゴを食べた
彼はリン 險伜捷,荳€闊ャ,,,,,*
S 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・,,,
を食べた 險伜捷,荳€闊ャ,,,,,*
EOS

  • Pythonで次のような"mecab_test.py"を作る

import MeCab

mecab = MeCab.Tagger("-Ochasen")

text = input()
mecab.parse("")
print(mecab.parseToNode(text))

  • 実行するとこうなる

彼はリンゴを食べた
彼 カレ 彼 名詞-代名詞-一般
は ハ は 助詞-係助詞
リンゴ リンゴ リンゴ 名詞-一般
を ヲ を 助詞-格助詞-一般
食べ タベ 食べる 動詞-自立 一段 連用形
た タ た 助動詞 特殊・タ 基本形

  • CaboChaの入出力はこうなる

彼はリンゴを食べた
彼はリンゴを食べた
EOS

(同じものを繰り返すだけになる)

  • Pythonで、次のような"cabocha_text.py"を作る

import CaboCha

c = CaboCha.Parser()
sentence = input()

print(c.parseToString(sentence))

tree = c.parse(sentence)
print(tree.toString(CaboCha.FORMAT_LATTICE))

  • 実行するとこうなる

Traceback (most recent call last):
File "cabocha_text.py", line 1, in <module>
import CaboCha
ModuleNotFoundError: No module named 'CaboCha'

CaboChaのモジュールをインストールできていないっぽい…? 下記Qiitaを参考にしてみましたが……
https://qiita.com/ayuchiy/items/17a2d48116b2da7535eb

  • chcp 65001を実行して、コマンドプロンプトのエンコードをUTF-8にしてみる
  • MeCabはこうなる

彼はリンゴを食べた
EOS

CaboChaはこうなる

彼はリンゴを食べた

EOS

12/10 追記

Q. MeCab・CaboChaはどこから入手しましたか?
A. MeCab・CaboChaとも公式サイトです。
MeCab:https://taku910.github.io/mecab/
CaboCha:https://taku910.github.io/cabocha/
いずれも、最新バージョンです。

Q. Pythonのバージョンは?
3.8.0です。

console

1Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:21:23) [MSC v.1916 32 bit (Intel)] on win32 2Type "help", "copyright", "credits" or "license" for more information.

Q. バインディングできてないのでは?
A. アドバイスを受け、以下の内容を試してみました。

python

1import CaboCha 2 3c = CaboCha.Parser() 4sentence = input() 5 6print(c.parseToString(sentence)) 7 8tree = c.parse(sentence) 9print(tree.toString(CaboCha.FORMAT_TREE))

console

1Traceback (most recent call last): 2 File "cabocha_test.py", line 1, in <module> 3 import CaboCha 4 File "C:\Users***\AppData\Local\Programs\Python\Python38-32\lib\site-packages\CaboCha.py", line 28, in <module> 5 _CaboCha = swig_import_helper() 6 File "C:\Users***\AppData\Local\Programs\Python\Python38-32\lib\site-packages\CaboCha.py", line 24, in swig_import_helper 7 _mod = imp.load_module('_CaboCha', fp, pathname, description) 8 File "C:\Users***\AppData\Local\Programs\Python\Python38-32\lib\imp.py", line 242, in load_module 9 return load_dynamic(name, filename, file) 10 File "C:\Users***\AppData\Local\Programs\Python\Python38-32\lib\imp.py", line 342, in load_dynamic 11 return _load(spec) 12ImportError: DLL load failed while importing _CaboCha: 指定されたモジュールが見つかりません。
  • MEMO : setup.pyを実行した際のログです(ここで不具合が起きていたら怖いな…ということで念のため貼り付けておきます)

console

1>python setup.py install 2running install 3running build 4running build_py 5creating build 6creating build\lib.win32-3.8 7copying CaboCha.py -> build\lib.win32-3.8 8running build_ext 9building '_CaboCha' extension 10creating build\temp.win32-3.8 11creating build\temp.win32-3.8\Release 12C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files (x86)\CaboCha\sdk" -IC:\Users***\AppData\Local\Programs\Python\Python38-32\include -IC:\Users***\AppData\Local\Programs\Python\Python38-32\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /TpCaboCha_wrap.cxx /Fobuild\temp.win32-3.8\Release\CaboCha_wrap.obj 13CaboCha_wrap.cxx 14C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO "/LIBPATH:C:\Program Files (x86)\CaboCha\sdk" /LIBPATH:C:\Users***\AppData\Local\Programs\Python\Python38-32\libs /LIBPATH:C:\Users***\AppData\Local\Programs\Python\Python38-32\PCbuild\win32 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\lib\x86" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x86" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x86" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\ucrt\x86" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\um\x86" libcabocha.lib /EXPORT:PyInit__CaboCha build\temp.win32-3.8\Release\CaboCha_wrap.obj /OUT:build\lib.win32-3.8\_CaboCha.cp38-win32.pyd /IMPLIB:build\temp.win32-3.8\Release\_CaboCha.cp38-win32.lib 15 ライブラリ build\temp.win32-3.8\Release\_CaboCha.cp38-win32.lib とオブジェクト build\temp.win32-3.8\Release\_CaboCha.cp38-win32.exp を作成中 16コード生成しています。 17コード生成が終了しました。 18running install_lib 19copying build\lib.win32-3.8\CaboCha.py -> C:\Users***\AppData\Local\Programs\Python\Python38-32\Lib\site-packages 20copying build\lib.win32-3.8\_CaboCha.cp38-win32.pyd -> C:\Users***\AppData\Local\Programs\Python\Python38-32\Lib\site-packages 21byte-compiling C:\Users***\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\CaboCha.py to CaboCha.cpython-38.pyc 22running install_egg_info 23Writing C:\Users***\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\cabocha_python-0.69-py3.8.egg-info

***:私のユーザー名が入ります

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

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

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

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

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

quickquip

2019/12/09 06:43

> MeCab・CaboChaとも、UTF-8の辞書でインストールした どこから入手したものをどうやってインストールしましたか。 > 下記Qiitaを参考にしてみましたが…… あなたが参考にしたページはあなたの状況を判断する上では特に役に立ちません。質問の内容からすると(5)が成功していないはずで、だとするとそのページの通りにしていない(できていない)はずです。 あなたがやったことを書きましょう。
quickquip

2019/12/09 06:44 編集

pythonも、どこから入手したものをどうやってインストールしたのかの情報があるといいかと思います。(あるいはpythonと実行したときの最初の2行)
hapdap

2019/12/10 06:55

ありがとうございます。追記いたしました。
guest

回答1

0

ベストアンサー

  • MeCabに関してはコマンドプロンプトでは上手く行っていないけどpythonからはうまく使えているようなので、問題なしかと思います。UTF-8で辞書を作ってしまうと、そんな感じになるのが割と普通です。
  • CaboChaはそもそもimportでこけているので、エンコーディング云々ではなくバインディングのインストールに失敗している線が濃厚です。

投稿2019/12/09 06:39

hayataka2049

総合スコア30933

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

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

hapdap

2019/12/11 14:49 編集

回答ありがとうございます。 バインディングに失敗しているのでは、ということで、バインディングについて改めて見直してみたのですが、違う形で不具合が生じてしまいました……。 →一旦問題を保留し、他の方向でチャレンジしてみよう、ということになりました。アドバイスありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問