2008年11月27日の日記を表示中

2008年11月27日 (木)

地霊殿Extra

うーん,でもやっぱ萃香はパワーが弱いのが苦しい.というわけで今日は紫で.何度か頑張ったところ,弾幕のロールシャッハまでいけました.まだまだだなぁ.

Anthy

今日もG-HAL氏パッチ関連ネタ.patch12で安定かと思ったら,変換して確定しても覚えてくれなくて次にそれが1番上に出ないパターンが.自分で辞書に登録した単語を選んで確定した場合に発生する? いやでもそうでもないのもあるな・・・. 「わらい」→「(笑)」がNG.「まりさ」→「魔理沙」は覚えてくれたw.品詞は関係ないっぽいし,学習データは1回消した状態だし,うーん.

あと,@mojin が最新の patch13 を試して「さいばーすてぃっく」で落ちていたのでちょっと調べてみました.makeして test に移動して test.txt の 2行目あたりに「*さいばーすてぃっく」と書いて ./anthy 1 とかやると死にます.とはいえ,インストールしないで色々実験できるのでこれは楽ちん.前に田畑さんに教えてもらったんだっけ.思い出せてよかった・・・.

で,gdb を噛ましてバックトレースをとってみたところ↓な結果が.

Program received signal SIGSEGV, Segmentation fault.
0xb7f20332 in set_bestmw_by_metaword (wsic=0x8066570, mw=0xbfd40c3c)
    at lattice.c:1254
1254        wsic->best_mw[mw->mw1->from] = mw->mw1;
(gdb) bt
#0  0xb7f20332 in set_bestmw_by_metaword (wsic=0x8066570, mw=0xbfd40c3c)
    at lattice.c:1254
#1  0xb7f21a0b in anthy_mark_borders (sc=0x8065c44, from=4, to=9)
    at lattice.c:1325
#2  0xb7f1f218 in anthy_eval_border (sc=0x8065c44, from=0, from2=0, to=9)
    at evalborder.c:186
#3  0xb7f1ee1a in anthy_mark_border (sc=0x8065c44, from=0, from2=0, to=9)
    at splitter.c:169
#4  0xb7f1a2c0 in make_candidates (ac=0x8065c00, from=0,
    from2=<value optimized out>, nth=0, is_reverse=0) at context.c:345
#5  0xb7f1a675 in anthy_do_context_set_str (ac=0x8065c00, s=0x8065b50,
    is_reverse=0) at context.c:384
#6  0xb7f19906 in anthy_set_string (ac=0x8065c00,
    s=0x8065b38 "さいばーすてぃっく") at main.c:240
#7  0x080497f4 in main (argc=65808, argv=0xb7f26560) at main.c:250
(gdb) quit

うむむ,なんだろう.ソースを見てもさっぱり.mw->type->from には何か値が入ってましたが・・・

(gdb) p/x mw->mw1->from
$2 = 0x10110

よくわからんのでとりあえず configure 時に CFLAGS="-O0 -g" としてみることにしたら普通に動くし(;´Д`)

Starting program: /tmp/anthy-9100e/test/.libs/lt-anthy 1
./test_anthy --help to print usage.
ANTHY_ENABLE_DEBUG_PRINT=()
ANTHY_SPLITTER_PRINT=()
SRCDIR=(.)
anthy-9100e Fri Nov 28 02:52:01 2008
1:(さいばーすてぃっく)
|さいばー|すてぃっく
さいばー(サイバー:(1N,1000,N,6553,303,0)7,782 ,さいばー:(N,0,-)2 ,):
すてぃっく(スティック:(1N,1000,N,6553,303,0)7,782 ,すてぃっく:(N,0,-)2 ,):

2 items
conversion result
ok : 0
miss : 0
unknown : 1

split result
ok : 0
miss : 0
unknown : 1


Program exited normally.

再び CFLAGS なしで configure して make したらまたセグるようになった・・・.やはりどっかに際どいコードが混じってるんですかねー.ソース見てもわかるわけがありませんが,試しに勘で ↓ とかやってみたら落ちなくなりましたw.でも多分これは違うw

--- src-splitter/lattice.c.org
+++ src-splitter/lattice.c
@@ -1322,7 +1322,7 @@
       }
     }
     if (mw) {
-      set_bestmw_by_metaword( sc->word_split_info, &mw );
+      set_bestmw_by_metaword( sc->word_split_info, mw );
       from += mw->len;
       if (to < from) {
        from = to;      /* It is a bug, may be. */

・・・続くかもしれない.

[コメントを書く]

G-HAL 2008/12/24(水) 21:56:11
G-HALと申します。相当遅くなってしまい申し訳ありません。
&mw → mw は、ご指摘の通りです。
お陰様で、当方では全く気づいてなかったバグを治す事ができました。有り難うございます。

「(笑)」が学習されないのは、試験時に私好みの設定に変えた後、
公開時に一般向け設定に戻すのを忘れた物です。
conf ファイルの DONOT_LEARN_EXCEPTION_WORD_AT_* の辺りになります。

また、2007/11/24の「アン氏んです」の件と、2007/9/17のekato氏の「生血ゃ」の件も、
参考にさせて頂きました。重ねてお礼申し上げます。

2008年11月27日の日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2008年11月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ