有没有现成的拼音分词工具?

2019-07-03 02:21:34 +08:00
 czhfrank
比如一段英文字符 jintiantianqibucuo 可以拆分为 jin tian tian qi bu cuo。如果不符合拼音规则则返回输入非拼音的提示

如果有现成的就最好了,省的重写一个
3851 次点击
所在节点    Python
7 条回复
yuikns
2019-07-03 06:28:55 +08:00
我还以为是中文分词呢,刚想推荐一下 IKAnalyzer... 这个枚举不是超简单么?

我过了一遍所有 utf-8 中文字符然后用 pinyin4j 帮你枚举了一下 XD

https://gist.github.com/yuikns/387be5e9cf450ae3589fa7037c94453e#file-pinyin_tokenlizer-py
yuikns
2019-07-03 06:30:35 +08:00
输入是 jintianxtianqibucuo 其中 tian[x]tian 有问题,所以输出 ['jin', 'tian', 'invalid:x', 'tian', 'qi', 'bu', 'cuo']。
不玩啦
czhfrank
2019-07-03 07:03:32 +08:00
@yuikns 谢谢老哥,我回去看下。主要就是怕自己拼音规则写的不完整
gladuo
2019-07-03 11:42:20 +08:00
@yuikns 不过还有一些 badcase 还是蛮难的其实,比如 xianshi (西安市)是 xi'an'shi 还是 xian'shi ;或者 xuanzhuan (旋转)是 xuan'zhuan 还是 xu'an'zhuan ;以 声母 分隔,是硬边界,但是还有一些软边界是 韵母 分隔,简化的话。。。就是列个高频词表匹配一下,通用的话是不是还得整个 language model 什么的,没再仔细想了
yuikns
2019-07-03 11:55:42 +08:00
@gladuo 对。常见问题是 xian 到底是西安还是鲜凭借没有分割的拼音乱猜也没用。

要死只是算个人 possibility 那简单,手头有几个 g 微博语料做个 ngram 很容易,不过确定性就不可知了
yuikns
2019-07-03 11:59:47 +08:00
@gladuo 倒是陕西的拼音 Shaanxi,这种需要额外 knowledge 的比较烦不能一步搞定
czhfrank
2019-07-03 21:13:31 +08:00
@yuikns 已经很好了,shaanxi 严格来说确实不是拼音,是英文名了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/579468

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX