[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

some pseudo code of dim



zi -- 一個漢字, 或者是一個輸入法中的字, 比入 Wang
entry -- 連在一起的兩個 zi 的詞, 比如前面一句中的 ``在一,'' 有可能是隨機
的從 word_chain 中檢出來的.

word_chian -- 一列 zi, 有可能就是一個句子, 或者是分斷好了的一串拼音, 比
如 Jiang,Ze,Ming,Dai,Yan,Jing; 也有可能是待填空的句子, 比如 張__是__部長

dict -- 這裡面有很多 entry, 每個 entry 後面帶上好多 word_chain.

從 word_chain 中學習新的 word_chain
learn_word_chain(word_chain)
        while (entry=pick_next_most_possible_entry(word_chain)) ***
                while (cmp=pick_next_most_possible_word_chain(entry))
                        cmp_and_learn(word_chain,cmp);
                        break_at_random_chances;
                break_at_random_chances;

把一個拼音的 word_chain 轉化成漢字的 word_chain
guess_word_chain(word_chain)
        while (entry=pick_next_most_possible_entry(word_chain)) ***
                while (cmp=pick_next_most_possible_word_chain(entry))
                        score_amgic();
                        result=cmp_and_guess_segment(word_chain,cmp);
                        add_result_to_tmp_memory(result);
                        break_at_nearly_random_chances;
                break_at_nearly_random_chances;
        result=best_result_from_tmp_memory;

*** 在 *** 處, 可以 launch 一個 thread 來做.

cmp_and_learn(word_chain,cmp)
        cmp_magic();
        count_hit_points();

cmp_and_guess_segment(word_chain,cmp)
        cmp_magic();
        score_magic();

cmp_magic()
        如果興趣在漢字上,就比較漢字;
        如果興趣在拼音上,就比較拼音;
        類似于 Unix 命令 diff/patch 的算法:
        ABC123DEF, GHI123JKL => __123__, ABC, DEF, GHI, JKL
        ABC123DEF, __123__ => ABC, DEF, __123__
        ABCXYDEF, 123XY456 => score_entry(XY), ABC, DEF, 123, 456
        更復雜的情況, 再論.

score_magic()
        減 若幹分, per entry, 表示多翻一次字典, 累啊
        加 若幹分, per __XXX__
        其它部分, 只要挑 hits_number 最高的就可以, hits_number=score.

forget_magic()
        ...

告訴我你們的意見.謝謝!
-- 
Personal Homepage ....................... http://www.zhaoway.com
Debian Chines Input Method .......... http://dim.sourceforge.net

-- 
| This message was re-posted from debian-chinese-gb@lists.debian.org
| and converted from gb2312 to big5 by an automatic gateway.



Reply to: