我有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())
其中grammar1为 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'
最终结果非常好。我只有输出表示的问题
答案 0 :(得分:3)
此question中有解决方案。也适用于Python 2.7
与NLTK无关。简单的解决方案是使用' unicode_escape'
解码输出文字print(str(tree).decode('unicode_escape'))
和
print(rule.unicode_repr().decode('unicode_escape'))
对于NTLK类型的解决方案,打印 nltk.tree.Tree 类型的树作为括号内的文本,请使用以下
print(tree.pformat())