ユーニックス総合研究所

  • home
  • archives
  • ubuntu-install-juman

UbuntuにJUMAN++(1.02)をインストール【自然言語処理】

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現在)。
何かの参考になれば幸いです。

🦝 < 形態素解析でみんなハッピー

🐭 < 人生を分割払い