RSS2.0

MeCab で UniDic 辞書を使ってみる

MeCab で使える形態素解析用の辞書は、IPA 辞書の他にもいくつか公開されています。そのひとつであるUniDic は、IPA 辞書よりも個々の単語を詳細に分類したもので、分割した形態素が文中で果たす役割をより精密に検出することができます。UniDic はメンテナンスが頻繁に行われているようで、最新版は 1 ヶ月ほど前の 2013/3/14 にリリースされた 2.1.2 になります。ライセンス形態は GPL、LGPL、BSD License のトリプルライセンスとなっていて、その点でも、エンジニアにとっても採用しやすい辞書となっています。

今回はこの UniDic を実際にビルドし、MeCab から使ってみることと、辞書の再学習までを試してみました。
続きを読む MeCab  コメント (2) 2013/04/23 22:53:04

MeCab の IPA 辞書を再学習させてみる

MeCab の辞書は利用する分野に応じて、新たな名詞や動詞などを追加したり、その分野の文章の解析精度を上げるよう再学習させることができます(この作業はドメイン適応と呼ばれるそうです)。

ドメイン適応の第一歩としては、未知の名詞の MeCab 辞書への登録から始めると良いです。
ただ登録作業自体は、辞書をビルドする際に、その単語を後述のフォーマット(※1)で書いた .csv ファイルを混ぜておけばいいので、それほど難しいことではありません。問題となるのはその単語がどの程度使われやすいのかを調整する必要があることです。この使われやすさを示す数値はコストと呼ばれ、単語を登録する際には自分で決め打ちしなければなりません。

コストの手動計算方法はネット上でもいくつか紹介されていますが、手動計算ではあまり複雑な計算はできないので、同じ品詞のコストが同じ値になりがちです。そこでもう少し踏み込んだコスト算出方法として、辞書の再学習という手段があります。これは既存の辞書を作る際のデータモデルと追加する単語、少量の例文からコストや単語の接続方法を自動判定させる機能です。

続きを読む MeCabpython  コメント (0) 2013/04/21 20:09:28

MeCab の IPA 辞書を UTF8 化する

配布されている MeCab の IPA 辞書は、文字コードが EUC JP になっています。
辞書のビルド時に文字コードを指定できるので、ちょっと試してみる分にはいいのですが、単語を登録しようとしたり、再学習をさせようとすると、文字コードが統一されていないことは障壁になります。

そこで MeCab 推奨の IPA 辞書を UTF8 に変換するツールを書いてみました。
テキストファイルの文字コードを変更するだけなのでシェルスクリプトでもできますが、個人的にのちのち再利用できそうなので python を使っています。

続きを読む MeCabpython  コメント (0) 2013/04/19 22:46:59

igo-python を使ってみた

前回 MeCab をちょろっと触ってみましたが、バイナリをビルドして、となるとコンソールが使えないレンタルサーバーでは使いづらいのが実情です。形態素解析器で C 言語じゃないものは他に何があるんだろうと探してみたところ、Igo という、Java の形態素解析器が見つかりました。

Igo はソースコードこそ異なるものの、解析結果は MeCab 互換となることを目指して作られたもので、辞書ファイルのフォーマットも MeCab のものに合わせているそうです。(ただ、未知語の扱いについては MeCab との差異があるようなので、公式ページを確認してください。)

今回は、この Igo を更に Python に移植したという igo-python を使ってみました。形態素解析を組み込もうかと思っている chocolablog が Python 製なのが理由です。
続きを読む MeCabpython  コメント (0) 2013/04/11 07:42:15

MeCab を使ってみた

Linux 環境で、UTF8 で使えるよう MeCab をビルドするところまでやってみました。

MeCab は辞書に登録されている単語をもとに、日本語の文章を品詞に分解するソフトウェアです。
日本語の品詞分解に対するこのアプローチは形態素解析と呼ばれる手法で、もとにする辞書が充実していればしているほど精度が上がっていきます。
辞書に登録する語彙によって解析できる品詞が変わるため、辞書に学習させる過程による癖が出やすく、個人的には愛着の出やすい手法なのじゃないかと感じています。

しかし、逆に言えば言葉の移り変わりに応じて辞書のアップデートをしていかなければならず、また辞書をメンテしていくことで辞書ファイル自体のサイズが大きくなってしまうというデメリットがあります。

Mecab 自体はとても歴史のあるプロジェクトで、現在では Java や Python のバインディングまで提供されているため、かなり組み込みやすい環境が整っています。
続きを読む MeCabLinux  コメント (0) 2013/04/09 06:41:31
プロフィール HN: ももかん
ゲーム作ったり雑談書いたり・・・していた時期が私にもありました。
カレンダー
<<2024, 12>>
1234567
891011121314
15161718192021
22232425262728
2930311234