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

多音字处理可能有问题 #5

Open
IdeaManYu opened this issue Feb 22, 2021 · 11 comments
Open

多音字处理可能有问题 #5

IdeaManYu opened this issue Feb 22, 2021 · 11 comments

Comments

@IdeaManYu
Copy link

shui'ni'de = > 水泥地
yi'bai'tian'de = > 一拜天地

目前发现经常出现这种状况

@placeless
Copy link
Owner

词库里面没有这些「词与音」的对应关系,应该是 Rime 语言模型的推荐算法。这个应该没有什么问题吧,对于记错读音的情景,反而有所帮助。

@IdeaManYu
Copy link
Author

应该上是八股文引擎造成的 , 关闭八股文后不会出现这种情况 ; 关掉八股文造句又成了新问题 ; 我个人不太喜欢这种多音字胡乱推荐
对了 , 你的方案中caps_lock似乎也有问题 , 输出过程中按下caps_lock不能选字/清除

@IdeaManYu
Copy link
Author

我感觉是这么造成的 , 我个人的rime是在你方案的基础上改成了mspy
uv'ni = 水泥 , de = 地 , 拼词的时候正好八股文中有一个"水泥地" , 频率=100
这个时候我想打"uv'ni'de = 睡你的" , 八股文中没有"睡你的" , 有"水泥地" ; 系统推荐出字就把"水泥(uv'ni)地(de)"给推出来了

比较操蛋的是 , 涉及到多音字的这种词汇推荐 , 是不能用快捷键删掉词汇的
涉及到多音字+八股文 , 基本都会遇到这个问题 , 所以我个人认为您的方案不够完善
我这边苦于找不到更好的办法 , 在想是不是应该直接用大词库 , 放弃八股文推荐
搜狗现在开始刷流氓了 , 暂时回到了百度拼音 , 百度拼音和系统自带的输入法总是推荐emoji , 好烦
期待您这边能够找到解决多音字问题的办法

@placeless
Copy link
Owner

应该上是八股文引擎造成的 , 关闭八股文后不会出现这种情况 ; 关掉八股文造句又成了新问题 ; 我个人不太喜欢这种多音字胡乱推荐
对了 , 你的方案中caps_lock似乎也有问题 , 输出过程中按下caps_lock不能选字/清除

抱歉,忘了;我的 Caps Lock 一直被映射成了 Control

@placeless
Copy link
Owner

我感觉是这么造成的 , 我个人的rime是在你方案的基础上改成了mspy
uv'ni = 水泥 , de = 地 , 拼词的时候正好八股文中有一个"水泥地" , 频率=100
这个时候我想打"uv'ni'de = 睡你的" , 八股文中没有"睡你的" , 有"水泥地" ; 系统推荐出字就把"水泥(uv'ni)地(de)"给推出来了

比较操蛋的是 , 涉及到多音字的这种词汇推荐 , 是不能用快捷键删掉词汇的
涉及到多音字+八股文 , 基本都会遇到这个问题 , 所以我个人认为您的方案不够完善
我这边苦于找不到更好的办法 , 在想是不是应该直接用大词库 , 放弃八股文推荐
搜狗现在开始刷流氓了 , 暂时回到了百度拼音 , 百度拼音和系统自带的输入法总是推荐emoji , 好烦
期待您这边能够找到解决多音字问题的办法

我对词库实在没啥要求,八股文简化字就够用了,所以不太讲究这个;你要不要试试网上那个维基百科词库:

  • 原仓库 简化字,有多音字注音错误的问题
  • 改版 简繁,多音字是穷举读音,比如「孟山都」对应 meng shan du 和 meng shan dou

这么一看,似乎也不是很契合你的需求。

@placeless
Copy link
Owner

我感觉是这么造成的 , 我个人的rime是在你方案的基础上改成了mspy
uv'ni = 水泥 , de = 地 , 拼词的时候正好八股文中有一个"水泥地" , 频率=100
这个时候我想打"uv'ni'de = 睡你的" , 八股文中没有"睡你的" , 有"水泥地" ; 系统推荐出字就把"水泥(uv'ni)地(de)"给推出来了

比较操蛋的是 , 涉及到多音字的这种词汇推荐 , 是不能用快捷键删掉词汇的
涉及到多音字+八股文 , 基本都会遇到这个问题 , 所以我个人认为您的方案不够完善
我这边苦于找不到更好的办法 , 在想是不是应该直接用大词库 , 放弃八股文推荐
搜狗现在开始刷流氓了 , 暂时回到了百度拼音 , 百度拼音和系统自带的输入法总是推荐emoji , 好烦
期待您这边能够找到解决多音字问题的办法

或者:

  • 注释掉语句模型
  • 拿掉八股文等内置词库
  • 微调一下繁简支持
  • 然后,按需外挂网络词库

@IdeaManYu
Copy link
Author

我挂上了四叶草的词库 , 注释掉了简体八股文的那个txt文件 , 字库还是用的您的8105

保留了这个
grammar:
language: zh-hans-t-essay-bgw

现在感觉基本上是符合我的需求了 , 剩下的可能就是一些程序本身的小bug/快捷键冲突了

@placeless
Copy link
Owner

我挂上了四叶草的词库 , 注释掉了简体八股文的那个txt文件 , 字库还是用的您的8105

保留了这个
grammar:
language: zh-hans-t-essay-bgw

现在感觉基本上是符合我的需求了 , 剩下的可能就是一些程序本身的小bug/快捷键冲突了

你提到的这个四叶草词库,有意思,我也选择其中以下几列:

  • THUOCL_animal
  • THUOCL_caijing
  • THUOCL_car
  • THUOCL_chengyu
  • THUOCL_diming
  • THUOCL_food
  • THUOCL_IT
  • THUOCL_law
  • THUOCL_lishimingren
  • THUOCL_medical

预计 14 万词汇,加上八股文,还是保持在10MB左右的一个小词库。

@ililu2000
Copy link

我用的阿里这位老兄的八股文词库,没有这个问题
https://github.com/alswl/Rime/blob/master/essay.txt

@placeless
Copy link
Owner

我用的阿里这位老兄的八股文词库,没有这个问题
https://github.com/alswl/Rime/blob/master/essay.txt

这个似乎值得商榷:

  • 这里的 essay 取 >700 没有特别的道理,比如
      word      freq
      <chr>    <dbl>
    1 一一对应    76
    2 一一映射     1
    3 一丁不识     6
    4 一丁点     289
    5 一丁点儿    66
    6 一七        72
    
  • 替换物(常用汉语词典)中的大部份词汇已经被原 essay 包括了,去除单字不算,anti_join 之后,多出来的只不到 3000 词汇,形如:
      word   pinyin    
      <chr>  <chr>     
    1 本主儿 ben zhu er
    2 在党   zai dang  
    3 伙子   huo zi    
    4 治沙   zhi sha   
    5 三十儿 san shi er
    6 道道儿 dao dao er
    

@alswl
Copy link

alswl commented Mar 28, 2022

我用的阿里这位老兄的八股文词库,没有这个问题 https://github.com/alswl/Rime/blob/master/essay.txt

并没有做特殊的优化哦。举例,zhao xian chao xian 都可以出现朝鲜。

有一些词汇,比如 zhao ri 会出现 朝日,但是 chao ri 则不会出现,原因是词库带来的。这个词库 luna_pinyin.xiandaihanyuchangyongcibiao.dict.yaml 里面是带原始拼音的。

简而言之,我的策略是:essay 是没有注音的,降低其覆盖率。使用更高品质的带注音的词库。现在 librime 里面处理相关逻辑,除了 opencc 之外,没有更多设计来处理多音字。多音字处理,本质上还是要不断更新词库(不管是内嵌的还是外部的)。

更多多音字处理方案,可以参考,也许可以做一些工程化的事情:

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

4 participants