2008年11月26日水曜日

ngram2csv[表示のみ]

某JBスレで要望があったので適当に作ってみました。逆変換は実装してません。
出力csvの項目で重複している部分があるのはngram.datのファイル構造に起因します。
(sys.dicとngram.datの単語検索部分の共通化の為と思われます。)

使い方はsysdic2csvと一緒です。
ダウンロード

2008年11月17日月曜日

UniDic辞書を学習させる[予定]

前回のじゃあんまりなので学習させることを考えます。
まだ実際に学習させたわけではなく構想段階です。

MeCab辞書の学習のさせ方はこちら
必要なのは設定ファイル類の他に、
1.Seed辞書
2.学習用コーパス
です。

1は前回作った物を使います。
2は…すぐに使えるデータが見つからなかったのでWikipedia等のHP上の文書から採取することを考えます。幸いUniDic辞書という学習済みの辞書がありますのでこれを変換に使います。


○学習コーパスの作り方を考えます。
1.とりあえず1文1行になっている大量の日本語テキストを用意する。
  これはWikipediaのアーカイブから変換することで出来そうです。
2.学習コーパスに変換するためにUniDic辞書を"単語","LID","RID","COST","よみ"形式に書き換える。
  (前回の辞書の"読み"と"単語"を入れ替えた物)
3.2の辞書をMeCabにセットし1のテキストを流し込む。
4.出来上がった学習コーパスの表層文字と素性を入れ替える。
…これでいけるかな?

○最終的にこんな感じのが出来ればOKだと思います。
たろう 太郎
は は
はなこ 花子
が が
すき 好き
だ だ
. .
EOS
しょうちゅう 焼酎
すき 好き
の の
おやじ 親父
. .
EOS

とここまで考えて「好き」の読みが「ずき」にならない(可能性がある)ことに気がつきました。
やってみるしかないか…

mecab-skkservを使ってみる

MeCab辞書関係を色々探してたら・・・なんだ、かな漢字変換用MeCab辞書あるじゃん!

というわけでmecab-skkservから辞書をダウンロードして、
適当に変換後iPhoneに突っ込んでみました。



なんか変だけど一応使えてます。

候補が変なのはiPhoneのTextInput_jaがMeCab辞書だけじゃなくngramとかも参照してるから?
dicrcのcost-factorも関係してそうな気がするけど・・(mecab-skkservのdicrcにはcost-factorが載ってないです)

変換の仕方は省略

2008年11月16日日曜日

UniDicをiPhoneで使う

最初に書いておきますが学習してないと実用に耐えません。

形態素解析辞書UniDicが無料でダウンロードできるようだったので、iPhone用の漢字変換辞書を作ってみました。

もともとUniDic辞書は 「かな漢字まじり文」(日本語テキスト)を「分かち書き」(形態素解析)する為の辞書ですので、これを適当に書き換えて「よみ」を「漢字」に変換する辞書にします。
今回は文脈IDとコスト値は再学習させずそのまま使ってみました。(→結果大失敗)
まあ、予想はしてましたがかなり酷い変換具合です。


ちゃんと学習させれば賢くなりそうですが、学習用テキストを用意して・・・やるのは大変;;

**UniDicやMeCabの問題ではなく、単に学習させる工程を省いていることに因ります。**

自分で辞書を作ってみたい方は
1.UniDicのMeCab版ソース辞書をダウンロード
2.中に入っているMeCab用のCSVをsysdic2csvで使える形式に変換
3.sysdic2csv v0.14でsys.dicに変換
4.作成したsys.dicとmatrix.binをiPhoneへ転送

1はこちらから。(ダウンロードには登録が必要です:無料)
2と3はこちらのツールで。
4のmatrix.binはパッケージ版に入っている物かソース版からMeCabで作成してください。


*注意点

・iPhone3G v2.1 のsys.dicは左文脈IDと右文脈IDが同じだった為、sysdic2csv v0.13までは一つのIDとしてまとめていましたが、本来MeCabの辞書では区別があります。
今までのバージョンでは変換できない為少し変更(v0.14)してあります。
(例:"かな","左文脈ID","右文脈ID","コスト","漢字")

・unidic_csv変換は1つずつD&Dして下さい。Others.csvはエラーが出るので使いません。

・普通に変換するとmatrix.binが28MB、sys.dicが14MBになります。もともとが5.6MB/9.8MBですので、メモリ圧迫によりiPhone側のアプリが落ちやすくなると思われます。
(でも思ったほどもっさりはしない。変換時辞書ファイル内の参照領域が局所的だから?)


*最後に
今までiPhone2.1の変換に不満を抱いたことは無かったんですが、このページを見て不満がある人もいるんだなぁと・・・少しでも正確な変換が出来るかと期待したけどお手軽にやるのは無理でした;;