【发布时间】:2017-07-17 16:50:40
【问题描述】:
使用韩语输入法编辑器 (IME),可以输入버리 + 어,它会自动变为버려。
有没有办法在 Python 中以编程方式做到这一点?
>>> x, y = '버리', '어'
>>> z = '버려'
>>> ord(z[-1])
47140
>>> ord(x[-1]), ord(y)
(47532, 50612)
有没有办法计算 47532 + 50612 -> 47140?
这里还有一些例子:
가보 + 아 -> 가봐
끝나 + ㄹ -> 끝날
【问题讨论】:
-
字符之间的关系不是Unicode标准的一部分。
-
正如彼得所说,Unicode 中没有这种关系。 Unicode 标准的唯一关系是单个 Jamo 字符和预先组合的韩文音节之间的关系;您可以将孤立的 jamo 组合成完整的音节。在这里,您想将两个音节 (리 + 어) 组合成一个不同的音节。您需要自己准备一张桌子(或在其他地方找到一张)。
-
@PeterWood:我认为他的问题更多是关于“是否有任何库已经处理了所有映射?”
-
Unicode 9.0 标准的第 18.6 节涵盖了韩文音节,这似乎描述了问题中的大部分代码点。它讨论了“jamo”和现代韩文音节的“Johab”集(399 个可能的两jamo 音节块和 10,773 个可能的三jamo 音节块)。它引用了第 3.12 节 Conjoining Jame Behavior。这看起来像一个复杂的领域。 (您可能知道,您可以在Unicode 网站上找到这些章节。)
-
@JonathanLeffler:这可能就是为什么这个问题被表述为“有没有办法以编程方式将韩语 unicode 组合成一个?” =)
标签: python unicode nlp ime korean-nlp