Furudateのブログ

プログラミングやネットワーク系の知識・技術がメインのブログ。技術メモ帳的な感じになるかと。岩手から発信していきます。

MacにTermExtractをインストールして使ってみる

こんにちは。
最近自然言語処理ツールを色々といじっています。
今回は専門用語自動抽出ツールであるTermExtractというものをインストールして使ってみたいと思います。
ツールのページはこちら
Web版もありますが今回は自分のシステムに組み込みたいこともあったのでPerlモジュールを使います。
基本的にこちらにインストールから使い方まで書いてありますが若干詰まったのでそこも含めてメモしておきます。

実行環境

以下私の環境になります。

  • OS: OS X Mavericks
  • Perl
    • v5.21.6
    • plenvでインストールしています。インストール方法はこちら
  • Perl DB_Fileモジュール
    • TermExtractは学習機能を有していますが、学習機能を使うためにはこのモジュールのインストールが必要です。今回は使わないのでなくても良いですが、一応インストールしておきました。インストール方法はこちら
  • Mecab
  • Mecab-perl

モジュールのインストール

環境が整ったところでモジュールをインストールします。

$ wget http://gensen.dl.itc.u-tokyo.ac.jp/soft/TermExtract-4_10.tar.gz
$ tar zxfv TermExtract-4_10.tar.gz
$ cd TermExtract-4_10

次にMakeでインストールするんですが、その前にモジュールのソースファイルの文字コードUTF-8に変更します。
これをしないと結果が出力されません(私はここで若干詰まりました)。

$ cd TermExtract
$ nkf -w --overwrite *
$ nkf -g *

ここではnkfコマンドを使っています。
コマンドがない場合はHomebrewでインストールしましょう。
-g で確認してUTF-8になっていればOKです。

あとは普通にインストールします。

$ perl Makefile.PL
$ make
$ sudo make install

plenvの場合、TermExtractは以下のディレクトリにインストールされます(以下はPerlのバージョンが5.21.6の場合です)。

~/.plenv/versions/5.21.6/lib/perl5/site_perl/5.21.6/TermExtract

使ってみる

それでは実際に使ってみましょう。
まずはMecab用のサンプルスクリプトがあるのでそれを取得しましょう。

$ wget http://gensen.dl.itc.u-tokyo.ac.jp/doc/ex_mecab.pl.txt
$ mv ex_mecab.pl.txt ex_mecab.pl
$ nkf -w --overwrite ex_mecab.pl

文字コードUTF-8に変更しました。
スクリプトを見てみると、mecab_out.txtに形態素解析をしたテキスト情報を入れ、そこから用語を抽出し標準出力に表示するようにしているのが分かります。
よってまずはmecab_out.txtを作りましょう。
また、色々なオプションがありますが、まずはデフォルトのままやります。
今回はMecabのWikipedia記事にある文章を分析してみたいと思います。
以下ではこの文章を test.txt にコピペしています。

$ mecab test.txt > mecab_out.txt
$ perl ex_mecab.pl
ChaSen                                                                   4.00
MeCab                                                                    3.00
日本語入力                                                          2.91
Google日本語入力開発者                                           2.35
開発者                                                                2.21
iPhone O S                                                               2.18
解析精度                                                             2.11
解析速度                                                             2.11
解析・推定                                                          2.08
開発開始                                                             2.00
Mac O S X v                                                              1.97
規模日本語n                                                         1.91
品詞情報                                                             1.86
形態素解析エンジン                                              1.85
Google                                                                   1.73
Googleソフトウェアエンジニア                                  1.70
IPA品詞体系                                                          1.70
v                                                                        1.41
gramデータ                                                            1.41
オープンソース                                                    1.41
奈良先端科学技術大学院大学出身                            1.41
工藤拓                                                                1.41
和布蕪                                                                1.41
基                                                                      1.00
好物                                                                   1.00
辞書                                                                   1.00
スクラッチ                                                          1.00
程度                                                                   1.00
Spotlight                                                                1.00
ChaSenTNG                                                                1.00
名称                                                                   1.00
名前                                                                   1.00
IPADIC                                                                   1.00
平均                                                                   1.00
独立                                                                   1.00
作成                                                                   1.00

若干変な結果もありますが、概ね用語が抽出されているのではないでしょうか。
右の数値は重要度になります。
もし何も出力されない場合は、恐らくインストールしたTermExtractモジュールの文字コードUTF-8になっていないので、インストールのところで述べたようにインストールされたファイルに対しnkfコマンドとかを使って文字コードを変更してください。

今回は以上です。
それでは。

参考にさせていただいたサイト

専門用語(キーワード)自動抽出用Perlモジュール "TermExtract"の解説

termextractのインストール - MacOS Xは僕の研究のパートナー