Проекты

Разработка программного обеспечения для генерации краткого содержимого выбранного текстового отрывка

Работа призёров конкурса проектов и исследований «Инженеры будущего» открытой городской научно-практической конференции «Инженеры будущего» в секции «Информационные технологии, программирование, прикладная математика, социальный инжиниринг» среди работ учащихся 10–11 классов

Направление работы: Инженеры
Авторы работы: Университетский лицей №1511 предуниверситария НИЯУ МИФИ
Предметы: Информатика
Классы: 10 класс
Мероприятия: Конкурс проектов и исследований «Инженеры будущего» открытой городской научно-практической конференции «Инженеры будущего» 2021 года

Актуальность

Ежедневно каждый из нас сталкивается с огромным информационным потоком. Нам часто необходимо изучить множество объёмных текстов (статей, документов) в ограниченное время. Сегодня мы переживаем эпоху информационного взрыва: за сутки человечество производит около 2.5⋅1018 байт информации.

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

Цель

Разработать программное обеспечение, позволяющее генерировать краткое содержание выбранного текстового отрывка с сохранением смысла исходного текста.

Задачи

Задача проекта: создать Telegram-бот для генерации краткого содержимого выбранного текстового отрывка с сохранением его смысла.

Оснащение и оборудование, использованное при создании работы

  • Ноутбук с установленным ПО (Python)

Описание

Пользователь отправляет исходный текст боту в мессенджер Telegram в одном из трёх форматов: pdf, изображение с текстом или текстовое сообщение.

Текст подготавливается к дальнейшей обработке: все слова в тексте лемматизируются, т.е. приводятся к формату Universal PoS Tags, удаляются стоп-слова и вводные конструкции.

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

С помощью заранее обученной и инициализированной модели word2vec для каждого слова из текста находится его векторное представление (все слова в модели представлены в виде векторов и имеют уникальный набор координат). Далее определяется вектор каждого предложения: отношение суммы слов-векторов к длине исходного предложения.

Так модель обучается на большом текстовом корпусе и строится на контекстной близости, тексты с одинаковыми словами будут иметь близкие (по косинусному расстоянию) векторы, отсюда можно легко определить схожие по смыслу предложения. Для этого создаётся пустая матрица подобия для хранения значений косинусного расстояния предложений, вычисляемых по формуле скалярного произведения векторов в n-мерном базисе.

Преобразуем матрицу подобия в граф. Узлы этого графа будут представлять предложения, а рёбра – оценки сходства между предложениями. Здесь применяем алгоритм PageRank, чтобы получить рейтинг предложений:

  • Если размер исходного текста достаточно большой, то и объём выдержки, способной сохранить его смысл, также будет немал. Поэтому для его уменьшения и составления резюме, близкого к аннотации, созданной человеком, был реализован метод абстрактивной суммаризации текста, основанного на архитектуре «кодировщика» и «декодировщика», сделанной с помощью Long short-term memory – типа нейронных сетей, способных к обучению долговременным зависимостям, обученной на новостных текстах и их заголовках. 
  • Окончательный результат отправляется пользователю в одном из трёх удобных ему форматах: pdf, mp3 файл (где начитывается краткое содержание) или текстовое сообщение.

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

Результаты работы/выводы

 

Наш алгоритм

Чужой алгоритм

ROUGE – 1, p

0.15

0.1

ROUGE – 2, p

0.07

0.05

ROUGE – L, p

0.16

0.11

ROUGE – 1, r

0.30

0.2

ROUGE – 2, r

0.12

0.11

ROUGE – L, r

0.27

0.24

Процент сжатия исходного текста находится в диапазоне 25–30 процентов. Порядок слов, а также основная мысль исходного текста сохраняются. Абстрактивный метод на данный момент показывает не очень хорошие результаты. Это связано с тем, что модель была обучена на небольшом наборе данных. Обработка больших Data Set требует значительно большего времени и вычислительных ресурсов.

По данным метрик ROUGE-N, ROUGE-L, в сравнении краткого содержания, которое выдал алгоритм, с редакторским пересказом, авторский превосходит показатели аналогичных программ, которые на данный момент доступны в русскоязычном сегменте интернета. Для решения проблемы абстрактной суммаризации (создание пересказа, похожего на редакторский) был выбран метод аугментации текста – метод построения дополнительных данных из исходных при решении задач машинного обучения, показывающего неплохие результаты.

Перспективы использования результатов работы

Результаты работы могут быть использованы в различных прикладных задачах: суммаризация множества веб-страниц и др.

Сотрудничество с вузом при создании работы:

НИЯУ МИФИ

Мнение автора

«Наш проект позволил глубже погрузиться в тему NLP и машинного обучения. Открытая научно-практическая конференция «Инженеры будущего» – замечательное мероприятие для учащихся школ России, которое позволяет раскрыть свои таланты»