Monthly Archives: 11月 2018
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.課題
もしかしたら文字コードを直接指定するオプションがあるのかもしれない。
Rによるスクレイピング入門
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カード(懐かしい響き)を差し込んでみたら、簡単に認識。