Help us understand the problem. What is going on with this article?

MeCabをPythonとRで使う-Windows10-64bit

はじめに

RStudio+RMeCabで1年ほどテキスト解析をしてきたのですが、
そろそろPythonもやらないとと言う空気に駆られてPython上でMeCabを環境構築しようとしたところ苦戦。

PythonでMeCabを使えるようにすると、RStudioで文字化けし、
RStudioでMeCabを使えるようにするとPythonで文字化けしを繰り返す。

いろいろ検索するととRはSHIFT-JIS、PythonはUTF-8と言う事で文字コードの違いが原因の模様。
以下の様にRとPythonで呼び出す辞書を変えてRStudio,PythonでMeCabが使えるようになりました。

環境

Windows10 64bit 言語:日本語
R 3.5.1 64bit
RStudio 1.1.463
MeCab 0.996-32bit
RMeCab 1.00
Python 3.6.8(anaconda3 5.3.0) 64bit

導入する物

mecab-python-windows
MeCab 0.996-32bit-UTF-8辞書、SHIFT-JIS辞書再構築のため再導入

導入方法

MeCabは"C:\Program Files (x86)\MeCab"にインストールしている場合を示します。
他のドライブの場合は適宜読み替えてください。

1.以下のサイトを参考にPython用MeCabバインディングを入れる

https://qiita.com/yukinoi/items/990b6933d9f21ba0fb43

2.MeCabインストールの際UTF-8で辞書を作成し、辞書フォルダ名を変更。

辞書フォルダ"C:\Program Files (x86)\MeCab\dic\ipadic"のフォルダ名を
"C:\Program Files (x86)\MeCab\dic\ipadic-UTF8"に変更

3.再度MeCabをインストールし、辞書をSHIFT-JISで作成。

これで "C:\Program Files (x86)\MeCab\dic"配下には以下の2つの辞書フォルダが出来る。
"C:\Program Files (x86)\MeCab\dic\ipadic"
"C:\Program Files (x86)\MeCab\dic\ipadic-UTF8"

4.mecabrc-uファイルでUTF-8辞書を指定(2019/1/27追記)

この改訂以前はPythonから辞書を指定する際に-dオプションで直接指定していましたが、
-rオプションでmecabrcファイルから指定できることが分かりました。
こちらの方が直接辞書ファイルを指定する場合より判りやすくなるのこの方式を使用する事にしました。

C:\Program Files (x86)\MeCab\etc\mecabrcを開き以下の様に編集し
mecabrc-uの別名で保存。

6行目
(修正前)dicdir =  $(rcpath)\..\dic\ipadic
(修正後)dicdir = C:\Program Files (x86)\MeCab\dic\ipadic-UTF8

これでC:\Program Files (x86)\MeCab\etc\には以下の2つのファイルが出来る。
mecabrc
mecabrc-u

解析の実行

RStudioからMeCabで形態素解析

通常通り以下の様に行います。

library(RMeCab)
RMeCabC("すもももももももものうち")

PythonからMeCabでの形態素解析

meCabrc-uファイルを指定してMeCabを呼び出し形態素解析。

import MeCab
m=MeCab.Tagger("-r C:\progra~2\MeCab\etc\mecabrc-u")
print(m.parse ("すもももももももものうち"))

-r オプションで指定する場合のフォルダ区切りは"\"です。
"/"ではなぜかRuntimeエラーが出ます。

修正・変更履歴

2020/1/11

Python用MeCabバインディングがmecab-python-windowsからmecabに変わったので、リンク先を変更しました。

2019/1/31

-rでオプション指定した際のフォルダの区切り文字を/→\に修正しました。

2019/1/27

辞書ファイルの指定を-dオプションから-rオプションでmecabrcファイルから指定する事に変更しました。
是に伴い、大幅に改訂しています。

2019/1/9

Program Files (x86)の誤記を修正しました。

2019/1/6

PCの調子が悪くなったので、OSを再インストールしてから行ったところ以下の間違いに気づきました。
Windowsは日本語を使用しています。

UTF辞書のフォルダ名のショートパスが以下の通りでした。

(正)C:/progra~2/MeCab/dic/ipadic~1
(誤)C:/progra~2/MeCab/dic/ipadic-UTF8

コマンドプロンプトからのMeCab使用

コマンドプロンプトからMeCabを使用したところ、MeCab64bitなしでも文字化けしませんでした。

zincjp
福岡の北の方で地味に特許情報のテキスト解析を始めました。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした