上位下位関係抽出ツールを使う

こんにちは、松本です。今日は海の日なので研究室の活動はお休みですが、投稿します。前回のブログ執筆後に上位下位関係抽出ツールと戦うことになり、やっとのことで使うことができたのでそれを書いていきます。

● 上位下位関係抽出ツール Version1.0 : Hyponymy extraction tool を使う
このツールはWikipediaのデータから語の上位下位関係を抽出してくれるものです。抽出方法は、カテゴリタグから抽出する方法、階層構造から抽出する方法、定義文から抽出する方法の3通りあり、それらを個別に実行することが可能です。たとえば、Wikipediaの「工学院大学」にはカテゴリとして「日本の私立大学」や「東京都の大学」などがあります。このツールでカテゴリタグから上位下位を抽出する場合、この関係性から上位「日本の私立大学」、下位「工学院大学」と抽出できます。詳細は上位下位関係抽出ツール Version1.0 : Hyponymy extraction tool を見てください。

研究関連で上位下位関係のデータがあれば便利だなと思い、使ってみようと決心するも、動作環境が不慣れなLinuxであること、ツールの最終リリースが2010年であること、ツールに関する情報が少ないことから動かすまでに5日はかかりました。その戦いは以下を見ればわかるでしょう。

このツールでは、MeCab、ipa辞書、Ruby、MeCab-Ruby、Pecco の5つのツール、データが必要になります。まずは、上位下位関係抽出ツールのサイトにある通りに、同じバージョンのツールを揃えました。
 ・mecab-0.97
 ・mecab-ipadic-2.7.0-20070801
 ・mecab-ruby-0.98pre1
 ・ruby-1.8.7
 ・pecco-20110110

Linuxですが、最近リリースされたばかりのUbuntu 14.04を選びました。以下をやっていきます。手順3 と手順6 でldconfigを行わないとエラーを出すので注意が必要。ここで僕は少し躓きました。
 1. g++ のインストール(makeコマンドで必要となる)
 2. MeCab のインストール
 3. 共有ライブラリの依存関係情報を更新する(ldconfig)
 4. IPA辞書のインストール(utf-8)
 5. Ruby のインストール
 6. 共有ライブラリの依存関係情報を更新する(ldconfig)
 7. MeCab-Ruby のインストール

pecco をインストールしたいところですが、デフォルトで darts-clone を使う設定となっているようでインストールがうまくいきません。そのため、pecco 設定ファイル(pecco_conf.h)を編集することで対処します。
pecco_conf.h をお得意の vi で開き、次のように変更。

  #define USE_DARTS_CLONE →  //#define USE_DARTS_CLONE
  //#define USE_CEDAR  →   #define USE_CEDAR

また、上位下位関係抽出ツールのサイトに書いてある通りに、makefile.pecco を以下のように変更します。

  CC = ccache g++CC = g++
  CFLAGS = -O2 -m64 -march=core2 -DNDEBUG  → CFLAGS = -O2

これで $ sudo make -f makefile.pecco とすれば完了です。

最後に ex-hyponymy-1.0 を実行したいところですが、ここでも一工夫必要です。Ubuntu の場合はシェルがデフォルトでdashなので、シェルを変更しないとうまくいかないようです。確認していませんがUbuntu以外の場合は、「上位下位関係抽出ツールを使ってみる」によるとscript/ex_hyponymy.sh の1行目のシバンを “#! /bin/sh” から “#! /bin/bash” に変更することで対処できるようです。(Ubuntuの場合はシバンを変更してもうまくいきませんでした。)Ubuntuの場合は以下を実行して dash から bash に切り替えます。
  $ sudo dpkg-reconfigure dash

これで環境を整えることができました。次のコマンドでツールを使うことが出来るようになります。なお、環境変数PATH に pecco のディレクトリを追加する必要があります。
  $ sudo PATH=../pecco/:$PATH script/ex_hyponymy.sh Wikipedia のダンプファイル

 


以下の環境で実行してみました。研究室にはLinux機がないので、自宅のメインPCです。
 CPU  Intel® Core™ i7-3770K Processor (8M Cache, up to 3.90 GHz)
 MEM 16GB
 HDD  1TB 7200rpm
 OS   Ubuntu 14.04
大規模な学習データにより作成した hierarchy 用モデルファイルである data3 を利用して、-H, -D, -C ,-E いずれも指定せず全て実行した結果、30時間は稼働しっぱなしでした。
 

 

広告

上位下位関係抽出ツールを使う」への1件のフィードバック

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中