8000 2.0更新 by archerindigo · Pull Request #6 · rime/rime-array · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

2.0更新 #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Aug 24, 2021
Merged

2.0更新 #6

merged 10 commits into from
Aug 24, 2021

Conversation

archerindigo
Copy link
Contributor
@archerindigo archerindigo commented Aug 14, 2021

新增

  • 實現行列官方w+數字符號組輸入方式
  • 新增行列詞彙輸入功能
  • 新增CJK Ext-G及補充一些Unicode非擴展區的CJK字符鍵碼
    • 參照老刀gcin鍵碼表0.71版(該碼表乃行列輸入法發明人廖明德先生於近期更新,老刀代為編譯及發佈)
  • 新增粵拼反查行列功能(以=鍵啟動)

更改

  • 取消Q-P的符號組替代方案
  • 字碼分隔鍵由'改為\
  • 消除顯示逐鍵提示前綴~
  • 字碼庫取消使用八股文詞彙表,因其於本方案中實際作用不大而且耗費大量儲存空間
  • Emoji碼表檔名改為array30_emoji.dict.yaml

修正

  • 修正鍵碼表中少量重碼
  • 修正「活動」類Emoji所使用的提示符號

@archerindigo
Copy link
Contributor Author

特別感謝 @oniondelta 提供修改靈感,只是特別碼和簡碼的部份會破壞萬用字符功能,而且實現方式似乎比較取巧,故暫不採用。

@LEOYoon-Tsaw
Copy link
Member

Rime自帶方案不求大而全,只求小而精。建議你單獨做爲獨立的方案發佈。

@archerindigo
Copy link
Contributor Author
archerindigo commented Aug 14, 2021

Rime自帶方案不求大而全,只求小而精。建議你單獨做爲獨立的方案發佈。

那請界定什麼程度才是小而精,什麼地方現時做過份了?現時除了v1.1新加入的Emoji輸入和舊版本身已支援的反查功能外,我所作的所有更新都是旨在重建官方行列輸入法原生的功能和輸入規則,不是什麼天馬行空的設定。也正是Rime行列方案一直以來過份偏離官方的輸入規則和缺乏其應有的功能以致一直沒有什麼人願意使用。

至於應該做為獨立方案發佈的問題,其實我也想過。以我所見rime/rime-array只是host在rime官方github project內,但其實沒有一個平台是自帶這個方案的。而且現時基本只有我在嘗試維護,卻又沒有repo的管理權限,更新和發佈說明文檔都十分不方便。長遠而言或許我另外建立repo自行開發和發佈會好,要是我的更新不被接納我也只好這樣做。

另外想問如果我現在做的已經被認為是偏離Rime自帶方案方針的話,那麼粵拼(rime/rime-cantonese)那邊又是怎麼一回事呢?那邊似乎有一支獨立的開發團隊,不斷有頻繁的更新、更有自己獨立的安裝包,還有自己的用家網絡,程度已遠超我現時所作的吧?

@LEOYoon-Tsaw
Copy link
Member
  1. 不要單獨放一份獨特的詞典
  2. 不要做一份獨特的Emoji
  3. 不要依賴不內置的jyut6ping3反查

@archerindigo
Copy link
Contributor Author
1. 不要單獨放一份獨特的詞典

2. 不要做一份獨特的Emoji

3. 不要依賴不內置的jyut6ping3反查

行列有其標準的詞彙輸入規則和一套6萬多詞的官方詞庫,新行列30詞庫多出的11萬詞則是額外定義,假若都不保留,其實也可以用encoder將取詞規則套用到八股文的詞庫。用八股文的話是少了一個詞庫,卻也不包含全部官方詞彙,用家亦需要額外安裝八股文,另外詞彙似乎會被推到候選的前列,要另行處理。

粵拼不是內置所以不應提供反查這個可以接受,不過其實八股文、emoji suggestion也不是各平台內置,那是不是連這些功能也不應該在任何官方方案上提供呢?

先前兩次更新都是由 @lotem 審核,這次更新應否被接納,已接納的Emoji輸入應否取消由他定奪比較好。

特別感謝 @oniondelta 提供修改靈感,只是特別碼和簡碼的部份會破壞萬用字符功能,而且實現方式似乎比較取巧,故暫不採用。

雖說有特別感謝,還是要說一下,不太喜歡你用「取巧」這個詞!寧可你說「奇淫技巧」XD
當初看洋洋灑灑寫了一堆,一看幾乎都能解決,心血來潮寫了一個方案來證明,來證明不用寫那麼多XD
另再報一個「奇淫技巧」,如果說破壞萬用字符功能,何不掛接一個萬用字符專用的副方案呢?!

建議要齊全的功能,就新開一個 repo 吧!
也覺得官方自帶方案不要太複雜!
獨立一個 repo 又可帶入 Lua 這個大殺器!

你做的那個特別碼和簡碼功能其實也不單只是有提到的問題,另外它也導致三碼以上字可以空白鍵直接上屏,兩碼字重碼按空白鍵後卻要用數字鍵選字的問題,令輸入模式不一致容易被卡住,所以還要仔細研究和改善,不敢輕易套用。

我不旨在做個性化的方案,也不希望搞得太複雜,或者你可以說我要簡而全,想改善這個本來殘缺不堪的Rime行列,使它適合普羅大眾安裝使用,所以作出的修改都pr來這裡而沒有另開repo,而我自己另外有一些私人的設定和lua script也沒有推上來了,自問其實已經十分保守。

@archerindigo
Copy link
Contributor Author
archerindigo commented Aug 15, 2021

你做的那個特別碼和簡碼功能其實也不單只是有提到的問題,另外它也導致三碼以上字可以空白鍵直接上屏,兩碼字重碼按空白鍵後卻要用數字鍵選字的問題,令輸入模式不一致容易被卡住,所以還要仔細研究和改善,不敢輕易套用。
我不旨在做個性化的方案,也不希望搞得太複雜,或者你可以說我要簡而全,想改善這個本來殘缺不堪的Rime行列,使它適合普羅大眾安裝使用,所以作出的修改都pr來這裡而沒有另開repo,而我自己另外有一些私人的設定和lua script也沒有推上來了,自問其實已經十分保守。

當初仿香草輸入法上的行列,它就是這樣出字的!「個性化」?!
要改成按空白,不管幾碼直接上屏或全都不直接上屏,舉一反三,很容易實現!
要簡單,w+\d 符號,也可不用掛接額外方案實現!
不是說這邊給的方案就是最好,一定要套用那個方式,
只是你抱怨的東西大都輕易可以實現!

我無任何批評你的意思。你是十分熟悉rime的人,要做什麼功能你都可以輕易地用各種技巧實現,只是一些地方我有所保留暫不進一步探討或修改,更何況現在已被指修改過多。
由始至終我的主旨都是提出什麼修改適合放到這裡這一問題,我只是提出應該將行列官方已定義的輸入規則和重要的功能儘量還原和納入到這裡此一意見,要是不同意那就作罷一切維持原狀,就是這麼簡單。

@LEOYoon-Tsaw
Copy link
Member

搞大而全的東西責任很大的。你加了emoji,那每年emoji更就你都得來更新一次;你加了詞庫,以後每年你都要更新最新的詞。而無法從八股文更新和專門的emoji方案更新中受益。
你開了個大鋪子,你就得負責到底,但這毫無必要,我也不相信你會做到。

@archerindigo
Copy link
Contributor Author

我搞了emoji鍵碼,就預定了會負責持續更新,甚至我也提出過將這套emoji鍵碼改為獨立的輸入方案,只是現時沒有需求就沒有實行。
那個詞庫,是行列官方定義了數十年的詞彙取碼,本來就沒有持續更新。假如要與時並進持續更新的話將詞彙輸入功能掛在八股文我是沒有異議的,我剛才提出的問題是實行上可能要考慮和處理的地方,以及原則上如rime-array這些所謂自帶方案是否不應該提供與那些既是rime project的一部份卻又沒有在各平台沒內置的,包括八股文、emoji suggestion、粵拼相依賴的功能。

@lotem
Copy link
Member
lotem commented Aug 17, 2021

繪文字如果是有獨家的取碼方式,那也不妨帶上碼表,只要保持碼表獨立我看就中。

粵拼反查需要嘛?
行列輸入法是不是主要在臺灣島流行,我想如果兩者的用戶羣體大面上沒有重合就不必配置粵拼反查。

另外,可以考慮後續更新時按照功能細粒度地提交(git commit),可以方便用家自定義時組合自選功能重組配置。這樣即便代碼庫包含衆多功能,可定製性也會提高。

@archerindigo
Copy link
Contributor Author

繪文字如果是有獨家的取碼方式,那也不妨帶上碼表,只要保持碼表獨立我看就中。

繪文字取碼方式是我自己定義的(說明),碼表也是獨立檔案array30.emoji.dict.yaml,只是沒有製作成獨立方案。

粵拼反查需要嘛?
行列輸入法是不是主要在臺灣島流行,我想如果兩者的用戶羣體大面上沒有重合就不必配置粵拼反查。

的確行列用家現時主要以臺灣人為主,我當初加粵拼的動機是粵拼屬RIME比較熱門的方案,自己亦有興趣將行列向粵語用家推廣,所以覺得值得加入。如認為不適合,不加入粵拼反查也不是問題。

另外,可以考慮後續更新時按照功能細粒度地提交(git commit),可以方便用家自定義時組合自選功能重組配置。這樣即便代碼庫包含衆多功能,可定製性也會提高。

這是不是指我應該將每項修改都各自獨立成一個pr?這次其實我已經按功能分拆了10個commit,只是我一次過將要製作的功能都全部測試好後才提交,通過後就隨即可以發佈新版本,所以就只有一個pr。


那麼接下來我對本次PR作出以下修訂,各位會否認同?

  • 取消array30_phrases.dict.yaml詞彙碼表,改用為連接八股文
  • 取消粵拼反查

@lotem
Copy link
Member
lotem commented Aug 18, 2021

array30_phrases.dict.yaml 剛剛看了一眼,詞組有特製的編碼。
' 像是詞組編碼的結束標誌,單字編碼裡沒有見過。

這個方案不支持自動組詞吧,如果要用八股文的詞組,似乎沒辦法寫出造詞的規則?

要給詞組一一指定編碼的話也只能單獨寫一個碼表了。
我不懂行列,特別是不懂怎樣打詞,你來決定取捨吧。

@archerindigo
Copy link
Contributor Author
archerindigo commented Aug 18, 2021

array30_phrases.dict.yaml 剛剛看了一眼,詞組有特製的編碼。
' 像是詞組編碼的結束標誌,單字編碼裡沒有見過。

這個方案不支持自動組詞吧,如果要用八股文的詞組,似乎沒辦法寫出造詞的規則?

要給詞組一一指定編碼的話也只能單獨寫一個碼表了。
我不懂行列,特別是不懂怎樣打詞,你來決定取捨吧。

官方定義的行列的詞彙輸入規則是四碼加'作尾綴,以便分辨用家正在輸入單字還是詞彙。詞的彙取碼規則十分簡單:

兩字詞:取第一個字的首、尾字根,和第二個字的首、尾字根
三字詞:取第一個字的首、尾字根,第二個字及第三個字的首根
四字詞或超過四字:取前面四個字的首根

我試過在碼表加入以下規則就可以用八股文實現行列的詞彙輸入方式:

use_preset_vocabulary: true
encoder:
  rules:
    - length_equal: 2
      formula: "AaAzBaBz"
    - length_equal: 3
      formula: "AaAzBaCa"
    - length_in_range: [3, 15]
      formula: "AaBaCaDa"

不過單純這樣修改會有幾個副作用:

  • 除了單字的標準取碼,其簡碼和特別碼都會被拉進來造詞,結果編碼會比官方定義的寬鬆。
  • 沒有'後綴
  • 因沒有'後綴,詞彙有機會因調頻而被調到比同碼單字更前的位置

如果從精簡及盡量還原官方定義規則的角度出發,我想從以下三個選項擇一:

  • 使用這次PR提供的詞彙碼表,不使用八股文
  • 提供以上設定但變成註解,讓用家自行選擇開啟
  • 不在這裡提供詞庫功能。不論是詞彙碼表還是八股文自動造詞的詞彙輸入方式都另行從其他渠道提供補丁

至於 requested changes的部份,我都接納並會著手修改。

@archerindigo
Copy link
Contributor Author

重新整理了修改歷史,已修改change request的部份。詞庫功能相關的commit待有決定後才加上去。

另外亦將"?"萬用字元功能抽出成為array30_query供array30.schema取用,防止有關萬用字元的algerba處理原行列碼庫以外衍生的大量字碼(例如自動造詞)而令部署卡死。

It is to prevent speller algebra from deriving words beyond the main
dictionary, which may lead to deployment failure
@lotem
Copy link
Member
lotem commented Aug 20, 2021

关于词组:
encoder的组词规则不支持添加后缀,因此目前还是在码表里写好编码妥当。
撇开后缀的问题,其实对于组词,可以另外给码表里的部分条目指定一列造词码,以避免简码和特别码参与组词规则。仓颉、郑码等都已应用。

词组码表加入仓库没有问题,我主要想强调写成独立文件用户可以自由选择拆装。
至于是否默认汇入词组,你来掌握吧,可以根据该输入法主流的使用习惯而定。

- Default use array30_phases.dict.yaml
- Provide commented options for using rime-essay
- Add suffix to special code and short code in order to exclude them in phases encoder
@archerindigo
Copy link
Contributor Author

這樣我預設啟用行列的詞彙碼表,始終這份詞彙碼表最符合官方輸入規則,定義的詞也是和臺灣在地化。另外我也留下八股文自動造詞的設定註解供人選用。

特別碼和簡碼我加了標記尾綴讓encoder忽略。

@archerindigo
Copy link
Contributor Author
archerindigo commented Aug 22, 2021

這次更新以後行列30輸入法的大部份原生功能都已經支援,短期內除了除錯和更新碼表應該不會再有大改動。

現時收到一些意見希望提供純數字鍵取碼的行列10以便在手機上使用,我有空會研究一下,但可能會作為獨立方案另行發佈。

@lotem
Copy link
Member
lotem commented Aug 24, 2021

​哦!(警惕)

但願不會有什麼敏感詞。哪天我被請去喝茶就糟了,輸入法就沒人更新了。

@lotem lotem merged commit d10f2f8 into rime:master Aug 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
0