ginzaru関数 の履歴(No.6)
ginzaruとは†
Rから日本語自然言語処理ライブラリのGiNZAを起動して形態素解析を行う関数です。
ginzaruのファイル†
下のアイコンをクリックしてファイルを保存してください。
保存用のポップアップが表示されない場合は,右クリックして“名前を付けてリンク先を保存”を選んでください。
&ref(): File not found: "ginzaru.R" at page "ginzaru関数";
この関数を適用すると,以下のように分析結果が出力されます。
> ginzaru("メロスは激怒した。") no Text Lemma POS Tag Inflection 1 0 メロス メロス PROPN 名詞-普通名詞-一般 <NA> 2 1 は は ADP 助詞-係助詞 <NA> 3 2 激怒 激怒 VERB 名詞-普通名詞-サ変可能 <NA> 4 3 し する AUX 動詞-非自立可能 サ行変格;連用形-一般 5 4 た た AUX 助動詞 助動詞-タ;終止形-一般 6 5 。 。 PUNCT 補助記号-句点 <NA> Reading Norm Shape Alpha Stop Dep Head HeadID children 1 メロス メロス xxx TRUE FALSE nsubj 激怒 2 [は] 2 ハ は x TRUE TRUE case メロス 0 [] 3 ゲキド 激怒 xx TRUE FALSE ROOT 激怒 2 [メロス, し, た, 。] 4 シ 為る x TRUE TRUE aux 激怒 2 [] 5 タ た x TRUE TRUE aux 激怒 2 [] 6 。 。 。 FALSE FALSE punct 激怒 2 []
環境の構築†
最初に使用する前に1回だけ行ってください。
すでにreticulateを利用中で,既存のPython環境にパッケージを追加したい場合は,4以降を実行してください。
Pythonやreticulateにくわしい方は必ずしも以下の手順通りでなくてもかまいません(要は,使用するPython環境にパッケージが導入されていれば問題ありません)。
1. Rstudioを起動してreticulateパッケージをインストールしてください。
※まず,RとRstudioを現時点での最新版にしておくことをお勧めします(パッケージのバージョンとの不整合が起こりにくくなり,トラブルの可能性が低くなります)。
2. reticulateパッケージを起動してpy_config関数を実行してください(Rstudioのコンソールに以下を入力してください)。
library(reticulate) install_miniconda()
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 ginza ja_ginza pip install sudachidict_full sudachidict_small
※2行目は必須ではありませんが,辞書のオプションを使用したい場合はインストールしてください。
すべてインストールが終了して再びキー入力できる状態になったら終了です。
Anaconda Promptを閉じてください。
6. Rstudioを起動してください。
7. 「Tools」→「Global Options」→「Python」と展開し「Select」をクリック。
8. 「Conda Environments」のタブをクリック。
9. パッケージをインストールした環境(ここまでの手順通りなら「~/r-miniconda/python.exe」で終わっている候補)を選んでから「Select」ボタンをクリック。
「OK」をクリックしてオプションを閉じてください。
Rstudioの再起動を求められるので「OK」をクリックしてください。
以上で終了です。
お疲れさまでした。
関数の使い方†
関数のセット†
ダウンロードしたファイルをRに読み込みます。
1. Rstudioを起動します。
2. Rのメニューバーから「Code」をクリックします。
3. 現れたメニューの中から「Source File...」をクリックします。
4. ファイルの選択画面になるので,関数のファイルを選んで「Open」をクリックします。
→Rのコンソールに「source("C:~」といったコードが表示されます。特にエラーメッセージなどが出なければ,読み込み成功です。
関数の実行†
以下のような形でコードを入力してください。
ginzaru(文字列, mode = 分析モード, dic = 辞書, model = モデル)
- 文字列・・・分析したい文字列,または,文字列を格納した変数名。文字列を直接入力する場合は,Rの通常の書き方通り,""で囲んでください。
- 分析モード・・・A,B,Cの3種類が指定できます。Aは語をなるべく詳細に区切る場合,Bは中間,Cは複合名詞などをなるべくまとめる場合です。入力の際は""で囲んでください。デフォルトはCです。
- 辞書・・・small,core,fullの3種類が指定できます。この並びの順に収録語数が多くなります。それぞれに対応したパッケージをあらかじめインストールする必要があります。入力の際は""で囲んでください。デフォルトはcoreです。
- モデル・・・ja_ginzaかja_ginza_electraの2種類が指定できます。後者を使うには追加でja_ginza_electraをインストールする必要があります。ja_ginza_electraがうまく動作しない場合は,torchのバージョンをダウングレードするとうまくいくかもしれません。入力の際は""で囲んでください。デフォルトはja_ginzaです。
GiNZAは形態素解析・構文解析を行うだけでなく,他にも様々な分析を行うことができる多機能のライブラリです。
ginzaru.Rには,ginzaru以外にもGiNZAの一部の機能を実行する関数が含まれています。
これらの関数ではユーザーから見ての実行の容易さを優先させたため,処理の効率性はPythonで利用するよりも若干低下しています。
また,これらの関数が対応していない機能に興味をお持ちの方は,GiNZAを直接使ってみてください。
ginzame関数:MeCabと似た形式で形態素解析の結果を出力する†
ginzame(文字列, mode = 分析モード, dic = 辞書, model = モデル)
- オプションの内容はginzaruと同じです。
ginsep関数:入力された文字列を文に分割する†
ginsep(文字列, mode = 分析モード, dic = 辞書, model = モデル)
- オプションの内容はginzaruと同じです。
ginbun関数:入力された文字列を文節に分割する†
ginbun(文字列, mode = 分析モード, dic = 辞書, model = モデル, position = 出力形式)
- 出力形式・・・トークン形式の出力を行うか否かを指定します。デフォルトはFALSEです。
- 他のオプションの内容はginzaruと同じです。
ginnoun関数:名詞だけを取り出す†
ginnoun(文字列, mode = 分析モード, dic = 辞書, model = モデル, position = 出力形式)
- オプションの内容はginzaruと同じです。
ginent関数:固有表現抽出を行う†
ginent(文字列, mode = 分析モード, dic = 辞書, model = モデル, add = ルール)
- ルール・・・デフォルトにない固有表現を抽出するためのルールを指定できます。追加で判定したい固有表現を挙げたデータフレームの変数名を参照してください。このデータフレームは,一列目にlabel,二列目にpatternを並べることで作成してください。
- 他のオプションの内容はginzaruと同じです。
ginsim関数:コサイン類似度を計算する†
ginsim(文字列1, 文字列2, mode = 分析モード, dic = 辞書, model = モデル, modelpath = モデルのパス)
- 文字列1,文字列2・・・分析対象の文字列です。2つの文字列の類似度を計算する関数なので2つの入力が必要です。
- モデルのパス・・・類似度の計算にデフォルト以外の単語ベクトルモデルを使用することができます。具体的には,以下のcreateModel関数で生成したファイルのパスを指定してください。
- 他のオプションの内容はginzaruと同じです。
createModel関数:単語ベクトルを入れ替えてカスタムモデルを生成する関数†
createModel(入力パス, 出力パス, mode = 分析モード, dic = 辞書, model = モデル)
- 入力パス・・・入力となる単語ベクトルモデルのパスを指定してください。
- 出力パス・・・出力先となるフォルダのパスを指定してください。
- 他のオプションの内容はginzaruと同じです。
なお,この関数を使用するには,reticulateで使用するPython環境にgensimライブラリをインストールしておく必要があります。また,この関数の実行には非常に長い時間がかかります。