[英]How to strip SGML tags from a text file using Python?
我最近遇到了标准通用标记语言 。 我已经从EMILLE / CIIL语料库获取了SGML格式的语料库 。 这是该语料库的文档:
我只想提取文件中存在的文本。 文档中语料库的编码和标记信息是:
文本被编码为两字节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.