找回密碼
 註冊

QQ登錄

只需一步,快速開始

搜索
熱搜: 活動 交友 discuz
樓主: 佛振

[輸入法] Windows下揮毫 中州韻輸入法引擎

[複製鏈接]
發表於 2010-9-11 00:42:49 | 顯示全部樓層
xiss,
你可先改一下 7 options to 9 options.
我在第二頁有講點做。
 樓主| 發表於 2010-9-11 14:28:26 | 顯示全部樓層
弓辰兄:

可否開放 一下 你的 google 開發 網,
給有志 加入新方案的人士 可以
分享一些 檔案 及 經驗。 ...
thhui 發表於 2010-9-10 23:59



    google code做不到對所有人開放,不過如thhui兄這樣活躍的用戶,可以列為項目開發人員,從而取得提交代碼的權限。
    看來重寫新的核心算法之前,最好先完成「在線編輯輸入方案」的工具。我已經開始做設計。
發表於 2010-9-11 14:50:39 | 顯示全部樓層
本帖最後由 thhui 於 2010-9-11 18:19 編輯

xiss,
你的通用拼音方案已做好。
不過有個地方有多少問題要探討一下。
yu=ü=u=v
但 v 不能穿衣戴帽,

在拼寫 拉丁字母出現問題。
用ü 則 u 上已有兩點,

和現在的penkyamp 六聲標記撞。

你的通拼方案實際上90%以上跟足 粵拼,都沒有可改的地方了。
實際 只有 y - j 的分野!

tungping.txt

  1. # ZIME Schema v3
  2. Schema = tungping
  3. DisplayName = 粵語通用拼音
  4. Dict = jyutping
  5. Parser = roman
  6. AutoPrompt = yes
  7. AutoDelimit = yes
  8. Predict = yes
  9. Delimiter = [ ']
  10. MaxKeywordLength = 6
  11. # Useful in version 20100904+
  12. MappingRule = ^(.+)\d$ \1
  13. FuzzyRule = aa$ a
  14. FuzzyRule = a$ aa
  15. FuzzyRule = yu v
  16. FuzzyRule = yu u
  17. SpellingRule = ^j y
  18. # 簡拼
  19. FuzzyRule = ^(ng).+$ \1
  20. FuzzyRule = ^([a-z]).+$ \1
  21. # 兼容拼寫形式
  22. #AlternativeRule = ^j z
  23. #AlternativeRule = ^([gk])u([aeo]) \1w\2
  24. #SplitRule = [bdgptkmnyw]$ ^[aeiou]
  25. #SplitRule = [ptkmngh]$ ^[aeiou]
  26. # punctuation
  27. Punct = , ,
  28. Punct = . 。
  29. Punct = < 《 〈
  30. Punct = > 》 〉
  31. Punct = / /
  32. Punct = ? ?
  33. Punct = ; ;
  34. Punct = : :
  35. Punct = ' 『~』
  36. Punct = " 「~」
  37. Punct = \ 、
  38. Punct = | |
  39. Punct = ` `
  40. Punct = ~ ~
  41. Punct = ! !
  42. Punct = @ @
  43. Punct = # #
  44. Punct = % %
  45. Punct = $ ¥
  46. Punct = ^ ……
  47. Punct = & &
  48. Punct = * *
  49. Punct = ( (
  50. Punct = ) )
  51. Punct = - -
  52. Punct = _ ——
  53. Punct = + +
  54. Punct = = =
  55. Punct = [ 「 【 [
  56. Punct = ] 」 】 ]
  57. Punct = { 『 {
  58. Punct = } 』 }
  59. # edit keys
  60. #EditKey = bracketleft Left
  61. #EditKey = bracketright Right
  62. EditKey = minus Up
  63. EditKey = equal Down
  64. EditKey = comma Page_Up
  65. EditKey = period Page_Down
  66. EditKey = I Up
  67. EditKey = K Down
  68. EditKey = J Left
  69. EditKey = L Right
  70. EditKey = U Page_Up
  71. EditKey = O Page_Down
  72. EditKey = H Home
  73. EditKey = N End
  74. EditKey = P Escape
複製代碼


把上面的內容儲成 tungping.txt
放在 c:\weasel\data\ 內.

跟著
自造一個
populate_db_tp.bat 放在 c:\weasel\data\ 內
內容如下:-
call ..\uninstall.bat
call ..\install.bat
call ..\env.bat
create-schema.py -v tungping.txt
pause

就可以click this populate_db_tp.bat
安裝 粵語通用拼音方案 了。
發表於 2010-9-11 19:08:45 | 顯示全部樓層
xiss,
xiss,
你的通用拼音方案已做好。
不過有個地方有多少問題要探討一下。
yu=ü=u=v
但 v 不能穿衣戴帽,

在拼寫 拉丁字母出現問題。
用ü 則 u 上已有兩點,

和現在的penkyamp 六聲標記撞。

你的通拼方案實際上90%以上跟足 粵拼,都沒有可改的地方了。
實際 只有 y - j 的分野!
thhui 發表於 2010-9-11 14:50

喺呢道我要超級多謝thhui兄,幫我造出通用拼音嘅碼表,好多謝你啊~~

關於v穿衣戴帽同埋與Penkyamp六聲標調嘅問題,由於我設計通用拼音嘅時候認為數字標調始終係主流,就冇喺字母設置上考慮到六聲符號標調嘅問題,所以同Penkyamp嘅六聲標調衝撞問題,實在係當時我始料未及嘅,既然宜家出現咗,噉我目前就為通拼諗咗如下兩個臨時解決方案:

1.ü標調嗰時,不妨將ü改寫成yu,符號標喺u上面
2.考慮另外設計一套不同於Penkyamp標調嘅符號(不過感覺呢個解決方案更加唔現實)

下面想請教一下你寫嘅嗰份「通拼碼表」,我想瞭解一下一啲行嘅意思
  1. # ZIME Schema v3
  2. Schema = tungping
  3. DisplayName = 粵語通用拼音
  4. Dict = jyutping
  5. Parser = roman
  6. AutoPrompt = yes
  7. AutoDelimit = yes
  8. Predict = yes
  9. Delimiter = [ ']
  10. MaxKeywordLength = 6
  11. # Useful in version 20100904+
  12. MappingRule = ^(.+)\d$ \1
  13. FuzzyRule = aa$ a
  14. FuzzyRule = a$ aa
  15. FuzzyRule = yu v
  16. FuzzyRule = yu u
  17. SpellingRule = ^j y
  18. # 簡拼
  19. FuzzyRule = ^(ng).+$ \1
  20. FuzzyRule = ^([a-z]).+$ \1
  21. # 兼容拼寫形式
  22. #AlternativeRule = ^j z
  23. #AlternativeRule = ^([gk])u([aeo]) \1w\2
  24. #SplitRule = [bdgptkmnyw]$ ^[aeiou]
  25. #SplitRule = [ptkmngh]$ ^[aeiou]
  26. # punctuation
  27. Punct = , ,
  28. Punct = . 。
  29. Punct = < 《 〈
  30. Punct = > 》 〉
  31. Punct = / /
  32. Punct = ? ?
  33. Punct = ; ;
  34. Punct = : :
  35. Punct = ' 『~』
  36. Punct = " 「~」
  37. Punct = \ 、
  38. Punct = | |
  39. Punct = ` `
  40. Punct = ~ ~
  41. Punct = ! !
  42. Punct = @ @
  43. Punct = # #
  44. Punct = % %
  45. Punct = $ ¥
  46. Punct = ^ ……
  47. Punct = & &
  48. Punct = * *
  49. Punct = ( (
  50. Punct = ) )
  51. Punct = - -
  52. Punct = _ ——
  53. Punct = + +
  54. Punct = = =
  55. Punct = [ 「 【 [
  56. Punct = ] 」 】 ]
  57. Punct = { 『 {
  58. Punct = } 』 }
  59. # edit keys
  60. #EditKey = bracketleft Left
  61. #EditKey = bracketright Right
  62. EditKey = minus Up
  63. EditKey = equal Down
  64. EditKey = comma Page_Up
  65. EditKey = period Page_Down
  66. EditKey = I Up
  67. EditKey = K Down
  68. EditKey = J Left
  69. EditKey = L Right
  70. EditKey = U Page_Up
  71. EditKey = O Page_Down
  72. EditKey = H Home
  73. EditKey = N End
  74. EditKey = P Escape
複製代碼


aa同a嘅處理問題

我唔係好明白13、14行係麼嘢意思,

因為通拼嚟講,應該係噉:
單元音韻母嘅aa嘅情況下,aa同a都通用,即係ba、baa,ka、kaa呢類拼音,喺通拼裏面係等同嘅
但係如果唔係單元音韻母,而係跟咗韻尾嘅話,例如aan、an呢兩個韻母就唔通用嘞,例如輸入saan就唔等同輸入san嘞。

如果要想實現以上效果,應該點樣寫代碼?

我留意到嗰兩行代碼係:
  1. FuzzyRule = aa$ a
  2. FuzzyRule = a$ aa
複製代碼


如果冇理解錯,FuzzyRule應該係指兩個拼式互相通用,噉豈不是aa同a搞混咗?即係我輸入saan都同輸入san一樣?


跟住係有關ü、yu、v嘅處理問題

通拼嚟講,ü行韻母喺同y之外嘅聲母相拼時,要寫成ü,例如süt,噉喺去到拼音輸入嘅情況下,我希望好似漢語拼音輸入噉,用v代ü,即係輸入svt就得嘞
而同聲母y相拼嘅時候,可以簡寫成u,例如yut,噉喺拼音輸入嘅情況下,我就希望去無論輸入yvt以後yut,都可以得到粵拼裏面Jyut音節嘅漢字

我留意到thhui嘅代碼:
  1. FuzzyRule = yu v
  2. FuzzyRule = yu u
複製代碼


我唔知有冇理解錯,呢段代碼我覺得佢嘅意思係用粵拼裏面嘅yu可以用v、u表示,噉但係,我唔希望輸入sut都可以得到syut嘅音節,只希望svt嚟到得到syut嘅音節。所以我唔知道呢段代碼噉樣寫有冇紕漏咯。
發表於 2010-9-11 19:22:46 | 顯示全部樓層
xiss,
你的通用拼音方案已做好。
不過有個地方有多少問題要探討一下。
yu=ü=u=v
但 v 不能穿衣戴帽,

在 ...
thhui 發表於 2010-9-11 14:50

唔得啊,我copy咗你嗰段代碼做咗一個bat文件之後,殊不知我一運行呢個bat之後,就係閃咗一下命令提示符嘅框,跟住麼都冇變到。

PS:我嘅weasel文件夾放喺D盤
發表於 2010-9-11 19:32:07 | 顯示全部樓層
本帖最後由 thhui 於 2010-9-11 19:42 編輯

xiss,

這麼 細緻 的劃分 其實對輸入法
的表現是 沒有多少差別。

你也不會見到很多例外字。
yu=u 這個情形 是會在 g 聲母 才會撞。 ( eg. s 沒有 soot, 只有 syut)

aa$ = a$ 其實不會有分別,
haa=ha 兩者兼容。
haan<>han

$ 代表 行尾!
你試試 實際 操作 才給我反映一下。
發表於 2010-9-11 19:39:26 | 顯示全部樓層
回覆 86# thhui

唔得啊,我copy咗你嗰段代碼做咗一個bat文件之後,殊不知我一運行呢個bat之後,就係閃咗一下命令提示符嘅框,跟住麼都冇變到。

PS:我嘅weasel文件夾放喺D盤
發表於 2010-9-11 19:45:13 | 顯示全部樓層
本帖最後由 thhui 於 2010-9-11 19:53 編輯

populate_db_tp.bat
一定要 放在 c:\weasel\data\  or d:\weasel\data 內
一定要令它找到 env.bat, uninstall.bat and install.bat

內容如下:-
call ..\uninstall.bat
call ..\install.bat
call ..\env.bat
create-schema.py -v tungping.txt
pause

另外,populate_db_tp.bat 要和 tungping.txt 放在同 一個 folder  d:\weasel\data or c:\weasel\data
發表於 2010-9-11 22:08:41 | 顯示全部樓層
populate_db_tp.bat
一定要 放在 c:\weasel\data\  or d:\weasel\data 內
一定要令它找到 env.bat, uninst ...
thhui 發表於 2010-9-11 19:45


我已經完全按照thhui你的吩咐,把bat放在d:\weasel\data,結果就是出現了「命令提示符一閃而過的,然後什麽都沒生效」的情況。
無法導入thhui你給我的那份通拼碼表。

我用的系統是WIN XP
 樓主| 發表於 2010-9-11 22:53:07 | 顯示全部樓層
回覆 89# xiss


    抱歉,今天去觀《盜夢空間》,來晚了。

仿造 populate_db.bat 就中,不必重新執行 uninstall.bat / install.bat,只消在寫 create-schema.py 之前調用過 stop_service 就沒事啦。
如果腳本一閃而過,在最末添一句 pause,可以看到錯誤信息。
發表於 2010-9-11 23:19:09 | 顯示全部樓層
populate_db_tp.bat
一定要 放在 c:\weasel\data\  or d:\weasel\data 內
一定要令它找到 env.bat, uninst ...
thhui 發表於 2010-9-11 19:45

thhui,你是怎樣生成這個BAT文件㗎?用記事本嗎?
發表於 2010-9-12 04:40:58 | 顯示全部樓層
bat file 一般都是文字檔,, 我用 emeditor 編緝。
(emeditor 比 notepad 好用得多!)

你可以參照 現有的 install.bat 的格式。

tungping.txt 也是文字檔,內有中文字,要儲成 utf-8 格式。
發表於 2010-9-12 11:31:45 | 顯示全部樓層
bat file 一般都是文字檔,, 我用 emeditor 編緝。
(emeditor 比 notepad 好用得多!)

你可以參照 現有的 i ...
thhui 發表於 2010-9-12 04:40

謝了,原來我之前多次載入碼表失敗,是因為我用咗記事本(notepad,用中文)寫Tungping.txt。

後來我改用Editplus嚟到編寫Tungping.txt(編碼UTF-8),問題已經解決,成功載入咗通拼嘅碼表嘞
發表於 2010-9-12 11:57:35 | 顯示全部樓層
我認為,今後我們應該協助佛振完善「小狼毫」的一些細節工作,諸如:介面設計、功能鍵設置 等等,儘快完成第一個正式版的小狼毫,儘早發佈。

同時,我想我們可不可以在征得佛振的同意下,寫一份較為簡易的「自定義拼音碼表」編寫指南,供更多有自己喜愛方案的人用上自己的拼音在「小狼毫」平臺上打字呢?

這樣的話,可以吸引更多拼音方案設計者率先成為第一批「小狼毫」的試用者(內測),這樣就可以讓佛振兼收各方面的意見,不斷完善「小狼毫」。在完善工作完成之後,再由各方案的設計者自行打包(在佛振指導下打包)含有自己所用拼音方案碼表的「公測版小狼毫」,然後再提供給普通使用者(終端用戶)使用,然後我們再協助佛振收集整理各方使用者的反饋意見,交給佛振繼續修繕。

最後定型出正式版的「小狼毫」,正式發佈,供各界方言使用者用上自己的「方言拼音小狼毫輸入法」。

以上是我的構想。。。
發表於 2010-9-12 13:40:25 | 顯示全部樓層
這個構想不錯,
不過 自定義拼音碼表 不是那麼容易寫成。
我試丁很久才摸出一定的規則,
要學會 regexp(正則) 的人才會有足夠經驗應付!
發表於 2010-9-14 13:45:11 | 顯示全部樓層
根據 Desmond 兄所訂定的初稿,
我完成了
這個粵語羅馬字方案的 setup file
yuetlo.txt

就贈所有 有意去用 粵語羅馬字方案的 人士 去體驗一下新的中州韻輸入法平臺 weasel.

yuetlo.txt 的內容如下:-

   1. # ZIME Schema v3
   2. Schema = yuetlo
   3. DisplayName = 粵語羅馬字方案
   4. Dict = jyutping
   5. Parser = roman
   6. AutoPrompt = yes
   7. AutoDelimit = yes
   8. Predict = yes
   9. Delimiter = [ ']
  10. MaxKeywordLength = 6
  11. MappingRule = ^(.+)\d$ \1
  12. FuzzyRule = aa$ a
  13. FuzzyRule = a$ aa
  14. SpellingRule = yu ue
  15. #SpellingRule = oe eo
  16. SpellingRule = oe$ eo
  17. SpellingRule = oeng$ eong
  18. SpellingRule = eu$ eau
  19. SpellingRule = eoi$ eui
  20. SpellingRule = eon$ eun
  21. SpellingRule = eot$ eut
  22. SpellingRule = ^j y
  23. SpellingRule = ^z j
  24. # 簡拼
  25. FuzzyRule = ^(ng).+$ \1
  26. FuzzyRule = ^([a-z]).+$ \1
  27. # 兼容拼寫形式
  28. FuzzyRule = ^c ch
  29. #AlternativeRule = ^([gk])u([aeo]) \1w\2
  30. #SplitRule = [bdgptkmnyw]$ ^[aeiou]
  31. #SplitRule = [ptkmngh]$ ^[aeiou]
  32. # punctuation
  33. Punct = , ,
  34. Punct = . 。
  35. Punct = < 《 〈
  36. Punct = > 》 〉
  37. Punct = / /
  38. Punct = ? ?
  39. Punct = ; ;
  40. Punct = : :
  41. Punct = ' 『~』
  42. Punct = " 「~」
  43. Punct = \ 、
  44. Punct = | |
  45. Punct = ` `
  46. Punct = ~ ~
  47. Punct = ! !
  48. Punct = @ @
  49. Punct = # #
  50. Punct = % %
  51. Punct = $ ¥ €
  52. Punct = ^ ……
  53. Punct = & &
  54. Punct = * *
  55. Punct = ( (
  56. Punct = ) )
  57. Punct = - -
  58. Punct = _ ——
  59. Punct = + +
  60. Punct = = =
  61. Punct = [ 「 【 [
  62. Punct = ] 」 】 ]
  63. Punct = { 『 {
  64. Punct = } 』 }
  65. # edit keys
  66. #EditKey = bracketleft Left
  67. #EditKey = bracketright Right
  68. EditKey = minus Up
  69. EditKey = equal Down
  70. EditKey = comma Page_Up
  71. EditKey = period Page_Down
  72. EditKey = I Up
  73. EditKey = K Down
  74. EditKey = J Left
  75. EditKey = L Right
  76. EditKey = U Page_Up
  77. EditKey = O Page_Down
  78. EditKey = H Home
  79. EditKey = N End
  80. EditKey = P Escape

複製代碼


Setup 中州韻平臺的祥細方法 請到佛振的 google website 看一下。

ps:-
我也分享裝上小狼毫20100904版的簡單程序

先到以下網頁
http://code.google.com/p/zime/downloads/list

Download weasel-preview-20100904.zip 【小狼毫】預覽版 20100904
Download python-2.7.msi

Extract weasel--preview-20100904.zip to c:\weasel
Copy phthon-2.7.msi to c:\weasel

Click
c:\weasel\install.bat
 樓主| 發表於 2010-9-14 14:05:38 | 顯示全部樓層
我只提醒一點,大家都是以相同的粵語音系為基礎設計拼寫法,且與jyutping公用一部辭典,千萬慎用MappingRule及FuzzyRule,因為他們會影響到辭典中的索引編碼。
以下兩條規則是有錯的,aa會被擴展成aaa:
  12. FuzzyRule = aa$ a
  13. FuzzyRule = a$ aa
發表於 2010-9-14 14:24:23 | 顯示全部樓層
Quote from Xiss

是的,写出更多粤语拼音方案的转换码表,让更多方案制定者用上「小狼毫」来打字,必能促使更多人参与「小狼毫」的内测,提高「小狼毫」的知名度,这肯定更有利于「小狼毫」的开发和完善。

但我也想,与其为各方案都写一份转换表,倒不如尽快写一份有关转换码表编写的简易指南,让更多方案制定者、使用者学会,然后发挥他们的主动性,让他们自行编写自己心仪方案的码表来放到「小狼毫」平台上运用,这岂不会让更多人更积极地试用上「小狼毫」、更有利于「小狼毫」的开发?!

所谓「授之以鱼,不如授之以渔」,我认为这份《指南》是关键,想尽快搞出这份指南。

可惜最近要离家一段时间,离家在外没有自己电脑,上粤协的频率也大大减少了,更不方便开展这类工作了,所以打算中秋返家后再投入《指南》的起稿工作。
但我不敢过分乐观,我是一个编程菜鸟,对于编码表也只是刚刚看得出点眉目,但依然未搞懂其中很多的代码行和符号的用法。而中秋三日过后我又立即要被繁琐的学业缠住了。

所以要在短短三日内完成对整个码表的理解消化并用自己的语言重新写一份简明易懂的《指南》出来,我恐力有不逮。

其实thhui你有相当的电脑基础,并且已读懂码表一段时间,何不征求一下佛振对编写《指南》的意见,尝试写份指南出来!?

我则利用中秋国庆假期也写份指南出来,再跟thhui你的互相借鉴参考一下,最后合稿。
二人合力,不就能尽快写出一份最为简明易懂的《指南》来了?!


xiss,

真的不敢當,我的電腦知識也不是真的很廣,只是個業餘進修及愛好電腦者。

編寫方案是為了鍛鍊及測試,等多一些人給予意見。
我也不知寫得好不好。

就如我給你寫的方案你也不是那麼滿意啊!

受自己的知識及智慧所限,不敢說明白了zime spelling algebra 代碼的真義。
我對regexp正則的編寫都是初哥一名。

很多輸入法的編程引用了regexp 我也不能理解。
所以,都是一句,慢慢來吧!

我現在是不斷學習,copy and paste, 改些少我能改的,再測試,試過OK才敢拿出來,不過也不能說是完美!用得到、過得去已算萬幸了!
發表於 2010-9-14 14:27:31 | 顯示全部樓層
我只提醒一點,大家都是以相同的粵語音系為基礎設計拼寫法,且與jyutping公用一部辭典,千萬慎用MappingRul ...
佛振 發表於 2010-9-14 14:05


感謝弓辰 兄 指正!
發表於 2010-9-14 15:28:33 | 顯示全部樓層
弓辰兄,

改成這樣行嗎?

FuzzyRule=aa$ a
FuzzyRule=([b-z])a$ \1aa
FuzzyRule=^a$ aa
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

Archiver|手機版|粵語協會

GMT+8, 2024-4-20 07:45 , Processed in 0.059109 second(s), 18 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回復 返回頂部 返回列表