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

腾讯词库里的多音字如果不标注拼音的话很多歧义 #317

Closed
mehhaha opened this issue Jun 1, 2023 · 15 comments
Closed

腾讯词库里的多音字如果不标注拼音的话很多歧义 #317

mehhaha opened this issue Jun 1, 2023 · 15 comments
Labels
dict 词库相关

Comments

@mehhaha
Copy link
Contributor

mehhaha commented Jun 1, 2023

比如 没 可以读成 mo, mo fa zhan 就能打出 没发展。gao kao mo kao hao 高考没考好 etc. 光一个“没”字在腾讯词库里就有三千多个(3344 个)

@boomker
Copy link
Contributor

boomker commented Jun 1, 2023

这个问题是很难解决的, 应该也是大多数词库存在的问题.
之前我尝试过用pypinyin项目给每个词条加上注音, 然而发现词条加的注音也有很多是错误的.
为了给词条加上正确的注音, 我的策略是一些能被pypinyin唯一正确注音的词条写入词库, 有多种可能的注音也都写入词库里, 这样一来词库词条有冗余, 正确的和错误的注音都在词库里, 但至少比词库中所有词条都没有注音要好一点
这个问题难以完美解决, 只能靠开源社区的伙伴们发现错音后提交到项目 issue

@ctermiii
Copy link

ctermiii commented Jun 2, 2023

这个问题是很难解决的, 应该也是大多数词库存在的问题.
之前我尝试过用pypinyin项目给每个词条加上注音, 然而发现词条加的注音也有很多是错误的.
为了给词条加上正确的注音, 我的策略是一些能被pypinyin唯一正确注音的词条写入词库, 有多种可能的注音也都写入词库里, 这样一来词库词条有冗余, 正确的和错误的注音都在词库里, 但至少比词库中所有词条都没有注音要好一点
这个问题难以完美解决, 只能靠开源社区的伙伴们发现错音后提交到项目 issue

确实,今天尝试用pinyin-pro(https://pinyin-pro.cn/guide/start.html)加拼音,发现也是很多多音字的拼音不对。 没发现完美解决方案,只有部分可以正确发音。 估计要靠手动校对才行。

@boomker
Copy link
Contributor

boomker commented Jun 2, 2023

确实,今天尝试用pinyin-pro(https://pinyin-pro.cn/guide/start.html)加拼音,发现也是很多多音字的拼音不对。 没发现完美解决方案,只有部分可以正确发音。 估计要靠手动校对才行。


这个项目我也注意到了, 初步用下来感觉比 pypinyin 的注音准确度要高一点, 维护活跃度也高一点, 后面我打算用它给词条注音
其实我觉得追求完美解决会耗费很多精力, 词库可以允许一些错误的多音字词条, 但是得控制这样的词条占比不能太多, 常见的多音字词条注音得保证正确率就行了.

@iDvel
Copy link
Owner

iDvel commented Jun 2, 2023

Rime 是按照字表(8105.dict.yaml)的拼音进行自动注音,多音字只注音权重高于 5% 的,但其实大部分多音字都是给予多种注音的。

跑了脚本看了一下,现在的词库里有未注音的多音字 552957 个(457605 行)。
用自动注音脚本最大的问题就是注音不准确,那还不如不注音。

目前的解决方案是:
大多数情况下还是可以的,日常打字碰到冲突的多音字的概率应该很低。
列出了一些可能造成困扰的,在 others/需要注音.txt 里。
比如「没法mei/mo fa」和「魔法mo fa」冲突太多,就把含有「没法」的词句都注音了。

@xjkdev
Copy link

xjkdev commented Jun 3, 2023

降息也需要注音,现在xiang xi也可以打出降息两字。准确来说是打不详细的时候出现了不降息的词条。

我注意到这个词在base词库里是有注音的,是否应该考虑base里已有注音的词,在腾讯词库里面做一些处理。

@xjkdev
Copy link

xjkdev commented Jun 3, 2023

我写了一个脚本可以缓解部分这种情况:https://github.com/xjkdev/rime-ice/blob/duoyinzi/cn_dicts/Untitled-1.ipynb
这是输出的结果:https://github.com/xjkdev/rime-ice/blob/duoyinzi/cn_dicts/tmp.txt
请大家看看是否可行?

@xjkdev
Copy link

xjkdev commented Jun 3, 2023

这个脚本主要原理是,假如一个多音字在一个词中只有一种读音(根据base表),且腾讯词库的短语完整包含这个词,就可认为这个短语发这个音。前提是短语中没有其他无法确认的多音字,并且无论怎么分词,这个字在前后组成的词中都只有一种读音。

@boomker
Copy link
Contributor

boomker commented Jun 3, 2023

这个脚本主要原理是,假如一个多音字在一个词中只有一种读音(根据base表),且腾讯词库的短语完整包含这个词,就可认为这个短语发这个音。前提是短语中没有其他无法确认的多音字,并且无论怎么分词,这个字在前后组成的词中都只有一种读音。


多音字难处理的地方就是, 相同的字词在不同的词条里有不同的发音, 比如:
名人传记不要外传(chuan), 武林外传(zhuan)的传奇故事
没(mo)收了你的东西, 没(mei)收到文件
不知道这种情况你是否有考虑到

@xjkdev
Copy link

xjkdev commented Jun 3, 2023

这个脚本并非能解决所有的问题,只能解决我说的情形,这个情形是加了很多限制的。
比如,因为外传既有可能是不要向外传cuan播,也可能是传zuan记,不满足“一个多音字在一个词中只有一种读音”,这个情形,因此这个脚本就不会用“外传”去匹配,而是保持原样不注音。

@xjkdev
Copy link

xjkdev commented Jun 3, 2023

但是没字应该是属于比较特殊的情况,可以特殊地把相关的词加入到base里,或者直接排除?

@iDvel
Copy link
Owner

iDvel commented Jun 6, 2023

我写了一个脚本可以缓解部分这种情况:https://github.com/xjkdev/rime-ice/blob/duoyinzi/cn_dicts/Untitled-1.ipynb 这是输出的结果:https://github.com/xjkdev/rime-ice/blob/duoyinzi/cn_dicts/tmp.txt 请大家看看是否可行?

这个思路好啊,就是「的地得」有一些问题,比如「漫无目的地走 man wu mu di di zou 100」。
过阵子搞一搞,把大多数能准确注音的多音字先注音了。

@mehhaha
Copy link
Contributor Author

mehhaha commented Jun 18, 2023

有几个多音的非常常用的字,可能可以考虑优先标注,比如 “的”,“地”,“没”。

另外可能可以考虑优先标注一下一个以上多音字的词组。刚刚想打 “的面积” de mian ji 打出一个 “地面系”(地、系都是多音字),这种体验很差。

@mirtlecn
Copy link
Collaborator

和本条相关:

「截长图」应当注音,否则打「截张图」的时候会出现

iDvel added a commit that referenced this issue Jun 27, 2023
ann61c pushed a commit to ann61c/rime-ice that referenced this issue Jul 11, 2023
@luckmoon
Copy link

提供一个思路:利用ChatGPT类的模型去给词库注音,试了几个效果非常好,如果可以自动化就完美了。
image

@iDvel
Copy link
Owner

iDvel commented Jul 12, 2023

试过了,效果非常不理想:
图片

已经用上面那个思路+结巴分词搞得差不多了,快完成了。

@iDvel iDvel closed this as completed in d9c024d Jul 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dict 词库相关
Projects
None yet
Development

No branches or pull requests

7 participants