mozillazg / go-pinyin

汉字转拼音
https://godoc.org/github.com/mozillazg/go-pinyin
MIT License
1.61k stars 195 forks source link

配置多音字后发现有不属于该汉字的发音 #57

Open chenqgp opened 2 years ago

chenqgp commented 2 years ago

我的代码如下:

hans := "一余五哎欧额"              
hans2 := "刘茜"         
hans3 := "王"
py := pinyin.NewArgs()
py.Heteronym = true 
fmt.Println(pinyin.Pinyin(hans, py))
fmt.Println(pinyin.Pinyin(hans2, py))  
fmt.Println(pinyin.Pinyin(hans3, py))

输出如下:

[[yi yi yi] [yu tu xu yu] [wu] [ai] [ou] [e]] //  余的读音?
[[liu] [qian xi]]
[[wang wang yu]] // 王有yu的读音吗?

我简单查了下资料【余】【王】好像没有上述那么多的发音? 请大佬看看,是我代码有问题还是需要做什么?

chenqgp commented 2 years ago

@mozillazg 请看看

chenqgp commented 2 years ago

我翻看了一下python版本的是可以选择数据加载的,go的版本也可以选择加载数据吗?

mozillazg commented 2 years ago

@chenqgp 你可以参考下面这个命令生成想使用的拼音文件(将 pinyin.txt 替换为想使用的拼音文件)的 go 源码:

https://github.com/mozillazg/go-pinyin/blob/8930bc1fcb5693689dc35d98ad2a4153662e34b1/Makefile#L13

然后在你的程序里用这个生成的 go 文件的拼音数据覆盖内置的拼音数据即可:

for k, v := range PinyinDict {
   pinyin.PinyinDict[k] = v
}