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: