rime / rime-array

【行列】輸入方案
GNU General Public License v3.0
16 stars 6 forks source link

2.0更新 #6

Closed archerindigo closed 3 years ago

archerindigo commented 3 years ago

新增

更改

修正

archerindigo commented 3 years ago

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

LEOYoon-Tsaw commented 3 years ago

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

archerindigo commented 3 years ago

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

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

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

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

LEOYoon-Tsaw commented 3 years ago
  1. 不要單獨放一份獨特的詞典
  2. 不要做一份獨特的Emoji
  3. 不要依賴不內置的jyut6ping3反查
archerindigo commented 3 years ago
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 commented 3 years ago

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

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

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

LEOYoon-Tsaw commented 3 years ago

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

archerindigo commented 3 years ago

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

lotem commented 3 years ago

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

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

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

archerindigo commented 3 years ago

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

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

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

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

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

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


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

lotem commented 3 years ago

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

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

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

archerindigo commented 3 years ago

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"

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

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


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

archerindigo commented 3 years ago

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

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

lotem commented 3 years ago

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

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

archerindigo commented 3 years ago

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

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

archerindigo commented 3 years ago

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

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

lotem commented 3 years ago

​哦!(警惕)

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