2010年5月8日土曜日

また逢う日まで・・・

ブログ放置しっぱなしでスミマセン。
生活環境の変化でパソコンに触れる時間がかなり少なくなってしまいました。
さらにiPhoneを手放してしまった為これ以上sys.dicを弄る事が出来ません。

sysdic2csvは今後のアップデート予定は無いですが、最後にiPhone実機での動作を目指してsysdictoolを作りました。
こちらは機能は変換のみですがメモリ使用量をかなり削ってます。(通常の辞書ファイル変換で20MB程度です。)
ダウンロードはいつものこちらから
だれかiPhoneやMacに移植してくれないかなぁ・・・コッソリ


最後に・・
コメントつけてくれた方々へ、
お返事できなくてすみませんでした。
また機会が有りましたらよろしくお願い致します。

P.S. iPhone4Gが発売されたら戻ってくるかもしれませんw

2009年6月21日日曜日

OS3.0用sysdic2csv

3.0JB(redsn0w)が来たので早速sys.dicをのぞいてみました。

・・・ちょっと構造変わってる?

というわけで若干修正(v0.15beta)
ダウンロードはこちらから

sys.dicの場所は
/usr/lib/dic/ja/im
に変更になってます。
wordpool.dicもありますが、こっちはマイナーな単語用?

/usr/lib/dic/ja/tok
こっちのsys.dicはまだ未対応です。

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の変換に不満を抱いたことは無かったんですが、このページを見て不満がある人もいるんだなぁと・・・少しでも正確な変換が出来るかと期待したけどお手軽にやるのは無理でした;;

2008年10月15日水曜日

変換確定後の予測を切る?

昔(2.0の頃?)は切れたような気がしてたんですが
いつの間にか設定から変更できなくなってるようなので、
ちょっと思い立ってngram.datの中身を削ってみました。

自分が使っている限り確定後の予測単語が、
・あんまり当たらない
・学習しない
ので切っちゃっても良いかな。

少しは早くなったか・・・誤差程度?



使い方は/System/Library/TextInput/TextInput_ja.bundle/ngram.datを上書きするだけ。
くれぐれも元のngram.datのバックアップは取った上で。

ダウンロード