Методология создания и разметки корпуса текстов, Автоматизированное извлечение текстов для корпуса политических статей сайта Lenta. ru - Компьютерная лингвистика в образовательной среде

Автоматизированное извлечение текстов для корпуса политических статей сайта Lenta. ru

Для создания полезного обучающего корпуса требуется постоянное пополнение коллекции текстов. Именно поэтому в ходе исследования было принято решение о написании программы, которая будет автоматически подгружать сразу несколько статей с заданного сайта, а также мгновенно обрабатывать и размечать их.

Из множества доступных интернет-изданий, в ходе анализа текстовой информации, структуры и формата страницы веб-сайта, выбор пал на одно из ведущих российских периодических интернет-изданий -"Lenta. ru", основанное при содействии Фонда эффективной политики

Антоном Борисовичем Носиком (1999г). Наличие мобильной версии с минимальной разметкой и постоянное обновление новостной ленты значительно упрощают создание корпуса и позволяют достаточно быстро наполнить его текстами различной тематики. В данном исследовании были использованны рубрики, посвященные российской и мировой политики.

Программа написана на высокоуровневом языке программирования - Python. Он позволяет подгружать достаточно большое количество различных библиотек, значительно расширяющих функционал создаваемой программы.

Так, при написании кода, извлекающего тексты с сайта, были использованны библиотеки [Приложение1]:

    1) Lxml. html- позволяет обрабатывать файлы html формата, а так же записывать текстовую информацию в подходящий для обработки формат (расширение файла xml); 2) Requests - отвечает за запрос на сайте Lenta. ru для извлечения статей и необходимой метаразметки: заголовок, дата, автор статьи (при отсутствии автора, срабатывает подстановка универсального имени author='lenta. ru') и др.; 3) Os. path - требуется для создания или подгруздки и дальнейшей записи уже созданного ранее файла.

Основные функции, используемые в коде:

    - Get_page(url) - функция запроса страницы в Интернете. Сайт Lenta. ru не позволяет делать запрос, используя встроенный "User-Agent". Как только запускается код, он посылает веб-серверу информацию о себе. Это текстовая строка - часть HTTP запроса, начинается с User-agent: или User-Agent:, и обычно содержит такую информацию, как версию и название приложения (частью которого является код), операционную систему компьютера и язык. Именно поэтому в программе приходится прописывать нового "User-Agent": 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'. (http://www. useragentstring. com) Данная строка принимается сайтом и позволяет коду, находящемуся в локальном доступе, обращаться и извлекать данные со страницы. - Update(filename) - служит для обновления статей. Используя функции извлечения элементов по классу, представленных библиотекой lxml. html, мы можем позволить себе извлечь только те элементы, которые необходимы для создания корпуса: - title - заголовок статьи, - date - дата создания статьи, - author - автор стати, - body - сама статья.

Также, данная функция записывает полную ссылку <url> на данную статью, позволяющую присваивать каждому тексту особый идентифицирующий его "код". Именно хранение его в памяти дает возможность пропускать и не обрабатывать заново уже существующие тексты, что значительно сокращает время работы программы.

Стоит отметить, что информация извлекается только из заданных рубрик 'russia/politic/' и 'world/politic/'.

- Load_articles (filename) - данная функция использует основные инструменты модуля "os. path".

Os. path. isfile (path) - позволяет узнать существует ли данный файл.

Если файл отсутствует - функция вернет пустую базу статей. Если файл есть - он будет загружен.

Похожие статьи




Методология создания и разметки корпуса текстов, Автоматизированное извлечение текстов для корпуса политических статей сайта Lenta. ru - Компьютерная лингвистика в образовательной среде

Предыдущая | Следующая