形態素分析エンジン「茶筌(ChaSen)」の導入
日本語の文章を形態素分析すると何が起きるだろう?というふとした好奇心より、形態素分析エンジン「茶筌(ChaSen)」を導入する。
元ネタは、Yet Another 仕事のツール(45) 日本語形態素解析ツール「ChaSen」。
ソフトウェアのインストール
まずは、Darts というソフトウェアが前提として必要らしい。「Darts は, Double-Array [Aoe 1989]を構築するための シンプルな C++ Template Library です.」とのこと。 最新の darts-0.31.tar.gz をインストールする。ちなみに私の環境は Debian Linux sarge である。
% tar zxvf darts-0.31.tar.gz
% cd darts-0.31
% ./configure
% make
% make check
% sudo make install
というお決まりの手順。
茶筌本家から最新版の chasen-2.4.1 を取得する。そしてこれも同様に
% tar zxvf chasen-2.4.1.tar.gz
% cd chasen-2.4.1
% ./configure
% make
% make check
% sudo make install
とインストールする。
辞書のインストール
辞書は ipadic という別の辞書をダウンロードする。
% wget http://chasen.naist.jp/stable/ipadic/ipadic-2.7.0.tar.gz % tar zxvf ipadic-2.7.0.tar.gz % cd ipadic-2.7.0
辞書と設定ファイルをまず UTF-8 化する。以下の内容を toutf8.sh として保存。
#!/bin/sh for file in *.dic *.cha chasenrc do if [ -f $file ]; then nkf --utf8 $file > tmpfile mv tmpfile $file fi done exit
UTF-8 化実行。
% chmod +x toutf8.sh % ./toutf8.sh
あとは、辞書をコンパイルしてインストール。UTF-8 であることを明示するため、-i w オプションをつけるのがミソ。
% `chasen-config --mkchadic`/makemat -i w % `chasen-config --mkchadic`/makeda -i w chadic *.dic % mkdir /usr/local/etc % ./configure % sudo make install
使い方
これで準備 OK だ。実際に分析してみる。「私は猫です。」という文章を test1.txt という名前で保存する。
$ chasen -i w test1.txt 私 ワタシ 私 名詞-代名詞-一般 は ハ は 助詞-係助詞 猫 ネコ 猫 名詞-一般 です デス です 助動詞 特殊・デス 基本形 。 。 。 記号-句点 EOS
とちゃんと表示される。これは面白い。
考察
ありがちかもしれないが、形態素ごとに出現頻度を表示する Ruby スクリプトを書いてみた。
@counts = {} STDIN.each do |line| items = line.chomp.split("\t"); morpheme = items[2] next unless morpheme @counts[morpheme] = 0 unless @counts[morpheme] @counts[morpheme] += 1 end @counts.map {|a,b| [b, a]}.sort.reverse.each { |i| puts i.join(" = ") }
たとえば次の文章を考えてみる。
まったくその通りだ。それゆえに著作権への反駁は、きわめてラディカル(根源的=革命的)な形を取らざるをえない。資本主義と私的所有は表裏一体であるが、その私的所有の概念になじまないのが著作物=情報なのである。だから、著作権について、資本主義を所与のものとして、その内側で考察するかぎり、決して答えはでないのである。したがって、資本主義の成立条件について思いをはせたマルクスや同様の問題意識を持つ哲学者の考察にさかのぼって考える必要があるだろう。
小難しい文章であるが、これを ChaSen はどう料理するのか?結果は以下の通り。
9 = の 7 = だ 7 = 、 5 = を 5 = 。 4 = ある 3 = 資本 3 = 著作 3 = 主義 3 = は 3 = に 3 = ない 3 = その 3 = が 2 = = 2 = 考察 2 = 私的 2 = 的 2 = 権 2 = 所有 2 = について (1回しか出現しないものは省略)
文法上の形態素分析としては完璧かもしれない。実用上はやや問題も残る。たとえば「資本」「主義」が分かれてしまっているが、本当は「資本主義」という一つの単語として扱って欲しいところだ。なかなか難しいね。