Skip to content
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

Bug? 求助:定义模糊音之后特定编码没有候选词 #582

Closed
realysy opened this issue Nov 18, 2020 · 7 comments
Closed

Bug? 求助:定义模糊音之后特定编码没有候选词 #582

realysy opened this issue Nov 18, 2020 · 7 comments

Comments

@realysy
Copy link

realysy commented Nov 18, 2020

平台:Rime weasel-0.14.3 on Win10,输入方案 luna_pinyin_simp.

根据 wiki: 模糊音【朙月拼音】模糊音定製模板,当在luna_pinyin_simp.custom.yaml中的patch下添加模糊音设置语句后:

 'speller/algebra':
   - erase/^xx$/                      # 第一行保留

   # 自動糾正一些常見的按鍵錯誤
   - derive/([aeiou])ng$/$1gn/        # dagn => dang 
   - derive/([dtngkhrzcs])o(u|ng)$/$1o/  # zho => zhong|zhou
   - derive/ong$/on/                  # zhonguo => zhong guo
   - derive/ao$/oa/                   # hoa => hao
   - derive/([iu])a(o|ng?)$/a$1$2/    # tain => tian

会出现有些编码(拼音)没有候选词的现象,比如在中文状态下输my(“没有”的拼音缩写),看不到候选词。

注释掉上面的模糊音设置语句然后重新部署,再在中文状态下输my则能看到候选词。如图:
Snipaste_2020-11-18

@lotem
Copy link
Member

lotem commented Nov 18, 2020

應該不是模糊音設置導致的問題。請排查同時進行的其他修改。

@realysy
Copy link
Author

realysy commented Nov 18, 2020

應該不是模糊音設置導致的問題。請排查同時進行的其他修改。

wc大神亲自回复了....明天排查试试,怀疑可能是添加了含有英语的词库

@lotem
Copy link
Member

lotem commented Nov 18, 2020

不要在拼音词库里加入拼音以外的编码。

@lotem lotem closed this as completed Nov 18, 2020
@realysy
Copy link
Author

realysy commented Nov 19, 2020

不要在拼音词库里加入拼音以外的编码。

很详细的讨论。。。然而当我在luna_pinyin_simp.custom.yaml中仅添加模糊音定义,不进行其他设置时,

  • 在luna_pinyin.my.dict.yaml中仅import luna_pinyin,仍有 特定编码没有候选词的问题;
  • 在luna_pinyin.my.dict.yaml中什么都不import的时候,任何编码都没有了候选词;
  • 不是luna_pinyin以外其他词库的问题,也许是luna_pinyin缺少了对my等特定编码的解释?以下是上面排查的配置文件:
    luna_pinyin_simp.custom.yaml
# luna_pinyin_simp.custom.yaml
patch:
  "translator/dictionary": luna_pinyin.my   # 指定自定义词库位置
  
  'speller/algebra':
    - erase/^xx$/                      # 第一行保留
    
    # 自動糾正一些常見的按鍵錯誤
    - derive/([aeiou])ng$/$1gn/        # dagn => dang 
    - derive/([dtngkhrzcs])o(u|ng)$/$1o/  # zho => zhong|zhou
    - derive/ong$/on/                  # zhonguo => zhong guo
    - derive/ao$/oa/                   # hoa => hao
    - derive/([iu])a(o|ng?)$/a$1$2/    # tain => tian
    
    # Nothing more

luna_pinyin.my.dict.yaml

---
name: luna_pinyin.my
version: "2020.11.14"
sort: by_weight
use_preset_vocabulary: true
# 此处为扩充词库(基本)默认链接载入的词库
import_tables:
  - luna_pinyin     # 從 luna_pinyin.dict.yaml 導入包含單字的碼表
...
# Nothing more

(luna_pinyin.dict.yaml不是我创建的文件,用户文件夹里也没有,./weasel/data\文件夹倒是有的,有教程说import它则能导入包含单字的码表)

@lotem
Copy link
Member

lotem commented Nov 19, 2020

my 不是正確的拼音。(你是不是要輸入mi 或者 mai?)
拼音詞庫裏沒有這個編碼,模糊音規則也沒有定義這個拼寫形式,所以不會有候選詞。

@realysy
Copy link
Author

realysy commented Nov 19, 2020

my 不是正確的拼音。(你是不是要輸入mi 或者 mai?)
拼音詞庫裏沒有這個編碼,模糊音規則也沒有定義這個拼寫形式,所以不會有候選詞。

不是——my 是“没有”的拼音缩写;添加模糊音不是想用来修正my 的,添加模糊音之前my 还是有候选词的,加了就没了。

@lotem
Copy link
Member

lotem commented Dec 8, 2021

通過相關問題翻到舊案,解釋一下真正的問題所在:修改後的方案未定義簡拼的輸入形式。

Rime完全由數據驅動,沒有欽定輸入法的編碼、取碼方法。因此需要把

my 是“没有”的拼音缩写

這類人文領域知識在輸入方案裏通過拼寫運算規則寫明,從而教會輸入法程序識別簡拼輸入。
對比原方案及模糊音模板代碼,題中補充的代碼恰恰未包含這條規則。

而3樓提到的導入英文詞庫僅僅是引發相似結果的另一條路徑。

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

No branches or pull requests

2 participants