はじめに
ここでは、Juliaで形態素解析を行う方法を紹介します。
次の二つの方法があります。
- 「MeCab.jl」:形態素解析システム「MeCab」のラッパー
- 「Awabi.jl」:Juliaで書かれた形態素解析器(ただし、辞書は「MeCab」のものを使う)
以下では、形態素解析のすべてをJuliaで記述されたPackage「Awabi.jl」を使います。
また、「Awabi.jl」のドキュメントにはLinux/MacのUsageしか書かれていないので、Windowsでの使い方についても紹介します。
「Awabi.jl」
今回使用するパッケージは「Awabi.jl」です。
MeCab辞書を使って形態素解析を行う形態素解析器で、解析処理自体もJuliaで書かれています。解析結果がMeCabと同じになることを目指しているそうです。
なお、awabiには様々な言語で書かれたものが存在します。詳細は次を参照ください。
使い方(Linux/Mac)
基本的な使い方は、ドキュメントの通りですが転記しておきます。
まず、MeCabの本体および辞書をインストールします。インストール方法はそれぞれ次の通りです。
Debian/Ubuntu
$ sudo apt install mecab mecab-ipadic-utf8
Mac OS X (homebrew)
$ brew install mecab
$ brew install mecab-ipadic
これで、MeCabのインストールができたので、あとは「Awabi.jl」を呼び出せば、形態素解析の結果を得ることができます。
julia> using Awabi
julia> tokenize(Tokenizer(), "すもももももももものうち")
7-element Vector{Tuple{String, String}}:
("すもも", "名詞,一般,*,*,*,*,すもも,スモモ,スモモ")
("も", "助詞,係助詞,*,*,*,*,も,モ,モ")
("もも", "名詞,一般,*,*,*,*,もも,モモ,モモ")
("も", "助詞,係助詞,*,*,*,*,も,モ,モ")
("もも", "名詞,一般,*,*,*,*,もも,モモ,モモ")
("の", "助詞,連体化,*,*,*,*,の,ノ,ノ")
("うち", "名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ")
使い方(Windows)
MeCabをインストールするには、最新の「mecab-0.996.exe」をダウンロードして実行します。
Windows版では、MeCab本体と辞書(ipadic)が同梱されているのでこれのみをインストールすれば大丈夫です。インストール途中でエンコードを聞かれたら、「UTF-8」を指定してください。
実行の手順も、Linuxの場合とは異なります。Linuxでは「mecabrc」という設定ファイルから辞書の格納先を取得していましたが、Windowsではこれがうまく動作しません。(内部で指定している「mecabrc」格納場所が、Windowsに対応していないだけでなく、「mecabrc」の内部記述にも問題があるようです。)
そこで、次のようにしてAwabiの初期化で辞書の格納フォルダを認識させてやります。手元のPCでは「C:\Program Files (x86)\MeCab\dic\ipadic」に辞書が格納されているので、このフォルダを指定します。
具体的な操作は次のようになります。
julia> using Awabi
julia> dic = Dict("dicdir" => "C:\\Program Files (x86)\\MeCab\\dic\\ipadic")
Dict{String, String} with 1 entry:
"dicdir" => "C:\\Program Files (x86)\\MeCab\\dic\\ipadic"
julia> tokenize(Tokenizer(dic), "すもももももももものうち")
7-element Vector{Tuple{String, String}}:
("すもも", "名詞,一般,*,*,*,*,すもも,スモモ,スモモ")
("も", "助詞,係助詞,*,*,*,*,も,モ,モ")
("もも", "名詞,一般,*,*,*,*,もも,モモ,モモ")
("も", "助詞,係助詞,*,*,*,*,も,モ,モ")
("もも", "名詞,一般,*,*,*,*,もも,モモ,モモ")
("の", "助詞,連体化,*,*,*,*,の,ノ,ノ")
("うち", "名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ")
追記
なお、SageMaker Studio Labでは、ここまでの方法では形態素解析が動きません。
別途、記事を書きましたので、そちらを参照ください。
コメント