[Anthy-dev 248] anthy-4609

Back to archive index

yusuk****@cheru***** yusuk****@cheru*****
2003年 10月 12日 (日) 01:40:42 JST


田畑です。

anthy-4609をリリースしました。
*辞書ファイルがないときに落ちるのを修正
*プリエディットがあるときにundoできないように修正
この手の修正は必要なのですが、接頭辞と接尾辞が付いた時の
変換精度がいまいちなので、特にupdateは勧めません。

そして、こっからが本題ですが、Anthyが接頭辞、接尾辞を
付けるときのやりかたについて説明しておきます。

接頭辞、接尾辞は付けれる時にかならず付けてよいというもの
ではなくて、その候補がありえそうな時だけに使う必要があります。
たとえば、「あめ」という単語に対して、「あ」を接頭辞だと判断して
「亜目」なんて候補を割り当てると、多くの場合、無駄な候補を
大量に作ってしまいます。
しかし、逆に「あねったい」に対しては「亜+熱帯」を生成できれば
良いのですが、「亜目」を出さないことと両立するような器用な
ことはできないので、付属語付きの単語の多くは辞書に名詞として
登録されています。

という感じで、色々とややこしいため、接頭辞、接尾辞を付けた
候補を出すのは数詞と人名と地名だけにしておいても良いのかも
しれないですが、最近迷っています。

このへんの処理はどうなっているかと言いますと、文節の構造に
スコアを付けることによって実装しています。anthy-agentコマンドを
使って下記のようにやると見ることができます。225とか119とか
出ているのが構造のスコアで、その右にあるのが候補のスコアです。

[yusuke @ illusion anthy]$ anthy-agent
ichirinn
(2 ((UL) "いちりん" -1 -1) cursor)
(space)
(3 ((UL RV) "一輪" 0 14))
 PRINT_CONTEXT
|いちりん
いちりん(一輪:(1,225)111,221 ,位置輪:(,119)13,414 ,位置厘:(,119)13,414 ,一厘:(,119)9,120 ,市輪:(,119)4,826 ,市厘:(,119)4,826 ,壱輪:(,119)4,509 ,壱厘:(,119)4,509 ,壹輪:(,119)4,192 ,壹厘:(,119)4,192 ,いち輪:(,119)532 ,いち厘:(,119)532 ,いちりん:(N,0)2 ,イチリン:(N,0)1 ,):

  「いちりん(名詞)」は225点
  「いち(名詞)+りん(数接尾辞)」は119点←バグってる。もっと点数を下げるべき
  「いち(数詞)+りん(数接尾辞)」は119点

このスコアは長い付属語が付いていたり、接頭辞が付くことによって
低くなります。そして、このスコアが低くなるとその構造から候補の
生成が行なわれなくなります。この設定は
anthy/src-main/compose.cのanthy_make_candidates()で
:  /* limitよりも低いscoreを持つseginfoからは候補を生成しない */
:  if (se->nr_seginfo) {
:    limit = se->si[0]->score / 3;
:  }
:  for (i = 0; i < se->nr_seginfo; i++) {
:    if (se->si[i]->score > limit) {
:      proc_splitter_info(se, se->si[i]);
:    }
:  }
というふうにやってます。もっとも高いスコアを持つ構造の1/3を
越えてない構造からは候補が出てこないようになっています。

接頭辞、接尾辞の扱いの調整ができたら、となりの文節の構造も見て
スコアを決めるのもやろうかなと思ってます。



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