[Anthy-dev 529] anthy-5007

Back to archive index

yusuk****@cheru***** yusuk****@cheru*****
2004年 2月 8日 (日) 01:17:41 JST


田畑です

anthy-5007をリリースしました。
共起関係のデータベースにアクセスする部分をanthy-4300の
頃に壊していたのを修正しました。とは言っても「風呂が熱い」
「夏は暑い」等の10個ぐらいの用例しか用意していないので、
あんまり役に立ちません。

共起関係のデータベースをどうやって作れば良いのかは長いこと考えて
いたのですが、hashを使おうという結論を固めつついます。
今は(単語1、単語2、[関係])という組を共有の辞書(anthy.dic)と
個人辞書(~/.anthy/*)に入れるコードがあるのですが、用例が
増えた場合の検索コストやメモリの量、複数の種類のデータベースを
用意する時の手間が心配なので、変更することを検討してきました。

基本的には大きな配列(a)とhash関数(h)を用意しておいて、
a[h(風呂, 熱い, 修飾関係)] が真か偽かで判断しようと思います。
計算の時間が定数なのと、余計なデータ構造の用意が不要なのが良いです。
これを共有辞書としてのread onlyのものと、個人辞書として
書き込めるものの両方を用意することになると思います。


hash関数の衝突の心配をしていたのですが、確率を十分に下げることが
できそうなので、この方向で行こうと思います。

;hashの衝突:
; 偶然で h(風呂,熱い) = h(布団,テレビ) のような
; 一致があることを想定してました。
;この確率を下げるためには
;*配列を大きくする
;*二つ(以上)のhash関数を用意して、a[h1(x)]かつa[h2(x)]の時に真とみなす
;*二つのhash関数を用意してa[h1(x)] = h2(x)の時に真とみなす
;などを思い付いています。
;;という感じでanthyの共同開発者/アルゴリズム屋さん募集中

--
 CHAOS AND CHANCE!
  Yusuke TABATA (yusuk****@cheru*****)



Anthy-dev メーリングリストの案内
Back to archive index