繁体   English   中英

如何使用Python从文本文件中剥离SGML标签?

[英]How to strip SGML tags from a text file using Python?

我最近遇到了标准通用标记语言 我已经从EMILLE / CIIL语料库获取了SGML格式的语料库 这是该语料库的文档:

EMILLE语料库文档

我只想提取文件中存在的文本。 文档中语料库的编码和标记信息是:

文本被编码为两字节Unicode文本。 有关Unicode的更多信息。 使用1级CES兼容标记在SGML中标记文本。 每个文件还包括一个完整的标头,用于指定文本的来源。

我很难剥离这些标签。 我尝试了“正则表达式”和“美丽汤”,但是它不起作用。 这是示例文本文件。 我要保留的语言是旁遮普语。

样本文本文件

请尝试以下操作:

from bs4 import BeautifulSoup
import requests

# Assuming this is the url where the file is
html = requests.get('http://www.lancaster.ac.uk/fass/projects/corpus/emille/MANUAL.htm').content

bsObj = BeautifulSoup(html)

textData = bsObj.findAll('p')

for item in textData:
    print item.get_text()

或者,您可以使用简单的正则表达式; 如果数据是包含以<开头和以>结束的标记的字符串,则这些标记之间的所有内容都将被丢弃,您可以将多个空格限制为一个,然后剥离数据。

data = re.sub(r'<.*?>', '', data)
data = re.sub(r'\s+', ' ', data)
data = data.strip()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM