pypinyin 获取多音字的拼音组合

2022-11-27 17:21:06 浏览数 (2)

  • 使用 pypinyin

代码语言:javascript复制
import pypinyin
from pypinyin import pinyin, lazy_pinyin
import itertools

text = '追剧、听音乐'
# heteronym 开启多音字选项, NORMAL不带声调
ans = list(itertools.product(*pinyin(text, heteronym=True, style=pypinyin.NORMAL)))
print(ans)

输出:

代码语言:javascript复制
[('zhui', 'ju', '、', 'ting', 'yin', 'yue'), 
('zhui', 'ju', '、', 'yin', 'yin', 'yue'), 
('zhui', 'ju', '、', 'yi', 'yin', 'yue'), 
('dui', 'ju', '、', 'ting', 'yin', 'yue'), 
('dui', 'ju', '、', 'yin', 'yin', 'yue'), 
('dui', 'ju', '、', 'yi', 'yin', 'yue'), 
('tui', 'ju', '、', 'ting', 'yin', 'yue'), 
('tui', 'ju', '、', 'yin', 'yin', 'yue'), 
('tui', 'ju', '、', 'yi', 'yin', 'yue')]

吐槽一下,这个包输出的多音字有些是不对的,如上面的字不对

另外,注意 itertools.product 的结果是指数级增长的,多音字符数过多,会计算不出来结果(组合数太多,内存溢出、计算时间长)

0 人点赞