将中文拼音转换为数字形式

phi*_*reo 2 php nlp cjk

我期待拼音在声调与口音书面转换(如:NINhǎo)拼音写在数值/ ASCII形式(例如:Nin2皓1).

有没有人知道这个库,最好是PHP?或者对中文/拼音有充分的评论?

我自己开始写一篇相当简单的文章,但我不会说中文,也不完全理解文字应该用空格分开的规则.

我能够编写一个转换器来转换:

Nín h?o. W? shì zh?ng guó rén ==> Nin2 hao3. Wo3 shi4 zhong1 guo2 ren2

但是,你如何处理的话像下面这样-他们究竟是怎么用的空间分成多个单词,或者你插嘴的字中的音色编号(如果有,在哪里?): , , ,hu? shíji?n ,等.wèishénmeyuèláiyuèsh?ngbìng

Yi *_*ang 5

解析拼音而没有空格分隔每个单词的问题是会有歧义.以中国古代首都长安的名字命名:Cháng'ān(注意消歧的撇号).如果我们删除撇号但是这可以用两种方式解释:Chán g?nCháng ?n.一个中国人会告诉你,第二个更可能,取决于当然的背景,但你的计算机无法做到这一点.

假设没有歧义,并且所有输入都是有效的,我会这样做的方式如下:

  1. 创建重音折叠功能
  2. 创建一个有效拼音数组(你应该从维基百科页面获取拼音)
  3. 将每个单词与有效拼音列表匹配
  4. 当前一个字符属于下一个单词的可能性存在歧义时,请检查下一个单词,例如:
 sh?ngbìng
     ^ Does this 'g' belong to the next word?
 

无论如何,音调的数字表示的正确定位以及代表每个重音的正确数字在Wikipeda关于拼音的文章的这一部分中得到了相当好的介绍:http://en.wikipedia.org/wiki/Pinyin#Numerals_in_place_of_tone_marks.您可能还想了解IME如何完成工作.

  • 拼音中的“长安”特意写成“Chang'ān”,以解决歧义。 (2认同)