mecaby関数 の履歴(No.1)
mecabyとは†
Rから形態素解析器のMeCabを起動して形態素解析を行う関数です(より正確には,MeCabのpythonパッケージであるmecab-python3を呼び出します)。
mecabyのファイル†
下のアイコンをクリックしてファイルを保存してください。
保存用のポップアップが表示されない場合は,右クリックして“名前を付けてリンク先を保存”を選んでください。
この関数を適用すると,以下のように分析結果が出力されます。
> mecaby("メロスは激怒した。") Surface_Value Part_of_Speech Part_of_Speech1 Part_of_Speech2 1 メロス 名詞 一般 * 2 は 助詞 係助詞 * 3 激怒 名詞 サ変接続 * 4 し 動詞 自立 * 5 た 助動詞 * * 6 。 記号 句点 * Part_of_Speech3 Conjugation Inflection Root_Form Reading Pronunciation 1 * * * * <NA> <NA> 2 * * * は ハ ワ 3 * * * 激怒 ゲキド ゲキド 4 * サ変・スル 連用形 する シ シ 5 * 特殊・タ 基本形 た タ タ 6 * * * 。 。 。
環境の構築†
最初に使用する前に1回だけ行ってください。
Pythonやreticulateにくわしい方は必ずしも以下の手順通りでなくてもかまいません(要は,使用するPython環境にパッケージが導入されていれば問題ありません)。
1. Rstudioを起動してreticulateパッケージをインストールしてください。
※まず,RとRstudioを現時点での最新版にしておくことをお勧めします(パッケージのバージョンとの不整合が起こりにくくなり,トラブルの可能性が低くなります)。
2. reticulateパッケージを起動してpy_config関数を実行してください(Rstudioのコンソールに以下を入力してください)。
library(reticulate) py_config()
3. 「Would you like to install Miniconda?」と尋ねられるので,YESと答えてください。
Y
たくさんメッセージが出てきます(とても長いです)。
すべてが終わって再びキー入力できる状態になったらRstudioを閉じてください。
4. Windowsのスタートメニューから「Anaconda」の中の「Anaconda Prompt (R-MINI~1)」を選んでクリックしてください。
5. コンソール画面が開くので以下を実行してください(Anaconda Promptのコンソールに1行ずつ貼り付け)。
pip install -U mecab-python3 pip install unidic-lite
すべてインストールが終了して再びキー入力できる状態になったら終了です。
Anaconda Promptを閉じてください。
6. Rstudioを起動してください。
7. 「Tools」→「Global Options」→「Python」と展開し「Select」をクリック。
8. 「Conda Environments」のタブをクリック。
9. ginzaをインストールした環境(ここまでの手順通りなら「~/r-miniconda/python.exe」で終わっている候補)を選んでから「Select」ボタンをクリック。
「OK」をクリックしてオプションを閉じてください。
Rstudioの再起動を求められるので「OK」をクリックしてください。
以上で終了です。
お疲れさまでした。
関数の使い方†
関数のセット†
ダウンロードしたファイルをRに読み込みます。
1. Rstudioを起動します。
2. Rのメニューバーから「Code」をクリックします。
3. 現れたメニューの中から「Source File...」をクリックします。
4. ファイルの選択画面になるので,関数のファイルを選んで「Open」をクリックします。
→Rのコンソールに「source("C:~」といったコードが表示されます。特にエラーメッセージなどが出なければ,読み込み成功です。
関数の実行†
以下のような形でコードを入力してください。
mecaby(文字列, dic = システム辞書, udic = ユーザー辞書, header = ヘッダ)
- 文字列・・・分析したい文字列,または,文字列を格納した変数名。文字列を直接入力する場合は,Rの通常の書き方通り,""で囲んでください。
- システム辞書・・・システム辞書として使用する辞書のパスを指定してください。パス区切りはWindowsの場合は「\」か「//」にしてください(「/」は通りません)。デフォルトはunidicです(インストール済みの場合)。
- ユーザー辞書・・・ユーザー辞書として使用する辞書のパスを指定してください。パス区切りはWindowsの場合は「\」か「//」にしてください(「/」は通りません)。デフォルトでは指定されません。
- ヘッダ・・・ヘッダとして指定したい文字列を文字列ベクトルの形で入力してください。
※補足説明
mecabyはRから辞書を切り替えながら使用することを想定しています。
MeCabは使用する辞書によって出力の列数が異なります。
そのため,ヘッダ情報を適切に推測できない場合がありえます。
そのようなときは,ご自身でヘッダとして適切なラベルを付けてください。
また,mecab-python3は辞書が見つからないときやアップデートのタイミングで,ユーザーの意図によらずデフォルトの辞書をUniDicに設定することがあります。
誤りなく意図した辞書を使って分析をするためには,mecaby.Rの「dic = NA」をデフォルトで使用したい辞書のパスに書き換えておくことをお勧めします(dic = "C://hoge//~")。
なお,pythonパッケージ版でなく,オリジナルの辞書ファイルを指定したほうがより多くの情報を出力できる傾向があります(UniDic,IPA辞書)。