C#人名转拼音方案
今天弄了一下人名转拼音的算法, 首先网上搜了一下方案,发现C#大体上有如下几个解决方案:
实际使用了一下,对多音字的支持都不行,并且有的文字还覆盖不全,基本上无法满足生产需求。另外,人名转拼音还有一些特殊的规则,一些字在作为姓的时候有特殊的读法,如单、乐、查、万俟等。这些也是上述库所无法支持的。 既然没有找到合适的,就只好自己写了,要实现相对较为完善的人名转拼音,得维护一个字典词库才行,于是我便到网上搜了一下,找到了一个非常好用的字典词库?CC-CEDICT?。这个词典非常适合中文转拼音的这个需求,它具有如下特点:
有了这个词库后,就可以非常方便的实现人名转拼音方案了,具体步骤如下:
这种方案有如下优点:
相对现有的几个方案来比较,这个方案主要缺点是占内存些,试了一下,要多占30+mb内存,不过在这个手机内存都是8g起步的年代,这点内存占用就算作为桌面程序都能接受,更何况我是打算将其作为一个rest服务来使用的,更不用考虑其开销了。 不过,这个方案也不是完美的,本身姓名的读法可能也是有争议的,例如"李重",到底是发"Li Chong"还是"Li Zhong",本身就没有一个权威的说法。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |