UbuntuにJUMAN++(1.02)をインストール【自然言語処理】
- 作成日: 2021-02-25
- 更新日: 2023-12-24
- カテゴリ: 自然言語処理
UbuntuにJUMANをインストール
人間の話す言語を「自然言語」と言います。
この自然言語をコンピューターに理解させる処理が「自然言語処理」とよばれるものです。
自然言語処理はいくつかの工程に分かれて行われます。
そのうち最も基本的な処理が字句解析(形態素解析)です。
京都大学の黒橋・褚・村脇研究室が公開している形態素解析システムにJUMAN++というものがあります。
今回は字句解析を目的に、このJUMAN++をUbuntu環境にインストールして使ってみたいと思います。
具体的には↓を見ていきます。
- 形態素解析とは?
- JUMAN++とは?
- JUMAN++のインストール
- JUMAN++の実行
形態素解析とは?
形態素解析とは自然言語処理の工程の1つです。
自然言語処理は大きく分けて↓のような工程に分かれています。
- 字句解析(形態素解析)
- 構文解析
- 意味解析
- 文脈解析
この内もっとも最初に行われる工程が字句解析(形態素解析)です。
字句解析で文章を前処理して、その後の構文解析や意味解析で処理したデータを活用するというのが一般的な流れです。
形態素解析はどんな処理かと言いますと、日本語の文章を単語ごとに分割する処理です。
たとえば「リンゴを食べる」という文章があります。
これを形態素解析にかけると形態素解析器は↓のように文章を分割します。
リンゴ / を / 食べる
「リンゴ」「を」「食べる」はそれぞれ独立した単語です。独立と言ってもじっさいは関連しあっているんですが。
🦝 < どっちだよ
形態素解析は解析の際に辞書を使った解析を行います。
文章に辞書のワードを当てはめて行って単語ごとに分割していきます。
その際、参照した辞書の情報を単語に保存します。
その情報とはたとえば単語の「読み方」や「品詞」などです。
これらの情報を単語に保存して出力することで形態素解析以降の解析処理をやりやすくします。
JUMAN++とは?
JUMAN++は京都大学の黒橋・褚・村脇研究室が公開している形態素解析システムです。
JUMAN++は自然言語処理を行う研究者が共通に使えるツールとして開発されたそうです。
C言語で書かれたJUMANが後継に当たります。
形態素解析ツールの1つであるChaSen(茶筌)のベースになったツールと言われています。
またMeCabという形態素解析エンジンはChaSenをベースに作られています。
このことから、
JUMAN -> ChaSen -> MeCab
という形態素解析ツールの歴史があるのがわかります。
最近はMeCabが人気ありますが、今回はその元になっているツールを使ってみようということになります。
JUMANのインストール
JUMAN++ - KUROHASHI-CHU-MURAWAKI LAB のページの下部にある「ダウンロード」以下から最新版のJUMANをインストールします。
ちなみにWindows環境のインストーラーも用意されています。
今回はUbuntuにインストールするのでtar.xz
でアーカイブされたバージョン1.02
のファイルをダウンロードします。
容量は600MB
でなかなか大きなプログラムになってます。
ファイル「jumanpp-1.02.tar.xz
」をディスクにダウンロードしたらこのアーカイブをtar
で展開します。
$ tar xf jumanpp-1.02.tar.xz
展開するとjuman-1.02
というディレクトリが作成されます。
ディレクトリの中に移動します。
$ cd juman-1.02
ディレクトリの中は↓のようになっています。
$ ls
aclocal.m4 config.log configure depcomp install-sh Makefile missing sample VERSION
compile config.status configure.ac dict-build jumanpp-manual.pdf Makefile.am README_ja.md script
config.guess config.sub COPYING INSTALL jumanpp-resource Makefile.in README.md src
ビルドをしてみます。
JUMAN++はC++言語で書かれたプロジェクトです。
UNIX界隈ではconfigure
ファイルがある場合はビルド前にこのconfigure
を実行することになっています。
このconfigure
はビルドのための設定(コンパイラ)などをしてくれるツールです。
ファイル自体はシェルスクリプト(sh
)で書かれています。
-h
オプションを指定して実行するとconfigure
の使い方が表示されます。
$ configure -h
たとえばロングオプションの--prefix
を指定するとインストール先のディレクトリを変更することができます。
今回は--prefix
は指定しないで実行してみます。
$ ./configure
configure
に成功したら今度はmake
を実行します。
make
コマンドはMakefile
の内容に従ってビルドを実行するコマンドです。
Makefile
自体はコンパイラ(gcc
など)を使ってファイルをコンパイルするルールなどが書かれています。
$ make
make
に成功したら今度はsudo make install
を実行します。
make install
はビルドしたバイナリなどを環境にインストールするコマンドです。
インストール自体はファイルのコピーなどが行われます。
sudo
を付けているのはファイルのコピー先がデフォルトで/usr/local/bin
以下になるので、そのコピーのための権限が必要なためです。
$ sudo make install
インストールに成功すると/usr/local/bin/jumanpp
が配置されます。
バイナリを実行し起動するか確認します。
$ /usr/local/bin/jumanpp
↑のようにjumanpp
を実行するとプログラムは標準入力からの入力待ちになります。
JUMANの実行
標準入力から適当な文章を入力してもいいですが、今回はパイプを使って実行してみます。
「リンゴを食べる」という文章をjumanpp
に食べさせて形態素解析させます。
↓のようになります。
$ echo "リンゴを食べる" | jumanpp
リンゴ りんご リンゴ 名詞 6 普通名詞 1 * 0 * 0 "代表表記:林檎/りんご カテゴリ:植物;人工物-食べ物 ドメイン:料理・食事"
を を を 助詞 9 格助詞 1 * 0 * 0 NIL
食べる たべる 食べる 動詞 2 * 0 母音動詞 1 基本形 2 "代表表記:食べる/たべる ドメイン:料理・食事"
EOS
↑の出力から、「リンゴを食べる」という文章は「リンゴ」「を」「食べる」の3つの単語に分割されるのがわかります。
「リンゴ」は名詞で「を」は助詞であることもわかります。
このように形態素解析を行うと、その文章が持つ単語の詳細を解析することができます。
これは解析の性能は解析に使う辞書の性能に左右されることが予想できます。
🦝 < 形態素解析器は頑張り屋
🐭 < けなげやね
おわりに
今回は形態素解析器のJUMAN++を使ってみました。
形態素解析器にはこの他にもChaSen, MeCab, それからPythonではJanomeなどがあります。
気になった方は使ってみてください。
あと余談なんですが、JUMAN++じゃないほうのJUMANの7.01もインストールして使ってみたんですが、こちらはうまくインストールできませんでした(2021/01/19現在)。
何かの参考になれば幸いです。
🦝 < 形態素解析でみんなハッピー
🐭 < 人生を分割払い