忍者ブログ
RoboCup Junior Japan Rescue Kanto OB

             2005~2013
[1015]  [1014]  [1013]  [1012]  [1011]  [1010]  [1009]  [1007]  [1006]  [1005]  [1003
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

今日は手持ちのプロジェクトを進めるために、形態素解析というものに手を出した時の話をしてみます。


そもそも形態素解析ってなんぞやという話ですが、

簡単に言うと形態素解析とは文章の形態を解析するものです。

文章の形態を解析するというのは、文章の中で、どこからどこまでがその単語であり、

その単語が名詞なのか動詞なのか・・・ということを調べるということです。

といっても単語が名詞か動詞かなんていちいちプログラム判断させるのはアホらしいので

判断には普通、辞書という物を使います。

辞書にはその単語が名詞なのか動詞なのか、複数の意味を持つのか・・・

と言ったいろんな情報が記述されていて、単語で検索をかけることで単語の品詞を検索できます。


例えば、英語だったら

I lost my card key.

このように単語ごとにスペースで区切られていますので、単語のパースは簡単です。

スペースごとに1単語としてみれば何の問題もありません。

あとはこの単語ごとに辞書にぶっこめば単語の品詞が出てくるので、

単語に対して文法に合う品詞を出力すれば完了です。


しかし日本語の場合はどうでしょう。

私は私のカードキーを失った。翻訳 by Google先生


我々日本人ならともかく、コンピュータにとってはどこが単語の区切りなのかがわかりません。



なので形態素解析には文章内でどの部分を一単語として認識すれば正しい文章として成り立つかを調べながら

単語の区切りを見つける解析エンジンが存在します。

今回はその形態素解析エンジンを動かしてみようという話になります。(長い)



今回はMecabというエンジンを使用します。

Google日本語入力の中の人が開発したエンジンで日本語の形態素解析エンジンでは一般的なものです。


今回はこれを、サーバー構築日誌(嘘)で構築したサーバー上で動かしてみます。

WindowsであればexeをDLするだけで終わる簡単な作業なのですが、

うちのサーバーはあの有名なCentOS。とても面倒でしたね。



まずlibiconvとか言うのをインストールしないといけないらしく、インストールを行います。


wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.11.tar.gz

tar zxvf libiconv-1.11.tar.gz

cd libiconv-1.11

./configure

make

make install


最新版があったらそっちのほうがいいかもしれませんが、

互換性の関係もあるので出来る限りこのバージョンのほうがいいと思います。

普通にwgetで落として解凍してmakeでインストールします。

この子には起動していて欲しいのでviか何かを起動してld.so.confに追加します。

vi /etc/ld.so.conf

/usr/local/lib を末尾に追加 viの操作方法はサーバー構築日誌にあるはず。

ldconfig -v | less



次にめかぶをインストールします。

今のところ最新版は0.998ですが、0.99XシリーズはCentOSやCygwinでは総じてインストールが出来ません。

という訳で今回は0.98インストールします。


wget http://mecab.googlecode.com/files/mecab-0.98.tar.gz

tar zxvf mecab-0.98.tar.gz

cd mecab-0.98

./configure

make

make check

make install


どっちにしてもmakeでエラーを吐きますが、macabと打ってコマンドが無いよって言われなければインストールはできています。
公式によると、どうやらこのエラーは仕様のようです。

g++(gccのC++版)コンパイラがないとインストール出来ないようですが

普通にLinuxをインストーすれば標準で入っているので問題ないかと思います。

g++関連のエラーを吐いた場合はg++をインストールすれば大丈夫です。


次に辞書のインストールです。辞書も色々なものがありますが、

ここでは推奨されているIPAの辞書を使います。

wget http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz

tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz

cd mecab-ipadic-2.7.0-20070801

./configure --with-charset=utf-8 

make

make install



こんなかんじです。

先にめかぶをインストールしないとエラー吐くっぽいですがそれ以外ではここではトラブル無し。

どうやっても動かないって場合はlibiconvが動いてないかもしれません。

ここまででめかぶのインストールは終了です。

コマンドライン上でmecabと入力したらめかぶが起動するので

適当に日本語の文章を打てばこのように結果を返してくれます。

[curo@curonet ~]$ mecab

私は私のカードキーを失った。

私      名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ

は      助詞,係助詞,*,*,*,*,は,ハ,ワ

私      名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ

の      助詞,連体化,*,*,*,*,の,ノ,ノ

カード  名詞,一般,*,*,*,*,カード,カード,カード

キー    名詞,一般,*,*,*,*,キー,キー,キー

を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ

失っ    動詞,自立,*,*,五段・ワ行促音便,連用タ接続,失う,ウシナッ,ウシナッ

た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ

。      記号,句点,*,*,*,*,。,。,。

EOS




最後にpython用のバンディングを。なんかファイルの変更が必要とか書いてあって、

色々調べてみても何もわからず、結局何も変更しないでインストールしましたが問題なく動いています。


wget http://sourceforge.net/projects/mecab/files/mecab-python/0.98/mecab-python-0.98.tar.gz/download

tar xvzf mecab-python-0.98.tar.gz

cd mecab-python-0.98

python setup.py build

python setup.py install


めかぶについてはこんなかんじです。

mecab-python-0.98ディレクトリにtest.pyというものがあって、動作確認を行うことが出来ますが、

出力形式等違うのでpython3では動作しません。


(^・ω・)ノ RadiumProduction at curonet
Comments
※コメントは内容確認後に手動で公開するようにしております。反映までしばらくお待ちください。
Your Name
Title
color
Comment
 

カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
最新CM
[05/09 ONE RoboCuper]
[05/07 HDD ほしいよー]
[04/21 ブラック3辛]
[12/26 bols-blue]
[06/08 ONE RoboCuper]
かうんた
カウンター カウンター
らじぷろ目次
らじぷろ検索機
プロフィール
HN:
Luz
性別:
男性

PR

忍者ブログ 2007-2021,Powered by Radium-Luz-Lα+-Rescatar in RadiumProduction [PR]


Related Posts Plugin for WordPress, Blogger...