2016-11-10 4 views
0

В последнее время я столкнулся с Standard Generalized Markup Language. Я приобрел корпус, который находится в формате SGML от EMILLE/CIIL Corpus. Это документация для этого корпуса:Как удалить теги SGML из текстового файла с помощью Python?

EMILLE Corpus Documentation

Я хочу, чтобы извлечь только текст в файле. Информация о кодировании и разметке корпуса из документации:

Текст кодируется как двухбайтовый текст в Юникоде. Для получения дополнительной информации о Unicode. Тексты помечены в SGML, используя разметку CES уровня 1. Каждый файл также содержит полный заголовок, который определяет происхождение текста.

Мне сложно скрыть эти теги. Я попробовал «регулярное выражение», а также «красивый суп», но он не работает. Это пример текстового файла. Язык, который я хочу сохранить, - панджаби.

Sample text file

+0

Это XML и есть несколько парсеров XML, что там вы можете использовать. В python мне нравится 'lxml' the best - его интерфейс для библиотек' libxml' и эффективен. 'ElementTree' - это реализация с чистым питоном. Даже не пытайтесь использовать regex для этого, его невероятно сложно для xml. – tdelaney

+0

Другой вариант - использовать XSLT. Предположим, вам нужен текст, но вы также хотите разбить абзацы на '

...

' границы. Это может быть выражено в XSLT компактно (если несколько критически). – tdelaney

+0

Спасибо @tdelaney. Я собираюсь использовать lxml. Я сообщу вам, когда это будет сделано. – ssokhey

ответ

1

Попробуйте следующее:

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() 
+0

Привет, спасибо. Это действительно полезно, но на выходе есть некоторые недостатки. Я не знаю почему. Я работаю над этим. – ssokhey

+0

Работает. Извините за задержанный ответ! – ssokhey