我正在尝试将韩语字符串细分为单个音节。
所以输入将是一个字符串,如“서울특별시”和结果“서”,“울”,“특”,“별”,“시”。
我已尝试用C ++和Python来分割字符串,但结果是一系列的?或者分别为白色空格(但是字符串本身可以在屏幕上正确打印)。
在c ++中,我首先将输入字符串初始化为string korean="서울특별시"
,然后使用string::iterator
遍历字符串并打印每个单独的组件。
在Python中,我刚刚使用了一个简单的for
循环。
我想知道是否有这个问题的解决方案。感谢。
答案 0 :(得分:1)
我根本不懂韩语,也不能评论音节的划分,但在Python 2中,以下是有效的:
# -*- coding: utf-8 -*-
print(repr(u"서울특별시"))
print(repr(u"서울특별시"[0]))
输出:
u'\uc11c\uc6b8\ud2b9\ubcc4\uc2dc'
u'\uc11c'
在Python 3中,Unicode字符串不需要u
。
输出是字符串中字符的unicode值,这意味着在这种情况下字符串已被正确删除。我用repr
打印它们的原因是我使用的终端中的字体不能代表它们,所以没有repr
我只看到方框。但这纯粹是一个渲染问题,repr
表明数据是正确的。
因此,如果您从逻辑上知道如何识别音节,那么您可以使用repr
来查看代码实际执行的操作。 Unicode NFC听起来像是真正识别它们的一个很好的候选者(感谢R. Martinho Fernandes),而unicodedata.normalize()
是达到这个目标的方法。