【发布时间】:2016-11-10 16:14:45
【问题描述】:
我最近遇到了Standard Generalized Markup Language。我从EMILLE/CIIL Corpus 获得了 SGML 格式的语料库。这是该语料库的文档:
我只想提取文件中存在的文本。文档中语料库的编码和标记信息为:
文本被编码为两字节的 Unicode 文本。有关 Unicode 的更多信息。 使用 1 级 CES 兼容标记在 SGML 中标记文本。每个文件还包含一个完整的标题,用于指定文本的出处。
我很难剥离这些标签。我尝试了“正则表达式”和“美丽的汤”,但它不起作用。这是示例文本文件。我想保留的语言是旁遮普语。
【问题讨论】:
-
这是 xml,您可以使用多个 xml 解析器。在 python 中,我最喜欢
lxml- 它是libxml库的前端并且效率很高。ElementTree是一个纯 python 实现。甚至不要尝试为此使用正则表达式,这对于 xml 来说非常困难。 -
另一种选择是使用 XSLT。假设您想要文本,但您还想在
<p>...</p>边界上打断段落。这可以用 XSLT 紧凑地表达(如果有点神秘的话)。 -
谢谢@tdelaney。我将使用lxml。完成后我会通知您。
标签: python regex unicode beautifulsoup sgml