コンテンツにスキップするには Enter キーを押してください

ubuntuのpythonで tree-tagger を使う

 

tree-tagger のインストール

ubuntuのpythonでtree-taggerを使うときに結構手こずったのでメモします。
ubuntuのpythonで英語の形態素解析ツールであるtree-taggerを使おうとしたのですが、調べたとおりででてこなかったので書きます。

まず必要なものとして以下のものを公式サイトからダウンロードします。
Download the tagger package for your system (PC-Linux, Mac OS-X, ARM-Linux).
Download the tagging scripts into the same directory.
Download the installation script install-tagger.sh.
Download the parameter files for the languages you want to process.

それらをインストールする場所に移動します。どこでもいいですが、/usr/local/src内に作ったフォルダ(筆者の場合はtreetagger)でよいかと。

(~/download) 
> $ mv tree-tagger-linux-3.2.1.tar.gz tagger-scripts.tar.gz install-tagger.sh english-par-linux-3.2-utf8.bin.gz /usr/local/src/treetagger

(~) 
> $ cd /usr/local/src/treetagger
(/usr/local/src/treetagger) 
> $ 

 #そしたらインストールします。

(/usr/local/src/treetagger)
> $ sudo sh install-tagger.sh
TreeTagger version for PC-Linux installed.
Tagging scripts installed.
English parameter file (UTF8) installed.
Path variables modified in tagging scripts.

You might want to add /usr/local/bin/tree_tagger/cmd and /usr/local/bin/tree_tagger/bin to the PATH variable so that you do not need to specify the full path to run the tagging scripts.

(/usr/local/src/treetagger) 
> $ echo 'Hello world!' | sudo cmd/tree-tagger-english
	reading parameters ...
	tagging ...
	 finished.
Hello	UH	hello
world	NN	world
!	SENT	!

次にpythonで使えるようにします。
いろいろなサイトを見てるとちゃちゃとやっていますが、筆者の環境ではうまくいきませんでいた。
まずは、pipからです。

(~) 
> $ pip install treetaggerwrapper

で、pythonのコード
以下のは基本のものらしい

import treetaggerwrapper

tagger = treetaggerwrapper.TreeTagger(TAGLANG='en')
tags = tagger.TagText('hello world')

ただこれだとうごきませんでした。まず、TAGDIRを指定しろと言われます。
これにはshでインストールしたものにPATHを通します。

...
export PATH="/usr/local/bin/treetagger/bin:$PATH"

これで動くかと思い上のtreesample.pyを実行しますがまだ動きません。
こんどはenglish-utf8.parがないよと言われます。

これは/usr/local/bin/treetagger/にあるenglish-par-linux-3.2-utf8.bin.gzのことです。

(/usr/local/src/treetagger)
> $ sudo gzip -d english-par-linux-3.2-utf8.bin.gz
(/usr/local/src/treetagger) 
> $ sudo mv english-par-linux-3.2-utf8.bin english-utf8.par

これを先ほどのtreesample.pyで指定してあげます。

import treetaggerwrapper

tagger = treetaggerwrapper.TreeTagger(TAGLANG='en' TAGPARFILE='/usr/local/bin/treetagger/english-utf8.par')
tags = tagger.TagText('hello world')
print(tags)

実行します。

(~) $ python treesample
['hello\tNN\thello', 'world\tNN\tworld', '!\tSENT\t!']

動きました。どういうわけか環境によって結構変わるのかもしれませんね。





コメントする

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です