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

Re: xcin input method



On Mon, Jan 03, 2000 at 10:11:25PM -0700, Anthony Fok wrote:
>   1. 小弟想改良一下行列30的支援,就是除了 w 起頭的輸入碼外,其他的
>      都可以以數字選字上字,而不會把該數字當作輸入碼的一部份。其中一個
>      緩衝 (?) 的辦法是取掉 %keyname 裏 0-9 的數字鍵,但這樣一來,
>      那些 w0 ~ w9 的 shortcut 就用不到了。請問如果要改 xcin 的 source,
>      是否應從 gen_inp 著手,加個 flag 來增加這項功能?(抑或另起爐灶,
>      用自己獨立的 module?

是的,我正計畫要改寫 gen_inp, 看能否也加入行列 30 的這項需求。
但我在想如果要寫的話就寫得完善一點,不要只是行列 30 just work
就好了。目前還沒有腹案,有人可以提供建議嗎? :-))

>   2. 有沒有人有興趣增加「行列40」、「客家拼音」等輸入法?
>      又,大家喜歡「帶調拼音」(如 zh_TW.Big5/pinyin.cin)
>      抑或「無調拼音」(如 zh_CN.GB2312/pinyin.cin)?
>      客家拼音也許可以從 John Jenkins 維護的 Unihan.txt 中抽出製成。
>      帶調的廣東拼音也可以,不過懂得廣東拼音 6 個或 9 個聲調的香港人,
>      實在少之又少,倒可以解決過多重覆字的問題。

其實我就是「行列 40」的用戶 :-)) 但我的「行列 40」已經有點走味了,
反正我覺得用不習慣就改。但因為我不知道行列 40 到底能不能自由使用,
所以我一直沒有將 .cin 檔放出來。如果可以的話,我當然樂意加入。

至於其他的輸入法我就不熟了,能否請熟悉的朋友幫忙追蹤一下,然後再寄
來給我?我都很樂意加入。

另外,我在想在 xcin 主程式中是不是一定要放入這麼多的 .cin 檔?是不
是應該將大部分的 .cin 檔抽出來另外做一個 tarball, 而主程式的那個
tarball 只放幾個最常見的 table (如 cj.cin) 或根本不放任何 .cin
table? 大家可以給我意見嗎?

>   3. bimsphore、tabe 等將來可否配合 pinyin、cantonese 或其他輸入法應用,
>      作智能選字? ^_^ (抑或這已經是 FAQ 了? ^_^)

有考慮過。先說拼音,有人建議可以將拼音寫入 libtabe 裏頭,或說是 libbims
裏頭,當做是另一個 mode 來用,而實做上不會太難,只要將輸入的拼音碼轉成
注音碼,直接餵給 libbims, libtabe, 則現成的猜字演算法馬上可以派上用場。

但如果是修改 gen_inp 來呼叫 tabe 的函式的話,則只能做到有限度的猜字。
基本上 gen_inp 是 table 導向的,它適用的是重複字數少的輸入法,而這類輸
入法是否有猜字功能似乎顯得不很重要,因此我不太願意為它重寫一個猜字演算
法來用,換句話說,可以的話我暫不考慮在 gen_inp 中加入猜字的功能,或者
說如果真的要猜字的話,頂多就只有簡單的查查 table, 選詞頻或字頻最高的
來用。但若要複雜到可以分析語句、往前修改 .... 的話,我希望能盡量用
libbims 的話就盡量用。

基本上, bimsphone 只是一個殼,它呼叫 libbims (libtabe 的一部分) 來工
作, libbims 是注音猜字演算法的核心,它呼叫 libtabe 來工作, libtabe
則管理龐大的字詞,同時也有詞頻等資料。不幸的是,目前它們幾乎都是給 Big5
碼用的,若要給其他內碼用還得費一番手腳。但如果是 Big5 的話,我相信只要
是靠「音」來輸入法的,如注音、拼音 .... 等,應該都可以直接使用 libbims。

至於使用 GB 碼的朋友是否需要「會猜字」的輸入法?我不清楚,我印象中他們
大都使用 table 形式的輸入法,甚至他們的拼音輸入法,需要打入一個 key
stroke, 結果跑出一個詞。如 sky ==> 天空。目前 gen_inp 做不到,但我計
畫下一步改寫時要加入這個功能,因為已經有大陸朋友向我抱怨,少了這個的
拼音輸入法對他們而言幾乎是「無用」的 :-))

但如果仍然需要 GB 的猜字形的輸入法時怎麼辦?或者我暫時先自私一點好了,
假如是 Big5 使用者,臨時要打 GB 碼的話呢?有人建議我要在 xcin 裏頭內建
一層轉碼層,讓我們現在用 Big5 輸入法打字,餵出去的卻是 GB 碼。這轉碼層
做起來似乎很容易,但若要寫得很完善恐怕也要一番功夫。所謂很完善意思是我
們要考慮的不只是 Big5 <==> GB 雙向而已,我希望做到的是可擴充性,就像載
入 module 或 .tab 檔一樣,需要時才載入某些 table 做某二內碼間的轉碼。

Sorry, 一下子說太多了,還是一步步來吧 :-))


T.H.Hsieh


Reply to: