MeCabの辞書の文字コードにハマった件

日本語のテキスト解析をRで行うにあたっては、tidytext()をかける前に、MeCabを使って「分かち書き」をする必要があります。

(分かち書きの例)今日 は よい お 天気 です ね 。

※MeCabで何をするかわからない人は、こちらのスライドを参照。
https://ymattu.github.io/TokyoR64/apply/apply.html#/

http://chasen.naist.jp/chaki/t/2009-09-30/doc/mecab-cabocha-nlp-seminar-2009.pdf

1. 前提条件

業務用PCはセキュリティが厳しく、Program Filesへのパラメタ等の書き込みができない。

2.インストール

最初、Program FilesにINSTしたら、辞書の書き換えなどができず断念。

次に、C:\にINSTしたら、「Program Filesにファイルがありません」という意地悪を言われた (´・ω・`)

3.開発者に質問

まずはRのパッケージRMeCabの開発者にTwitter経由で質問を投げると、パラメータファイルを設定すればいいという情報を得た。3回のやり取りで回答がもらえなくなったので、断念。

そもそもRがまともに動いていないので、RMeCabを触る前にMeCabが使えるようになるべしと悟り、githubのソースを見たら、別の人(写真付き)が64ビット版を載せていてくれたのでこちらを使うことに。
https://github.com/ikegami-yukino/mecab/releases

メアドが載っていたので質問したら、マニュアルに載っていない下記サイトのリンクを教えてくれた。

http://namazu.asablo.jp/blog/2006/04/04/315244

4.解決

C:\MeCabにINST。忘れず、環境設定でbinにPATHを通しておきませう。

辞書フォルダdicの下にあるIPADICを、ipadicSJIS、ipadicUTF8にコピーして、それぞれの文字コードで辞書を作成。 作り方はこちら

各辞書フォルダの中に、dicrcというファイルがあるので、その中の辞書の文字コードを該当するものに合わせる。盲点※これに気づいたのは、偶然にもエラーメッセージがdicrcがないよと言ってくれたから。

./Mecab/etc/mecabrcを開いて、dicdir="hogehoge"のところを、それぞれ文字コードごとに作った辞書のフォルダを指定して、mecabrcUTF8、mecabrcSJISとして保存。※設定の効果は疑問?

5.使い方

コマンドラインでMeCabを起動する際に、-r オプションで読み込むテキストの文字コードに該当するrcファイルを指定する

C:\MeCab\bin>mecab -r c:\mecab\etc\mecabrcSJIS

プロンプトも何も出ないが、テキストを適当に入力する。

(例1)
今日は良いお天気ですね。
今日 名詞,副詞可能,,,,,今日,キョウ,キョー
は 助詞,係助詞,,,,,は,ハ,ワ
良い 形容詞,自立,,,形容詞・アウオ段,基本形,良い,ヨイ,ヨイ
お 接頭詞,名詞接続,,,,,お,オ,オ
天気 名詞,一般,,,,,天気,テンキ,テンキ
です 助動詞,,,,特殊・デス,基本形,です,デス,デス
ね 助詞,終助詞,
,,,,ね,ネ,ネ
。 記号,句点,
,,,*,。,。,。
EOS

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

6.課題

もしかしたら文字コードを直接指定するオプションがあるのかもしれない。



Linux MintをX31にインストールする

Windows対応のUSBメモリ(セキュリティソフトつき)が読めずに困っていたら、友人が「古いPCならあるよ。捨てるつもりだったからあげる。」とX31をくれた。X31はIBM時代のThinkPadで往年の名機でもある。
インタフェースは、パラレル、シリアル、USB、PCMCIA、IrDA、LANが揃っているという凝り様で、内蔵HDDは容量は小さいもののSSDに換装されている。

最初はWindowsマシンにしようとしていたのだが、そもそもOSが外されているのか初期設定されているのかわからないが、いずれにしても現在サポートされているWindows7や10が動くマシンではないので、早々に諦め、Linuxマシンにすることにした。

Ubuntuの系列であるLinux MINTの最新版18/Taraを使うことにした。

最初、図書館に行ってLinuxマガジンの付録DVDからインストールすることを目論んだが、肝心な付録がついた版が貸出中。帰りに自転車がパンクする憂き目に合うも、自宅のPCで2GBのファイルのダウンロードを半日かけて行った。

SHA256のチェックをしても特に問題なさそう。

ISOイメージをDVDに焼き付けるために、Braseroをダウンロードして作成。

ここまでは時間は要したものの手戻りなく進んだ。しかし・・・

DVDを使ってX31を起動しようとすると、最初のMATEの立ち上がり画面が出るものの、その先は「paeに対応したカーネルを選んでください」という内容のエラーメッセージが出て止まってしまう。(´・ω・`)

paeってなんだ

ぐぐってみると、古いCPUを使っている場合には出るメッセージのようで、対応方法も紹介されていた。助かったのは、起動時にF6を押せばオプションが選択できるということがわかったことで、起動画面にはそのようなメッセージがまったく表示されなかったので、右往左往するところだった。

F6で起動オプションがあっさりと出てきて、その中にpaeを強制するというオプションも用意されていたので、設定してリブート。

起動に成功した。

早速、インストールする。

パーティションがWindows用に切られていたので、それはとりあえず残しておき、半分の30GBをMINTに割り当てた(これが最大容量)。

古いマシンなのでWiFiなど当然についていない。机の中にしまいこんでいたPCMCIAの無線LANカード(懐かしい響き)を差し込んでみたら、簡単に認識。