python-pinyin
python-pinyin copied to clipboard
对“一”这个最简单的字的声调的建议
运行环境
- 操作系统(Linux/macOS/Windows):Linux
- Python 版本:3.7.9
- pypinyin 版本:0.40.0
问题描述
在识别过程中发现大部分“一”都识别成了1声,我觉得这好像并不符合日常口语习惯
识别:企鹅挑了一块冰 qi3 e2 tiao1 le5 yi1 kuai4 bing1 建议:yi2 识别:他看见叶子上爬着一些蚜虫 ta1 kan4 jian4 ye4 zi5 shang4 pa2 zhe5 yi1 xie1 ya2 chong2 建议:yi4 等等......
我总结出一些规律(未经权威验证),看是否能加到程序中 “一”的声调有三种:1,2,4声,与后一个字的声调有密切关系(无单位的数字除外) 一块:2 4 一堆:4 1 一平方:4 2 一起:4 3 一九四二:1 数字
感谢建议!看起来好像是类似这个 https://github.com/mozillazg/python-pinyin/issues/133#issuecomment-406913070 ?
变调是考虑了口读特点,汉字的标准拼音,字典里没有那么多种拼音。 变调是个很困难的事情。虽然有人总结了一些变调规则,具有某种意义上的指导作用,但是都不全对,都有特例。 另外有些变调规则需要考虑上下文语义,词性,做起来很麻烦,但是还不保证都对。
0.44 版本是不是已经包含了“一”的变调了?好多错的,哈哈。
“一” 有四种音调。 原调 yi1,表示数字一的时候,或者排序一的时候。例如 第一、 一号、一栋一单元、三十一、一点五,一比四、三对一 轻声 yi5,回文词的中间时,例如: 走一走,看一看,瞅一瞅 变调yi2,同一词条时,当‘一’后的字读四声时, 一遍,一个,一次,一概而论,一笑而过 变调 yi4,同一词条时,当‘一’后的字读一二三声时: 一杯,一行,一把,一枝,一轮,一桶 当“一”独立成词时,一般是读原调的: 他是一孩子、快来一帮手、国外一男子
但是没有绝对的变调规则,
比如 看一(yi5|yi2)看,大多数语境下应该都是可以的。
再比如 国外一(yi1|yi4)男子, 大多数语境下也都是对的。
身高一(yi1|yi4)点七米,体重六十千克。
还比如 一元钱, 按变调规则读 yi4, 但是为了规避 "亿"的误会听感,一般建议不变调,读 yi1
楼主说的例子: 他看见叶子上爬着一些蚜虫。 个人感觉,只有标准普通话朗读的时候,才会要求拿腔作调, 做标准的变调读法。而一般的口头说话交流,是不在乎这个是否变调过的。平时说话的时候,这个字发音很快,没有变调的感觉,原调就可以。
变调规则比较复杂,得考虑语义语境场景,所以没有有效的方法保证变调准确率之前,还是不要变的好。毕竟字典上就这么一个读音,不变调,可能读法不自然,但不会算错。
0.44 版本是不是已经包含了“一”的变调了?好多错的,哈哈。
变调是通过一个参数控制的,默认没开启。