将 Unicode 文本转换为 Python 中的可读文本

Converting Unicoded text to readable text in Python

我有如下 Unicode 文本

(S (NP (N \u0db6\u0dbd\u0dbd\u0dcf)) (VP (V \u0db6\u0dbb\u0dc0\u0dcf)))

如何通过将代码“\u0___”转换为相关的可读字符,将其更改为可读格式。我正在使用 python 版本 2.7

我通过遵循 NLTK (3.0) 中的代码段获得了该输出,其中树是 nltk.tree.Tree

for tree in treelist1:
    print unicode(str(tree))

我需要像 print(TreePrettyPrinter(tree).text()) 这样的东西,它可以提供我想要的 unicode 兼容输出,但是我不需要树布局想。 NLTK中有没有一种方法也可以得到像输出这样的可读文本?


的输出也有同样的问题
for rule in grammar1.productions():
    print(rule.unicode_repr())

其中语法 1 是 nltk.grammar.CFG

输出如下

VP -> V
VP -> NP V
N -> '\u0db6\u0dbd\u0dca\u0dbd\u0dcf'
N -> '\u0db8\u0dd2\u0db1\u0dd2\u0dc3\u0dcf'
N -> '\u0db8\u0dda\u0dc3\u0dba'

最终结果非常好。我只对输出的表示有疑问

这里有解决方案 question。也适用于 Python 2.7

与 NLTK 无关。简单的解决方案就是 decode 输出文本 'unicode_escape'

print(str(tree).decode('unicode_escape'))

print(rule.unicode_repr().decode('unicode_escape'))

对于打印 nltk.tree.Tree 类型的树作为括号文本的 NTLK 类解决方案,请使用以下内容

print(tree.pformat())