PALMisLIFE 討論區

搜索
鹹魚爸魅力四射舞蹈教室
查看: 14800|回復: 15
打印 上一主題 下一主題

[自給自足]萬用輸入法字(詞)庫轉換程式(適用 愛微輸入法 AiiType v1.x)

[複製鏈接]

17

主題

1

好友

1030

積分

該用戶從未簽到

文章
845
跳轉到指定樓層
1#
發表於 2011-1-13 21:39 |只看該作者 |倒序瀏覽
本文最後由 u329 於 2011-3-2 16:16 編輯

有鑑於 webOS v2.x 會移除Java支援,現有的 JustInput 可能無法移植過去,

對岸的作者五月,開發了愛微輸入法來因應此狀況。

自然愛微的官方版,也只會支援簡體文字的輸入~

後來 PIL 上有文章提供了許式字庫可讓愛微輸入繁體中文,

可惜就缺沒有詞庫,不然輸入會更方便。

因此,花了點時間,自製了 HSUConvert.exe 轉換程式,可搭配自訂的詞庫文字檔,轉換成愛微可用的資料庫~

=======================================================
將文末附件解壓縮到任意一個資料夾(ex: d:\HSU\  ),點選「開始 / 執行」,輸入 cmd 按下enter,開啟命令列模式,

執行該資料夾下的 HSUConvert ,便會出現程式的參數說明,如下圖:



預設程式已內含所有許氏字庫資料,若執行時直接使用 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 即可,如下圖:




=======================================================
文章中所提及的檔案, 都可在下方附件中找到,謝謝~

PS.程式是用 .NET + SQL Express 開發而成,所以最低需要安裝 .Net 2.x framework 及 SQL 2005 Express 才能執行

  下載 .Net 2.0 FrameWork  (Windows7 以後已有內建,不需安裝)
  下載 SQL 2005 Express 最新 SP3 版
  若想使用 GUI 介面來自行管理 SQL 資料庫,才需額外下載GUI管理工具

===首次發布===


===第一次更新===
使用者可自訂輸入法字庫,故不再只限於許氏注音,所以更名為 IMEConvert ,詳細更新內容請見 五樓


===第二次更新===
因為發現愛微的目前版本,若詞組的字數太長,候選字顯示時配置會亂掉,
故程式增加可限定只輸出指定字數(含)以下的詞組,詳細更新內容請見 六樓


===第三次更新===
程式用法不變,新增輸出愛微的Json詞組時,內容按照用字頻率為排列順序,詳細更新內容請見 九樓


===第四次更新===
增加輸出 webIME 詞組的輸出模式,產出符合webIME模組的 ime-code.js ,方便搭配這篇的自製網頁中文輸入法來使用

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?免費註冊

已有 2 人評分分享 互動 收起 理由
apibible + 3 + 1 厲害厲害!
kylekuo0926 + 5 + 1 不加分說不過去,雖然我嫌愛微選字不方便. ?

總評分: 分享 + 8  互動 + 2   查看全部評分

分享淘帖0 分享分享0 收藏收藏2 頂6 踩0
TrgPro => HE330(with CF wifi) => Zire71 => P168 => Treo650(在俄羅斯被偷了 >_< ) => P368 => Treo650二代 => Centro => palm pre plus => SE neo => hTC Titan => 小米2S
懶惰為發明之母 By 發胖的....北海小英雄

17

主題

1

好友

1030

積分

該用戶從未簽到

文章
845
2#
發表於 2011-1-13 22:06 |只看該作者
本文最後由 u329 於 2011-1-13 23:43 編輯

接下來,舉個實際範例讓大家參考~

01.自訂一個詞庫,檔名為 Test.txt ,內容很簡單,如下:
  

02.執行 HSUConvert phrase test.txt ,將詞庫匯入並轉換,如下:
  

03.由於此詞庫只會影響字母 x 開頭的字組,所以輸入  HSUConvert AiiType x  ,只輸出字母 x 開頭的愛微資料庫:
  

04.將產生的 imedatabase-x.json ,複製到手機的 /media/internal/.app-storage/AiitypeDatabase/  資料夾:
  

05.開啟愛微輸入法,即可進行輸入:
   

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?免費註冊

TrgPro => HE330(with CF wifi) => Zire71 => P168 => Treo650(在俄羅斯被偷了 >_< ) => P368 => Treo650二代 => Centro => palm pre plus => SE neo => hTC Titan => 小米2S
懶惰為發明之母 By 發胖的....北海小英雄
回復

使用道具 舉報

3

主題

0

好友

30

積分

該用戶從未簽到

文章
24
3#
發表於 2011-1-13 23:36 |只看該作者
哇哇,您動作真是快速啊.才不到一天就已經生出來了,大大感激 !!
回復

使用道具 舉報

17

主題

1

好友

1030

積分

該用戶從未簽到

文章
845
4#
發表於 2011-1-14 06:03 |只看該作者
本文最後由 u329 於 2011-1-14 06:07 編輯

預告一下,下一版程式會讓字庫變成也可自訂  [洋蔥012],

這樣的話,就變成萬用的輸入法轉換器。[洋蔥sweat]

而只要字庫的編碼是使用英文字母組成的,就都適用,

譬如字庫來源,改成 倉頡/嘸蝦米/倚天26 ....

則轉換出來的資料庫,就變成該輸入法專用的字詞庫,應用上更廣泛~ [洋蔥handshake]
TrgPro => HE330(with CF wifi) => Zire71 => P168 => Treo650(在俄羅斯被偷了 >_< ) => P368 => Treo650二代 => Centro => palm pre plus => SE neo => hTC Titan => 小米2S
懶惰為發明之母 By 發胖的....北海小英雄
回復

使用道具 舉報

17

主題

1

好友

1030

積分

該用戶從未簽到

文章
845
5#
發表於 2011-1-14 15:15 |只看該作者
本文最後由 u329 於 2011-1-14 18:35 編輯

第一次更新,程式更名為 IMEConvert ,附件 (IMEConvert_0114.zip) 請從一樓下載~

執行 IMEConvert 後,畫面如下:

  

比上一版的執行方式,多了 Word / Clear /Count 三種模式,後兩者功能單純,應該不必再解釋了。

而 [Word] 模式,可讓您自訂輸入法的字碼表來源,原則上只要是使用英文字母的輸入法都適用,

字碼表原則上是一行一個字,字碼與文字可用空白或是逗號區隔,程式會自動判斷,如下方的兩種方式都可以:

      

我有試過字碼表採用 倉頡 / 嘸蝦米 / 許氏 都可以,加上又可搭配自訂詞庫,輸入時真是有如神助阿~


附件內有含相關的 [字碼表] 及一個 [2500多句詞彙] 的範例文字檔,請各位自行參考,格式很簡單,應該很容易理解~

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?免費註冊

TrgPro => HE330(with CF wifi) => Zire71 => P168 => Treo650(在俄羅斯被偷了 >_< ) => P368 => Treo650二代 => Centro => palm pre plus => SE neo => hTC Titan => 小米2S
懶惰為發明之母 By 發胖的....北海小英雄
回復

使用道具 舉報

17

主題

1

好友

1030

積分

該用戶從未簽到

文章
845
6#
發表於 2011-1-14 18:33 |只看該作者
本文最後由 u329 於 2011-1-14 21:31 編輯

第二次更新,相關附件 (IMEConvert_0114-1.7z) 請從一樓下載~

此次更新,主要是發現了愛微的一個Bug。

那就是,因為候選字是以二維矩陣方式呈現,若同一頁的候選字的長短不一時,

有時就會出現錯亂的情況(如下圖),如果用鍵盤操作的話,

其實並不會影響游標移動和選字,但多少還是有些困擾~



但如果同頁的字元數量差異不大時,則又還好~

經過實驗,兩字的混合是最保險的,但成語大都是四字,如何取捨,就看各位能否接受畫面錯亂。



為了暫時配合此問題,程式增加了詞庫可限制詞組長度的功能,譬如 Phase 2 ,

代表只有詞組字數小於等於2 的詞組,才會被對應字碼:



=====================================
最後,說明一下,詞組對應字碼的程式處理原則:

原則上程式是取每個字的首碼,但一個詞組最多只取四碼,如下(以許氏注音為例):

[無][意][義] => [xee]
[當][頭][棒][喝] => [dtbh]
[巧][婦][難][為]無米之炊 => [vfnx]

而在後續產生愛微的 json 檔時,因為愛微取碼是用完全比對的方式,所以在生成 json 資料時,

程式會自動幫忙作重複輸出的動作,譬如上述的 [無][意][義] ,實際上會產生三筆資料,

即輸入  [x] 、 [xe] 、 [xee]  都可看到 [無意義] 出現在候選字區,

讓各位輸入最少的字碼,就能找到所需詞組~

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?免費註冊

TrgPro => HE330(with CF wifi) => Zire71 => P168 => Treo650(在俄羅斯被偷了 >_< ) => P368 => Treo650二代 => Centro => palm pre plus => SE neo => hTC Titan => 小米2S
懶惰為發明之母 By 發胖的....北海小英雄
回復

使用道具 舉報

3

主題

0

好友

30

積分

該用戶從未簽到

文章
24
7#
發表於 2011-1-17 23:30 |只看該作者
回覆 6# u329

  若是這樣的話,按照詞字數的數量來排序是不是有可能改善這種顯示的情況
回復

使用道具 舉報

17

主題

1

好友

1030

積分

該用戶從未簽到

文章
845
8#
發表於 2011-1-18 02:14 |只看該作者
這個我有想過,也試過,並不理想。因為若不是將同音字集中的話,除非你明確知道裡面有哪些詞,不然你也只能試著按下那詞的每字首碼,若槓龜的次數一多,你會寧可只用單字,不用詞。

我也試過,只在超過三字的詞組,於首字作重碼處理,藉以達到類似字數排序但兩字以內的詞彙仍集中顯示的效果,但也不是很適合~

所以,在愛微目前的配置下,我反而想朝字頻的方式,將常用字放在第一候選頁面,可能還比較實用。
由於愛微輸入時,並無自動學習詞頻功能,畢竟不像JustInput,runtime是以db方式存在,要實做自動學習也的確不太可能。

所以我目前是打算找教育部的常用字頻表,再輔以權重方式(使用者可在DB上自調)調整josn的字詞輸出次序~
TrgPro => HE330(with CF wifi) => Zire71 => P168 => Treo650(在俄羅斯被偷了 >_< ) => P368 => Treo650二代 => Centro => palm pre plus => SE neo => hTC Titan => 小米2S
懶惰為發明之母 By 發胖的....北海小英雄
回復

使用道具 舉報

17

主題

1

好友

1030

積分

該用戶從未簽到

文章
845
9#
發表於 2011-1-25 13:43 |只看該作者
本文最後由 u329 於 2011-1-25 13:46 編輯

第三次更新,相關附件 (IMEConvert_0125-1.7z) 請從一樓下載~

此次更新,主要是修改輸出愛微Json詞組時,輸出內容的排列順序。

實際作法,是在資料庫內加了 WordFreq 的資料表,

裡面內建了教育部發表的常用字的使用頻率(如圖,數字愈大代表使用愈頻繁,可自行調整內容以符合個人需求)



則使用本程式輸出Json資料時,程式會加權參考此頻率表,頻率愈高的輸出順序會愈往前,

若參考不到,或是頻率相同時,則以筆劃數為輸出順序~

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?免費註冊

已有 1 人評分分享 收起 理由
neosubway + 5 揪感心~~~

總評分: 分享 + 5   查看全部評分

TrgPro => HE330(with CF wifi) => Zire71 => P168 => Treo650(在俄羅斯被偷了 >_< ) => P368 => Treo650二代 => Centro => palm pre plus => SE neo => hTC Titan => 小米2S
懶惰為發明之母 By 發胖的....北海小英雄
回復

使用道具 舉報

17

主題

1

好友

1030

積分

該用戶從未簽到

文章
845
10#
發表於 2011-2-21 10:07 |只看該作者
本文最後由 u329 於 2011-2-21 10:09 編輯

因為有網友建議,故提供一些已經轉好的字(詞)庫,方便大家直接取用。

下面附件,擇一解壓縮到手機的 /media/internal/.app-storage/AiitypeDatabase 資料夾後即可使用。

1.許氏字庫,純只有單字的字庫。
  

2.許氏字(詞)庫,除單字外,還包含兩字以下的詞組。
  

3.倉頡字庫,純只有單字的字庫。
  

4.倉頡字(詞)庫,除單字外,還包含兩字以下的詞組。
  

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?免費註冊

已有 1 人評分分享 互動 收起 理由
DukeLiu + 5 + 1 有倉頡輸入, 10分感謝! 嗯~~抱歉我積分上限

總評分: 分享 + 5  互動 + 1   查看全部評分

TrgPro => HE330(with CF wifi) => Zire71 => P168 => Treo650(在俄羅斯被偷了 >_< ) => P368 => Treo650二代 => Centro => palm pre plus => SE neo => hTC Titan => 小米2S
懶惰為發明之母 By 發胖的....北海小英雄
回復

使用道具 舉報

17

主題

1

好友

1030

積分

該用戶從未簽到

文章
845
11#
發表於 2011-2-22 15:46 |只看該作者
參考了這篇,裡面有倚天26的碼表,如法炮製出相關字(詞)庫如下:

1.倚天26對照表
  

2.倚天26字庫,純只有單字的字庫。
  

3.倚天26字(詞)庫,除單字外,還包含兩字以下的詞組。
  

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?免費註冊

已有 1 人評分分享 收起 理由
TsuNaMi + 10 有ET26當然要加分,感恩 XDDDD

總評分: 分享 + 10   查看全部評分

TrgPro => HE330(with CF wifi) => Zire71 => P168 => Treo650(在俄羅斯被偷了 >_< ) => P368 => Treo650二代 => Centro => palm pre plus => SE neo => hTC Titan => 小米2S
懶惰為發明之母 By 發胖的....北海小英雄
回復

使用道具 舉報

17

主題

1

好友

1030

積分

該用戶從未簽到

文章
845
12#
發表於 2011-3-3 14:58 |只看該作者
第四次更新,相關附件 (IMEConvert_0301-1.7z) 請從一樓下載~

此次更新,是增加輸出 webIME 詞組的輸出模式,產出符合webIME模組的 ime-code.js ,

方便搭配這篇的自製網頁中文輸入法來使用

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?免費註冊

TrgPro => HE330(with CF wifi) => Zire71 => P168 => Treo650(在俄羅斯被偷了 >_< ) => P368 => Treo650二代 => Centro => palm pre plus => SE neo => hTC Titan => 小米2S
懶惰為發明之母 By 發胖的....北海小英雄
回復

使用道具 舉報

0

主題

0

好友

2

積分

該用戶從未簽到

文章
3
13#
發表於 2011-4-7 15:36 |只看該作者
請問有沒有速成版, 謝謝
回復

使用道具 舉報

14#
無效樓層,該帖已經被刪除

17

主題

1

好友

1030

積分

該用戶從未簽到

文章
845
15#
發表於 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 ,是不同的東西,結構完全不同,目前作者還沒釋出詞庫規格,所以我也沒法製作相關轉換程式~
TrgPro => HE330(with CF wifi) => Zire71 => P168 => Treo650(在俄羅斯被偷了 >_< ) => P368 => Treo650二代 => Centro => palm pre plus => SE neo => hTC Titan => 小米2S
懶惰為發明之母 By 發胖的....北海小英雄
回復

使用道具 舉報

19

主題

0

好友

101

積分

  • TA的每日心情
    郁悶
    2011-5-2 13:05
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

    文章
    133
    16#
    發表於 2011-5-4 17:01 |只看該作者
    請問哪裡可以下載到 「新酷音的 tsi.src  」?

    找到了三交網友的網頁,但是連結的檔案已經失效了。
    --
    Pre 3 服役中,主力機。
    Pre 2 服役中,兒童遊戲機。
    Centro 服役中,出差專用機,TAKEphONE太好用。
    回復

    使用道具 舉報

    您需要登錄後才可以回帖 登錄 | 免費註冊

    與站長聯繫| PALMisLIFE 掌上生活      下載:更快、更棒、更好玩

    GMT+8, 2024-11-16 10:06 , Processed in 0.124371 second(s), 46 queries , Gzip On.

    Powered by Discuz!

    © 2001-2012 Comsenz Inc. style by eisdl

    回頂部