SudachiのPython版です。SudachiPyは、形態素解析の無料ツールとして活用できます。GiNZA(spaCy)を使ってUD(単語単位の依存構造)解析したいときに利用できます*1。今回、R/RStudio上でのSudachiPyの実行例を概説します。Macターミナルでの実行もできます。個人的には、RユーザーにとってPythonパッケージがR環境上で実行できると、いろいろとメリットが大きいと考えています*2。例の如く、HomeBrewでPythonの環境構築を行います。詳しくは、過去の記事を参照のこと。3.8)SudachiPyのデフォルト・インストールさて、ターミナルを起動して、SudachiPyをインストールします。fullの設定Sudachiでは、3種類の辞書が提供されています。UniDicの語彙のみが含まれる。基本的な語彙を含む(デフォルト)。その他の固有名詞が含まれる。インストールして、その辞書への切り替えをやってみます。fullまた、SudachiPyには、コマンドライン版とPython版があり、pipでどちらもインストールされます。上記コマンドは、RStudioのターミナルタブからも実行できます。面倒で、Rコンソール上でインストールしたい場合には、以下で通るはずです。次に、コマンドライン版sudachipyの実行例を下記に示します。Rのsystem()を使うと、ターミナルコマンドを実行できます。"内の文字列を、ターミナル上で実行することも可能です。modeについては、補足に記載しています。続いて、Python版の実行方法についても概説します。R環境でのPythonパッケージ版sudachipyの実行HomeBrewでインストールしたPythonは、/usr/local/bin/pythonに入っています。お使いの環境で、use_pythonのパスは変更しておきます。それでは、Pythonパッケージ版sudachipyの実行例を下記に示します。R環境上でのPython実行は、reticulateパッケージを使います。"sudachipy")#sudachipyのヘルプ表示reticulate::py_help(sudachipy)ここから、SudachiPyで形態素解析を実行してみます。Splitモードの違いで、形態素解析の結果がどのように変わるかをみていきます。付属)もあるようです。"付属"自作関数SudachiTokenizerRについてPythonパッケージ版SudachiをR環境で動かすのは若干面倒なんですが、実行挙動を逆手にとって関数を作成しました*3。これまでのコマンドが動作した環境が前提で、コマンドライン版とほぼ同出力となる関数を作成しました。まとめR環境で、Sudachi形態素解析が使えれば、自然言語処理やテキスト処理などの処理の幅も広がるはずです。SudachiTokenizerRで、Pythonパッケージ版の形態素解析もR環境で少しは使いものになりそうです*4。辞書の設定ファイル「sudachi.json」についてpython3.10版SudachiPyのsudachi.jsonを開きます。/opt/homebrew/lib/python3.10/site-packages/sudachipy/resources/sudachi.jsonfull辞書のsystem.dicは以下のフォルダパスにあります。/opt/homebrew/lib/python3.10/site-packages/sudachidict_full/resources以下の通り、sudachi.jsonを修正します。ベクトル位置が始まるのが一般的です。'と"の使い分けRでは、"..."(ダブルクォーテーション囲い)は、文字列指定の際に使用します。"..."内にもう一度、"..."を入れたい場合は、個人的な使い方としては、'..."..."...'というように、外側を'...'(シングルクォーテーション囲い)にして、内側を"..."と記載します*5。一部、'...'を使っているところもあるけども、R上ではだいたい同じ挙動となります。units.日本語サイトより次に、トークナイザーのモードを定義する必要があります。モードは、トークナイザーがテキストを分割する方法を決定するために使用されます。SudachiTokenizerRgist.github.com参考資料pypi.orggithub.comichi.pro*1:https://qiita.com/hi-asano/items/aaf406db875f1c81530e*2:Python言語の習得やPython環境、データ構造への慣れが特に不要になる。Rプログラミング中級者以上なら、もう1つインタプリンタ言語(低速言語)を習得するのはやはり非効率だと思うわけです。*3:若干騙し騙し的な感じで、Pythonの実行エラーがR側でコマンド実行に使われない仕組みを活用しています。R言語、データ分析、コマンドライン、プログラミングについての技術資料・自己アップデート・データ解析や解釈の悩み事、あと色々とまとめています。最近は、、Rでのデータ解析を中心にまとめています。南国のビーチパラソルの下で、Rを打ってる日常を求めて・・・あと、もう少しKyobashiで頑張りましょう。ブログの内容は、個人の理解・意見・見解です。ブログ記事内容は予告なく公開後に改変されることがあります。誤りを見つけた場合は、コメント欄などでお知らせいただけると助かります。etc当サイトはリンクフリーです。リンクを貼る際の許可は必要ありません。引用時には、記事のリンクなどを記載いただけると励みになります。(1)はてなブログをはじめよう!skumeさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。