PALMisLIFE 討論區
標題:
[自給自足]萬用輸入法字(詞)庫轉換程式(適用 愛微輸入法 AiiType v1.x)
[列印本頁]
作者:
u329
時間:
2011-1-13 21:39
標題:
[自給自足]萬用輸入法字(詞)庫轉換程式(適用 愛微輸入法 AiiType v1.x)
本文最後由 u329 於 2011-3-2 16:16 編輯
有鑑於 webOS v2.x 會移除Java支援,現有的 JustInput 可能無法移植過去,
對岸的作者五月,開發了
愛微輸入法
來因應此狀況。
自然愛微的官方版,也只會支援簡體文字的輸入~
後來 PIL 上有
文章
提供了許式字庫可讓愛微輸入繁體中文,
可惜就缺沒有詞庫,不然輸入會更方便。
因此,花了點時間,自製了 HSUConvert.exe 轉換程式,可搭配自訂的詞庫文字檔,轉換成愛微可用的資料庫~
=======================================================
將文末附件解壓縮到任意一個資料夾(ex: d:\HSU\ ),點選「開始 / 執行」,輸入 cmd 按下enter,開啟命令列模式,
執行該資料夾下的 HSUConvert ,便會出現程式的參數說明,如下圖:
[attach]38978[/attach]
預設程式已內含所有許氏字庫資料,若執行時直接使用 AiiType 模式,則會輸出只有單字的愛微資料庫,
將所有程式產生出來,位於 Output 資料夾下的 .json 檔,複製到手機的 /media/internal/
.
app-storage/AiitypeDatabase 資料夾即可。
==若要匯入自訂詞庫==
您可參考我附上的 PhraseSample.txt 文字檔,
裡面是自訂詞庫範例,原則上是一行一個詞,檔案的編碼是 UTF8 ,可用免費的 NotePad++ 進行編修。
自訂詞庫也支援新酷音的 tsi.src 格式,譬如「再接再厲 79 ㄗㄞˋ ㄐㄧㄝ ㄗㄞˋ ㄌㄧˋ」,則程式只取第一個空白字元前的資料當作詞庫來源。
匯入自訂詞庫時,檔案內的詞句不可有重複,若遇到有重複,程式會中斷,並提示錯誤的詞組內容,請自行修正後再行匯入即可~
==若程式的詞組取碼錯誤==
因為有破音字的關係,所以有可能程式取碼時,會取到不是您希望的發音,這時可用免費的 SQL Express 2005 / 2008 ,開啟
PhraseDB.mdf 的 WordMap 資料表,將希望程式用來取碼的那筆發音資料,
其 PSelected 欄位的值改為 1 ,其他同字的資料該欄位改成 0 即可,如下圖:
[attach]38977[/attach]
=======================================================
文章中所提及的檔案, 都可在下方附件中找到,謝謝~
PS.程式是用 .NET + SQL Express 開發而成,所以最低需要安裝 .Net 2.x framework 及 SQL 2005 Express 才能執行
下載
.Net 2.0 FrameWork
(Windows7 以後已有內建,不需安裝)
下載
SQL 2005 Express 最新 SP3 版
若想使用 GUI 介面來自行管理 SQL 資料庫,才需額外下載
GUI管理工具
===首次發布===
[attach]38979[/attach]
===第一次更新===
使用者可自訂輸入法字庫,故不再只限於許氏注音,所以更名為 IMEConvert ,詳細更新內容請見 五樓
[attach]39000[/attach]
===第二次更新===
因為發現愛微的目前版本,若詞組的字數太長,候選字顯示時配置會亂掉,
故程式增加可限定只輸出指定字數(含)以下的詞組,詳細更新內容請見 六樓
[attach]39023[/attach]
===第三次更新===
程式用法不變,新增輸出愛微的Json詞組時,內容按照用字頻率為排列順序,詳細更新內容請見 九樓
[attach]39215[/attach]
===第四次更新===
增加輸出 webIME 詞組的輸出模式,產出符合webIME模組的 ime-code.js ,方便搭配這篇的
自製網頁中文輸入法
來使用
[attach]39970[/attach]
作者:
u329
時間:
2011-1-13 22:06
本文最後由 u329 於 2011-1-13 23:43 編輯
接下來,舉個實際範例讓大家參考~
01.自訂一個詞庫,檔名為 Test.txt ,內容很簡單,如下:
[attach]38984[/attach]
02.執行 HSUConvert phrase test.txt ,將詞庫匯入並轉換,如下:
[attach]38985[/attach]
03.由於此詞庫只會影響字母 x 開頭的字組,所以輸入 HSUConvert AiiType x ,只輸出字母 x 開頭的愛微資料庫:
[attach]38986[/attach]
04.將產生的 imedatabase-x.json ,複製到手機的 /media/internal/
.
app-storage/AiitypeDatabase/ 資料夾:
[attach]38987[/attach]
05.開啟愛微輸入法,即可進行輸入:
[attach]38988[/attach] [attach]38989[/attach]
作者:
stoneyu
時間:
2011-1-13 23:36
哇哇,您動作真是快速啊.才不到一天就已經生出來了,大大感激 !!
作者:
u329
時間:
2011-1-14 06:03
本文最後由 u329 於 2011-1-14 06:07 編輯
預告一下,下一版程式會讓字庫變成也可自訂 [洋蔥012],
這樣的話,就變成萬用的輸入法轉換器。[洋蔥sweat]
而只要字庫的編碼是使用英文字母組成的,就都適用,
譬如字庫來源,改成
倉頡/嘸蝦米/倚天26
....
則轉換出來的資料庫,就變成該輸入法專用的字詞庫,應用上更廣泛~ [洋蔥handshake]
作者:
u329
時間:
2011-1-14 15:15
本文最後由 u329 於 2011-1-14 18:35 編輯
第一次更新,程式更名為 IMEConvert ,附件 (IMEConvert_0114.zip) 請從一樓下載~
執行 IMEConvert 後,畫面如下:
[attach]38997[/attach]
比上一版的執行方式,多了 Word / Clear /Count 三種模式,後兩者功能單純,應該不必再解釋了。
而 [Word] 模式,可讓您自訂輸入法的字碼表來源,原則上只要是使用英文字母的輸入法都適用,
字碼表原則上是一行一個字,字碼與文字可用空白或是逗號區隔,程式會自動判斷,如下方的兩種方式都可以:
[attach]38998[/attach] [attach]38999[/attach]
我有試過字碼表採用 倉頡 / 嘸蝦米 / 許氏 都可以,加上又可搭配自訂詞庫,輸入時真是有如神助阿~
附件內有含相關的 [字碼表] 及一個 [2500多句詞彙] 的範例文字檔,請各位自行參考,格式很簡單,應該很容易理解~
作者:
u329
時間:
2011-1-14 18:33
本文最後由 u329 於 2011-1-14 21:31 編輯
第二次更新,相關附件 (IMEConvert_0114-1.7z) 請從一樓下載~
此次更新,主要是發現了愛微的一個Bug。
那就是,因為候選字是以二維矩陣方式呈現,若同一頁的候選字的長短不一時,
有時就會出現錯亂的情況(如下圖),如果用鍵盤操作的話,
其實並不會影響游標移動和選字,但多少還是有些困擾~
[attach]39020[/attach]
但如果同頁的字元數量差異不大時,則又還好~
經過實驗,兩字的混合是最保險的,但成語大都是四字,如何取捨,就看各位能否接受畫面錯亂。
[attach]39021[/attach]
為了暫時配合此問題,程式增加了詞庫可限制詞組長度的功能,譬如 Phase 2 ,
代表只有詞組字數小於等於2 的詞組,才會被對應字碼:
[attach]39019[/attach]
=====================================
最後,說明一下,詞組對應字碼的程式處理原則:
原則上程式是取每個字的首碼,但一個詞組最多只取四碼,如下(以許氏注音為例):
[無][意][義] => [xee]
[當][頭][棒][喝] => [dtbh]
[巧][婦][難][為]無米之炊 => [vfnx]
而在後續產生愛微的 json 檔時,因為愛微取碼是用完全比對的方式,所以在生成 json 資料時,
程式會自動幫忙作重複輸出的動作,譬如上述的 [無][意][義] ,實際上會產生三筆資料,
即輸入 [x] 、 [xe] 、 [xee] 都可看到 [無意義] 出現在候選字區,
讓各位輸入最少的字碼,就能找到所需詞組~
作者:
stoneyu
時間:
2011-1-17 23:30
回覆
6#
u329
若是這樣的話,按照詞字數的數量來排序是不是有可能改善這種顯示的情況
作者:
u329
時間:
2011-1-18 02:14
這個我有想過,也試過,並不理想。因為若不是將同音字集中的話,除非你明確知道裡面有哪些詞,不然你也只能試著按下那詞的每字首碼,若槓龜的次數一多,你會寧可只用單字,不用詞。
我也試過,只在超過三字的詞組,於首字作重碼處理,藉以達到類似字數排序但兩字以內的詞彙仍集中顯示的效果,但也不是很適合~
所以,在愛微目前的配置下,我反而想朝字頻的方式,將常用字放在第一候選頁面,可能還比較實用。
由於愛微輸入時,並無自動學習詞頻功能,畢竟不像JustInput,runtime是以db方式存在,要實做自動學習也的確不太可能。
所以我目前是打算找教育部的常用字頻表,再輔以權重方式(使用者可在DB上自調)調整josn的字詞輸出次序~
作者:
u329
時間:
2011-1-25 13:43
本文最後由 u329 於 2011-1-25 13:46 編輯
第三次更新,相關附件 (IMEConvert_0125-1.7z) 請從一樓下載~
此次更新,主要是修改輸出愛微Json詞組時,輸出內容的排列順序。
實際作法,是在資料庫內加了 WordFreq 的資料表,
裡面內建了教育部發表的常用字的使用頻率(如圖,數字愈大代表使用愈頻繁,可自行調整內容以符合個人需求)
[attach]39217[/attach]
則使用本程式輸出Json資料時,程式會加權參考此頻率表,頻率愈高的輸出順序會愈往前,
若參考不到,或是頻率相同時,則以筆劃數為輸出順序~
作者:
u329
時間:
2011-2-21 10:07
本文最後由 u329 於 2011-2-21 10:09 編輯
因為有網友建議,故提供一些已經轉好的字(詞)庫,方便大家直接取用。
下面附件,
擇一
解壓縮到手機的 /media/internal/.app-storage/AiitypeDatabase 資料夾後即可使用。
1.
許氏
字庫,純只有單字的字庫。
[attach]39775[/attach]
2.
許氏
字(詞)庫,除單字外,還包含兩字以下的詞組。
[attach]39776[/attach]
3.
倉頡
字庫,純只有單字的字庫。
[attach]39773[/attach]
4.
倉頡
字(詞)庫,除單字外,還包含兩字以下的詞組。
[attach]39774[/attach]
作者:
u329
時間:
2011-2-22 15:46
參考了
這篇
,裡面有倚天26的碼表,如法炮製出相關字(詞)庫如下:
1.倚天26對照表
[attach]39821[/attach]
2.倚天26字庫,純只有單字的字庫。
[attach]39822[/attach]
3.倚天26字(詞)庫,除單字外,還包含兩字以下的詞組。
[attach]39823[/attach]
作者:
u329
時間:
2011-3-3 14:58
第四次更新,相關附件 (IMEConvert_0301-1.7z) 請從一樓下載~
此次更新,是增加輸出 webIME 詞組的輸出模式,產出符合webIME模組的 ime-code.js ,
方便搭配
這篇
的自製網頁中文輸入法來使用
[attach]39978[/attach]
作者:
irisave
時間:
2011-4-7 15:36
請問有沒有速成版, 謝謝
作者:
u329
時間:
2011-4-28 17:46
klllam 發表於 2011-4-28 16:15
感激大大, 若果是愛微輸入法v1.6.7, 字庫檔應放在那個位置上, 因為安裝輸入法後並沒有/media/internal/.app ...
呃~ 你沒用心看喔,我標題有寫適用 AiiType for 1.x ,給webOS v2.x 用的輸入法是 wbee ,是不同的東西,結構完全不同,目前作者還沒釋出詞庫規格,所以我也沒法製作相關轉換程式~
作者:
lookfine
時間:
2011-5-4 17:01
請問哪裡可以下載到 「新酷音的 tsi.src 」?
找到了三交網友的網頁,但是連結的檔案已經失效了。
歡迎光臨 PALMisLIFE 討論區 (http://f.pil.tw/)
Powered by Discuz! X2.5