将韩语单词分割成单独的音节 - C++/Python

Segment a korean word into individual syllables - C++/Python

本文关键字:C++ Python 韩语单 分割 单独      更新时间:2023-10-16

我正在尝试将韩语字符串分割成单独的音节。因此,输入将是一个字符串,如"서울특별시"和结果"서","울","특","별","시"。我已经尝试使用 C++ 和 Python 来分割字符串,但结果是一系列 ?或空格(但是字符串本身可以正确打印在屏幕上)。在 c++ 中,我首先将输入字符串初始化为 string korean="서울특별시",然后使用string::iterator遍历字符串并打印每个单独的组件。在Python中,我刚刚使用了一个简单的for循环。

我想知道是否有解决这个问题的方法。谢谢。

我根本不懂韩语,也无法评论音节的划分,但在 Python 2 中,以下内容有效:

# -*- coding: utf-8 -*- 
print(repr(u"서울특별시"))
print(repr(u"서울특별시"[0]))

输出:

u'uc11cuc6b8ud2b9ubcc4uc2dc'
u'uc11c'

在 Python 3 中,你不需要 Unicode 字符串的u

输出是字符串中字符的 unicode 值,这意味着在这种情况下字符串已被正确切割。我用repr打印它们的原因是我使用的终端中的字体无法代表它们,因此没有repr我只会看到方框。但这纯粹是一个渲染问题,repr表明数据是正确的。

因此,如果您从逻辑上知道如何识别音节,那么您可以使用repr来查看您的代码实际做了什么。Unicode NFC听起来像是实际识别它们的好候选者(感谢R. Martinho Fernandes),unicodedata.normalize()是实现这一目标的方法。