昨日は

日本の生命科学データベース政策 - ライフサイエンス統合データベースプロジェクトのコンテンツ追加をやってました。
総合科学技術会議−ライフサイエンスPT(第14回)というのがあり、これの内容を盛り込んだのですが、DBCLSの今後だけでなく、日本の国としてライフサイエンスをどうとらえているかの過去/現在/未来みたいなのがまとめられていて、このあたりに興味のある人に教えたくなるような回だったかと思います。その中での自分の立ち位置みたいなのも、ちと考えるところです。

辞書作り

id:syou6162が、出現頻度と連接頻度に基づく専門用語抽出 - yasuhisa's blogなんて刺激的なことをやっていて、TermExtractなんてのを紹介してくれたので、興味津々です。自分の方は、英語の文章も相手にしているので、英語でも使えそうなのがよいです。テキストマイニングは独学だからなー。しかも、ここは日本だから、というか、日本語の処理について情報が充実しているので、英語の処理みたいなのは、カバーしきれていないし。(かといって、どっぷり浸かる気はさらさらないのだが)。
今月からさらに変態っぷり、いやいや、ハチロクパワーが増強されるので、ナナロクとしては、旧世代と呼ばれないように独自のキレ味を見せたいものです。

英語で形態素解析をするためにソフトを入れてみる(落とすまで)

TermExtractをとりあえずはいじってみるかー、てなわけで、その中で英語の形態素解析をやるのに紹介されているBrill's Taggerから、ということでリンク先に行くと、どれをクリックしていいんだか。どうやら、You can still get my part of speech tagger HERE. っぽいと思ってたたくと、リンク切れ。しかたないから、ググって、Wikipediaの当該ページBrill tagger - WikipediaのCodeにあるリンクをつっついて、入手。で、Z形式ってどうやってほどくんだっけ、とかとまどいながら、uncompressで解凍。単にmakeするだけでよいよ、とあるからmakeするも、コケる。見ると、99年のコードっぽい。さっさとあきらめる。
もうひとつ紹介されている"Monty Tagger"へ。リンクたどるが、いったいどこ見ていいんだかわかんねぇよぉ。(T-T) で、ググって、monty tagger :: research :: hugo liu :: a new æstheticに行くと、montylingua :: a free, commonsense-enriched natural language understander見ろとか言うので、行く。真っ赤なページで目をチカチカさせながら、メアドなど登録してダウンロード。こいつはzip形式。

英語で形態素解析をするためにソフトを入れてみる(使ってみるまで)

普通に解凍。unzip。
MontyLinguaってpythonJavaで動かすみたい。makeも何も必要なし。
コマンドラインで使うなら、pythonが入っている上で、pyothonフォルダで、run.batを動かせばよいようだ。中身は、"python MontyLingua.py"なだけだが。うねうね読まれて、文章を入れると解析してくれる。
ただ、MacとかUnixだと、辞書が壊れている? ことがあるので、作り直した方がよい、みたいなことがhttp://web.media.mit.edu/~hugo/montylingua/index.htmlの下の方にあった。

nakazato@mudskipper:~/Downloads/it/montylingua-2.1/python$ for nm in FASTLEXICON_?.MDF ; do mv $nm ${nm}.bak; done

↑こいつは最初だけね。で、run.bat

> A mutation has been observed in hepatocyte nuclear factor-4-alpha (HNF4A; 600281.0004) in a French family with NIDDM of late onset.


(NX A/DT mutation/NN NX) (VX has/VBZ been/VBN observed/VBN VX) in/IN (NX hepatocyte/NN NX) (NX nuclear/JJ factor-4-alpha/JJ NX) (/( (NX HNF4A/NNP NX) ;/: (NX 600281/CD NX) ./. (NX 0004/CD NX) )/) in/IN (NX a/DT French/JJ family/NN NX) with/IN (NX NIDDM/NNP NX) of/IN (NX late/JJ onset/NN NX) ./.


SENTENCE #1 DIGEST:

adj_phrases: ['nuclear factor-4-alpha']
adj_phrases_tagged: ['nuclear/JJ factor-4-alpha/JJ']
modifiers: ['nuclear', 'factor-4-alpha', 'French', 'late']
modifiers_tagged: ['nuclear/JJ', 'factor-4-alpha/JJ', 'French/JJ', 'late/JJ']
noun_phrases: ['mutation', 'hepatocyte', 'HNF4A', '600281', '0004', 'French family', 'NIDDM', 'late onset']
noun_phrases_tagged: ['mutation/NN', 'hepatocyte/NN', 'HNF4A/NNP', '600281/CD', '0004/CD', 'French/JJ family/NN', 'NIDDM/NNP', 'late/JJ onset/NN']
parameterized_predicates: ['observe', ['past_tense', 'passive_voice', ['mutation', ['determiner=A']], ['in hepatocyte', ['prep=in']]]]
prep_phrases: ['in hepatocyte', 'in a French family', 'with NIDDM', 'of late onset']
prep_phrases_tagged: ['in/IN hepatocyte/NN', 'in/IN a/DT French/JJ family/NN', 'with/IN NIDDM/NNP', 'of/IN late/JJ onset/NN']
verb_arg_structures: 'has/VBZ been/VBN observed/VBN', 'A/DT mutation/NN', ['in/IN hepatocyte/NN']
verb_arg_structures_concise: ['("observe" "mutation" "in hepatocyte")']
verb_phrases: ['has been observed']
verb_phrases_tagged: ['has/VBZ been/VBN observed/VBN']
None
'observe', 'mutation', 'in hepatocyte'

GENERATED SUMMARY:
Mutation observed in hepatocyte.
-- monty took 0.03 seconds. --

?とか入っているのは、[ ]とかです、きっと。
GENERATED SUMMARY: Mutation observed in hepatocyte. って、そんなえらいざっくりな。この場合は、nuclear が形容詞とされているのか。nuclear factor-4-alpha でひとつにしてほしいが、このあたりは自分で辞書を追加してやればいいのかな。辞書の追加ってどうやんのかな。
しかし、これ、どうやって終わらすんだ? → Ctrl-C でよいようだ。

専門用語抽出をやってみる(TermExtractを入れてみる)

専門用語(キーワード)自動抽出用Perlモジュール "TermExtract"の解説に書いてあるまんま。
落として、ほどいて、Makefileつくって(perl Makefile.pl) → make → sudo make install
確認は、perl -M TermExtract -le '...' とかでなくて、perl -M TermExtract::BrillsTagger -le '...' みたいに、実際に使うモジュールでないとできない。まぁ、インストールログ見て、そこにファイルがあれば基本、大丈夫なんだけど。
ちなみに、http://bugja.sourceforge.jp/index.php?ScriptCheckInstPerlMod で、Perlのモジュールインストールチェックスクリプトを公開していたりします。