2024-05-03 08:32:04 发布
网友
假设我有个拼音:
gēge
我怎样才能得到重音字符的“音调数”? 例如,在这种情况下,ē将是第一个音调,理想的输出是ge1ge。但实际上,第一步是如何将音调转换成数字?在
输入/输出示例:
变成
ge1ge na3inai wa4ipo2
我希望在python中实现这一点,但我很灵活。在
谢谢!:)
当以正常形式D(*)(分解)表示时,四个拼音声调使用以下组合(unicode)符号:
'\u0304'
'\u0301'
'\u030c'
'\u0300'
这意味着Python中的自动处理几乎是微不足道的:将(unicode)字符串规范化为其标准格式D,并用数字值替换上面的组合字符
代码可以是:
def to_tone_number(s): table = {0x304: ord('1'), 0x301: ord('2'), 0x30c: ord('3'), 0x300: ord('4')} return unicodedata.normalize('NFD', s).translate(table)
然后可以使用:
在Python 3或Python 2中:
>>> print(to_tone_number(u'''g\u0113ge n\u01ceinai w\xe0ip\xf3''')) ge1ge na3inai wa4ipo2
(*)参考文献:
使用正则表达式。有一个有用的regex命令:
re.findall()
您可以先使用它来标识所有重音字符,然后用string replace方法替换它们
例如
当以正常形式D(*)(分解)表示时,四个拼音声调使用以下组合(unicode)符号:
'\u0304'
)表示音调1'\u0301'
)表示音调2'\u030c'
)表示音调3'\u0300'
)表示音调4这意味着Python中的自动处理几乎是微不足道的:将(unicode)字符串规范化为其标准格式D,并用数字值替换上面的组合字符
代码可以是:
然后可以使用:
^{pr2}$在Python 3或Python 2中:
(*)参考文献:
使用正则表达式。有一个有用的regex命令:
您可以先使用它来标识所有重音字符,然后用string replace方法替换它们
^{pr2}$例如
相关问题 更多 >
编程相关推荐