【发布时间】:2013-04-11 10:59:05
【问题描述】:
我正在使用 Python NLTK 标记一些 unicode 文本。 问题是文本来自编码错误的数据源,并且没有指定编码。经过一番折腾,我发现文本必须是 UTF-8 格式。 给定输入字符串:
s = u"The problem isn’t getting to Huancavelica from Huancayo to the north."
我想用 NLTK 处理它,例如用于 POS 标记,但特殊字符未解析,我得到如下输出:
The/DT problem/NN isn’t/NN getting/VBG
代替:
The/DT problem/NN isn't/VBG getting/VBG
如何清除这些特殊字符中的文本?
感谢您的任何反馈,
穆龙
更新:如果我运行HTMLParser().unescape(s),我会得到:
u'The problem isn\u2019t getting to Huancavelica from Huancayo to the north.'
在其他情况下,我仍然会在文本中看到 & 和 
 之类的内容。
我需要做什么才能将其翻译成 NLTK 可以理解的内容?
【问题讨论】:
-
不,您的示例输入文本已由您的代码完全转换为 Unicode。我没有看到任何
&#....;逃脱。您的示例文本是您的方法返回的吗? -
实际上我将文本存储在一个文件中,写入一个 XML 文件,然后再次读取它,所有这些都使用 lxml。
-
试试
txt = lec.decode('utf8').encode('latin9') -
解码/编码不起作用。输出字符串是一样的。
-
我从根本上简化了这个问题。
标签: python xml escaping special-characters nltk