rime / brise

Deprecated; check out /plum/ at https://github.com/rime/plum
GNU General Public License v3.0
198 stars 52 forks source link

爲特殊候選添加註釋的辦法 #94

Open lotem opened 9 years ago

lotem commented 9 years ago

由 Issue 92 的討論想到的,在形碼中處理部首的設想: 部首單列一個詞典,用 comment_format: 給這些候選添加【部首】註釋,以區別於同碼的字。

相關功能: 拼音裏面,錯音單列一個詞典,用來「反查」正確讀音。也許並不用反查機制實現,而把正確讀音寫爲編碼的一部分,作拼寫運算。

osfans commented 9 years ago

不錯,跟半角全角的註釋類似。

錯音參與組詞嗎? 正確音有多個怎麼辦? 方言中正音很重要呢。頂這個功能。

lotem commented 9 years ago

之所以說「不用反查機制」實現,是因爲多音字的一個錯音可能只對應某一個正音,反查無從做這個限定。需要把這個對應關係也寫入碼表。

LEOYoon-Tsaw commented 9 years ago

Brise 的管理員都會收到你們討論的郵件,聊天式的討論不建議在這裏進行,希望只在Github上寫結論性的話。謝謝。

顺颂时祺 Best Wishes

Osfans notifications@github.com 於 2015年6月11日 15:25 寫道:

不錯,跟半角全角的註釋類似。

錯音參與組詞嗎? 正確音有多個怎麼辦? 方言中正音很重要呢。頂這個功能。

— Reply to this email directly or view it on GitHub.

ghost commented 9 years ago

最近打特殊符號才發現有數字〔全角〕提醒,還以爲是設計碼表時加上的。

也發現候选提示編碼一定要打中碼表中「原先寫好的全碼」才不會繼續提示,拼寫運算生成的編碼不會作爲提示碼。即使我原先在碼表中用數字附加粵語聲調後再用拼寫運算去除數字,依然會保持提示;不過我用 comment_format 弄掉數字就沒問題了,只可惜不能提示聲調了。或許該問題可以通過分析輸入碼字符集判斷是否有可能輸入數字解決。

修正:commit_format → comment_format

lotem commented 9 years ago

隱藏編碼提示的條件是用戶輸入了與提示相同的編碼——即格式化後的回顯編碼串(preedit)與格式化後的編碼提示(comment)相同。 那麼,@jakwings 究竟想不想要提示聲調呢?

ghost commented 9 years ago

當然想加啊,這樣子通過輸入法學發音就更方便了~支持。(我之前想的過濾數字方法好像不怎麼好,不過總算可以方便記錄聲調了。)

lotem commented 9 years ago

我想澄清一下,原題所提出的不是一項新功能建議,而是希望能把基於已有的多翻譯器、拼寫運算機制、編碼提示以及 comment_format: 實現這一功能的方法公式化。

ghost commented 9 years ago

基於已有的多翻譯器、拼寫運算機制、編碼提示以及 comment_format:

就是不會改動任何 librime 的代碼,用正則表達式改變注釋?做好列表後,其它方案在 translator 那用 import_preset?(另:有誰已經在這幾天把部首都抽取出來了?)

那聲調該怎麼標示才能解決提示問題呢?(似乎另開主題比較好)

lotem commented 9 years ago

@jakwings 有什麼問題?碼表裏標有聲調,輸入時不加聲調的話就會提示。你不是已經實現了麼?

ghost commented 9 years ago

有什麼問題?碼表裏標有聲調,輸入時不加聲調的話就會提示。你不是已經實現了麼?

我想它在輸夠不帶聲調(數字)的編碼後不再提示。不然輸入較長的句子時,一直都會在那裡,而且上屏後的詞對詞頻的影響更小。

PS:似乎你以爲我是想把聲調也輸進去。不是的。粵語輸聲調眞讓我想死,「陽平」和「陽去」一直不好分。

lotem commented 9 years ago

spelling_hints: 的數值是需要提示的最大候選字數。以此定義「輸夠」。

ghost commented 9 years ago

我指的「輸夠」不是指提示的單字編碼個數,而是輸入拼寫運算生成的全碼(不帶聲調,但輸全輸夠了),如 gong coi(剛才,原本的全碼是 gong1 coi4,雖已用拼寫運算去除,但仍被用於編碼提示),此時由於 gong coi 無法完全對應 gong1 coi4,導致選詞上屏後,相應詞頻變動過小,要連選多次後才能高於「剛纔」。(測試時記得清空用戶詞典)

ghost commented 9 years ago

……如 gong coi(剛才,原本的全碼是 gong1 coi4,雖已用拼寫運算去除,但仍被用於編碼提示),此時由於 gong coi 無法完全對應 gong1 coi4,導致選詞上屏後,相應詞頻變動過小……

啊,我把原來的運算 xform/\d// 改爲 derive/\d//,算是解決這個問題了。現在只剩下一個問題了,就是輸完「gong coi」後,提示還在,不能像平常那樣直接判斷自己沒輸錯編碼了(大蓋沒錯吧)。

lotem commented 9 years ago

不懂 @jakwings 究竟想要怎樣 前面不是說要提示聲調嘛:「只可惜不能提示聲調了」 那麼不輸入聲調時,當然會有提示了

ghost commented 9 years ago

@lotem 因爲我沒把數字作爲輸入碼啊,也不想用别的字母標示聲調,反正不想輸入聲調就是了。 所以假如我在碼表加了數字,我就永遠打不到全碼了,提示就一直在那了。 這樣就不能通過打中全碼,讓提示消失, 從而快速判斷自己完全打對了英文字母(聲調數字不太重要也不想打)。 我最近在堅持打全碼做練習,少了個明顯的判斷條件,不太方便。囧 於是我眞正想要的聲調提示還是難以用既有功能實現。 輸入方面混用注釋和提示,再加上碼表那混用拼音和字碼,有點麻煩。

lotem commented 9 years ago

@jakwings 如果你把無聲調的拼音叫做「全碼」,那這只是你自己頭腦中的一個概念。輸入法並沒有這個概念。碼表有聲調,那麼無論有沒有敲全聲調以外的碼,都屬於簡碼。編碼提示他也是支持拼寫運算的,比如通過 comment_format 刪除聲調,你可以告訴輸入法無聲調而聲韻齊全的音節是全碼,那麼輸入 gc 就會提示 gong coi,而輸入 gongcoi 則不顯示——這體現了編碼提示的本意:用來顯示如何更準確地輸入。如果要在這裏顯示聲調,就不屬於這個作用,而是屬於顯示與(實際)輸入碼無關的信息(這正是本帖的主題)這種用法之下,爲什麼 gongc 要提示聲調而 gongcoi 不要?要提示的信息與輸入全碼、簡碼不相關,目的是查詢字詞的發音而不是爲了得到完整輸入碼的提示,所以會無條件顯示。

ghost commented 9 years ago

@lotem 基本上就是這樣了。我之前也提到用 comment_format 去除聲調了,也是目前的做法。

這種用法之下,爲什麼 gongc 要提示聲調而 gongcoi 不要?要提示的信息與輸入全碼、簡碼不相關。

如果只輸入 gongc 就停下來,說明我忘音了,需要看提示;而當我快速打完 gongcoi,提示消失,只留文字,瞄一眼我就立刻知道大致上沒錯了。(沒加入容錯拼寫。另外,自動分詞有時會來搗一下亂。)

聲調在此的确和全碼、簡碼不相關,只是讓我可以在慢吞吞打字時順便記點東西,還可以弄個快捷鍵讓提示上屏,免去一兩個查詢功能。這跟把羅馬拼音轉換爲註音文字是差不多的。

要不是 preedit 的結果不好預測,我眞想提交個 patch,讓 preedit 在匹配 comment 時自動過濾 comment 中不可能出現的字符。U_U

wyxbc commented 9 years ago

自从看过此贴后:就有了个想法,用rime实现“Hi英文输入法”(或谷歌英文写作助手)那种显示方式

即输入art后显示格式:art n.艺术, 技艺

用comment_format:方式转换一万来词的话,速度上还可以接受,但几万以上出字就滞后了。。

又想單列一個詞典,用「反查」实现对应的注释,奈何字典里的-code列不能改为-text列(即:字词ABC 字词XYZ )。


我觉得这种反查方式能够提示更多的信息,用在方言上也是不错的。所以我也挺期待大大说的【部首】註釋方式能用来实现Hi英文输入法。

stardiviner commented 9 years ago

这个主意不错,我期待添加这个特性。