英語の固有表現抽出はスタンフォード大の自然言語処理研究グループが公開しているソフトでできる。
CRF(conditional random field)を使った手法で、よい精度を出しているよう。
http://nlp.stanford.edu/software/CRF-NER.shtmlから
stanford-ner-2006-09-18.tar.gz
をダウンロードする。
javaで動くソフトなのでjavaをインストールする必要がある。
javaのダウンロード
http://java.sun.com/javase/downloads/index.jspから
Java Runtime Environment (JRE)
のDownloadをクリックしてダウンロードする。
javaのインストール
# bash jre-1_5_0_09-linux-i586-rpm.bin
で自動的にjavaが/usr/java/jre1.5.0_09/にインストールされる。
パスを通す
export PATH=$PATH:/usr/java/jre1.5.0_09/bin
GUIバージョンを試す
$ bash ner-gui.sh
で Classifier->Load Default CRF とし
下の Run NER を押すと、テキストボックス中の英文の
PERSON(人物)、ORGANIZATION(組織)、LOCATION(場所)が
色分けされる。
コマンドラインから以下のようにできる。
$ ./ner.sh sample.txt
My/O name/O is/O Jenny/PERSON Rose/PERSON ./O
I/O go/O to/O Stanford/ORGANIZATION University/ORGANIZATION ,/O which/O is/O in/O California/LOCATION ./O
I/O study/O computer/O science/O ./O
I/O grew/O up/O in/O New/LOCATION Jersey/LOCATION ./O
ここでsample.txtの中身は
My name is Jenny Rose. I go to Stanford University, which is in California.
I study computer science. I grew up in New Jersey.
である。
各単語の最後に/Oがついているのは固有表現でないものを表す。
ちなみに日本語の固有表現抽出はcabochaでできる。
http://chasen.org/~taku/software/cabocha/