Вы здесь ▸ Технологии и инструменты ▸
Исследования и разработки В.К. Иванова
Вы здесь ▸ Технологии и инструменты ▸
Исследования и разработки В.К. Иванова
Вы здесь ▸ Технологии и инструменты ▸
Завершаю исследование моделей для резюмирования текстов, начатое ранее. В этой части мы посмотрим на что способны модели, использующие экстрактивный подход. Например, как справляются с задачей резюмирования текстов алгоритмы из одной из лучших реализаций такого подхода – библиотеки sumy? В предыдущих частях мы посмотрели как решают эту задачу некоторые специализированные модели и универсальные большие языковые модели. Резюмирование текстов sumy рассмотрено с позиций любопытного и активного пользователя, стремящегося применить современные достижения ИТ в своей повседневной практике. Как все мои другие исследования, настоящий материал имеет отношение к базам данных и нейронным сетям.
Введение
Выбор моделей для оценки
Тексты для резюмирования
Программное обеспечение для экспериментов
Результаты резюмирования стихотворения А.А. Блока
Результаты резюмирования описания приложения Текстоматика
Обсуждение
Заключение
Напомню, что целью этого исследования является попытка дать сравнительную оценку возможностям бесплатных open source моделей для суммаризации или резюмирования текстов. При этом анализ результатов должен быть основан на пользовательских субъективных оценках. В этой части исследования для сравнения приводятся результаты работы экстрактивных алгоритмов библиотеки sumy. Напомню, что экстрактивный подход заключается в извлечении из исходного текста наиболее «значимых» информационных блоков. В качестве блока могут выступать отдельные абзацы, предложения или ключевые слова. Методы данного подхода характеризует наличие оценочной функции важности информационного блока. Ранжируя эти блоки по степени важности и выбирая ранее заданное их число, мы формируем итоговое резюме текста. Подробности можно посмотреть здесь.
Для оценки качества резюме отобраны модели (алгоритмы), стандартные для библиотеки sumy:
| Модель | Описание |
|---|---|
| Luhn | Алгоритм, основанный на предположении, что наиболее важными предложениями являются те, в которых наиболее значимые или ключевые слова. Ключевые слова – это те, которые чаще всего встречаются в тексте, исключая стоп-слова. |
| Latent Semantic Analysis, LSA | Латентный семантический анализ основан на разложении матрицы по сингулярным значениям (SVD). Он преобразует данные текста в пространство меньшей размерности и представляет предложения в виде сингулярных векторов, величина которых интерпретируется как его значимость. |
| LexRank | Алгоритм ранжирования на основе графа предложений текста. Использует косинусное сходство между двумя предложениями. В результате строит взвешенный граф всех предложений текста. Основан на алгоритме HITS. |
| TextRank | Алгоритм ранжирования на основе графа предложений текста. Рекурсивно вычисляет значимость предложений по связям с другими предложениями. Основан на алгоритме PageRank. |
| KL Divergence | При использовании KL-дивергенции (расстояния) вычисляется и минимизируется разница между двумя распределениями вероятностей n-грамм в словаре исходного текста и словаре текста резюме. |
Подробности см. здесь.
Тексты для резюмирования те же, что и в предыдущей частях:
Для проведения экспериментов использовался модуль на Python, разработанный мной. Состоит из:
...
from sumy.parsers.plaintext import PlaintextParser
from sumy.nlp.tokenizers import Tokenizer
from sumy.summarizers.text_rank import TextRankSummarizer
from sumy.summarizers.lex_rank import LexRankSummarizer
from sumy.summarizers.lsa import LsaSummarizer
from sumy.summarizers.kl import KLSummarizer
from sumy.summarizers.luhn import LuhnSummarizer
from sumy.nlp.stemmers import Stemmer
import nltk
from nltk.corpus import stopwords
text = ...
parser = PlaintextParser.from_string(text, Tokenizer(options['lang']))
stemmer = Stemmer(options['lang'])
summarizers = {'TextRank': TextRankSummarizer(stemmer), 'LexRank': LexRankSummarizer(stemmer), 'LSA': LsaSummarizer(stemmer), 'KLDivergence': KLSummarizer(stemmer), 'Luhn': LuhnSummarizer(stemmer)}
summarizer = summarizers[options['alg']]
summarizer.stop_words = frozenset(stopwords.words(options['lang']))
summarizer = summarizer(parser.document, options['sents'])
summary=""
for sentence in summarizers[options['alg']](parser.document, options['sents']):
summary += str(sentence) + ' '
return summary
Условие для длины текста резюме: 3 предложения.
Luhn
О доблестях, о подвигах, о славе Я забывал на горестной земле, Когда твое лицо в простой оправе Перед мной сияло на столе. Ты в синий плащ печально завернулась, В сырую ночь ты из дому ушла. Не знаю, где приют твоей гордыне Ты, милая, ты, нежная, нашла… Я крепко сплю, мне снится плащ твой синий, В котором ты в сырую ночь ушла…
Latent Semantic Analysis, LSA
О доблестях, о подвигах, о славе Я забывал на горестной земле, Когда твое лицо в простой оправе Перед мной сияло на столе. Летели дни, крутясь проклятым роем… Вино и страсть терзали жизнь мою… И вспомнил я тебя пред аналоем, И звал тебя, как молодость свою… Твое лицо в его простой оправе Своей рукой убрал я со стола.
LexRank
О доблестях, о подвигах, о славе Я забывал на горестной земле, Когда твое лицо в простой оправе Перед мной сияло на столе. Я бросил в ночь заветное кольцо. Ты в синий плащ печально завернулась, В сырую ночь ты из дому ушла.
TextRank
О доблестях, о подвигах, о славе Я забывал на горестной земле, Когда твое лицо в простой оправе Перед мной сияло на столе. Летели дни, крутясь проклятым роем… Вино и страсть терзали жизнь мою… И вспомнил я тебя пред аналоем, И звал тебя, как молодость свою… Не знаю, где приют твоей гордыне Ты, милая, ты, нежная, нашла… Я крепко сплю, мне снится плащ твой синий, В котором ты в сырую ночь ушла…
KL Divergence
Но час настал, и ты ушла из дому. Ты в синий плащ печально завернулась, В сырую ночь ты из дому ушла. Не знаю, где приют твоей гордыне Ты, милая, ты, нежная, нашла… Я крепко сплю, мне снится плащ твой синий, В котором ты в сырую ночь ушла…
Условие для длины текста резюме: 8 предложений.
Luhn
Например, установить, что: – объем документа превышает допустимый; – документ содержит большое количество ошибок; – содержание документа не соответствует заголовку; – текст труден для понимания; – не содержит необходимые разделы или не оформлен в соответствии с требуемым стандартом; – и так далее. Вот несколько примеров: – текст документа будет понятен специалисту на 65%; – текст документа совпадает по смыслу с текстом документа другого автора на 92%; – грамотность текста документа 15%.
Эксперт – Выполняет содержательную проверку текстовых документов, подлежащих экспертизе (соответствие содержания документа цели его подготовки, логическая завершенность, новизна и/или востребованность описанных объектов, уникальность текста и т.п.) – Выполняет формальную проверку текстовых документов, подлежащих экспертизе (корректность структуры, состав реквизитов, размер документа и т.п.) – Формирует и обосновывает итоговую оценку экспертизы документов в своем заключении. Исследователь, автор научных работ – Оценивает соответствие своих текстов (научных статей, отчетов, книг, эссе, докладов, обзоров и т.п.) установленным формальным и содержательным требованиям. Аспирант и магистрант – Оценивает соответствие своих текстов (научных статей, разделов диссертации и диссертации в целом, докладов, обзоров и т.п.) установленным формальным и содержательным требованиям. Студент университета или колледжа – Проверяет тексты своих рефератов, отчетов по лабораторным работам, контрольных, курсовых, дипломных и других письменных работ на соответствие требованиям.
Модель оценки документов нужна для того, чтобы определить: – Что мы будем оценивать, то есть задать характеристики текста, интересующие нас в данном случае. Формируется отчет о результатах оценки документа по каждому показателю и документа в целом.
Latent Semantic Analysis, LSA
В приложении Текстоматика оценка текста производится по этим и другим показателям, но более конкретно. Профессиональная экспертиза текстовых документов является важной составляющей деятельности квалифицированных специалистов во многих областях. Преподаватель вуза – Проверяет тексты рефератов, контрольных, курсовых, дипломных и других письменных работ своих студентов. Редактор – Проверяет авторские тексты (книги, статьи, обзоры и т.п.), приводя их в соответствие с установленными требованиями. Существует достаточное количество показателей качества текстов, вычисление которых возможно по тому или иному формальному алгоритму. Но в отношении многих показателей их вычисление является нетривиальной задачей, то есть не имеющей решения с помощью известных простых алгоритмов. Модель оценки документов нужна для того, чтобы определить: – Что мы будем оценивать, то есть задать характеристики текста, интересующие нас в данном случае. – Как мы будем оценивать эти характеристики, то есть выполнить настройку параметров алгоритмов оценки.
LexRank
Приложение Текстоматика предназначено для интеллектуальной оценки структуры и содержания текстовых документов. Вот несколько примеров: – текст документа будет понятен специалисту на 65%; – текст документа совпадает по смыслу с текстом документа другого автора на 92%; – грамотность текста документа 15%. Ученик школы – Проверяет тексты своих письменных работ на соответствие требованиям. Например, так можно вычислить показатель удобочитаемости текста или степени соответствия текста заданной структуре. Примеры: соответствие содержания документа его заголовку, похожесть текста документа на тексты других документов. – Оценка текста. Выполняется анализ документа по каждому показателю, заданному в модели оценки. Формируется отчет о результатах оценки документа по каждому показателю и документа в целом.
TextRank
Например, установить, что: – объем документа превышает допустимый; – документ содержит большое количество ошибок; – содержание документа не соответствует заголовку; – текст труден для понимания; – не содержит необходимые разделы или не оформлен в соответствии с требуемым стандартом; – и так далее. В приложении Текстоматика оценка текста производится по этим и другим показателям, но более конкретно. Вот несколько примеров: – текст документа будет понятен специалисту на 65%; – текст документа совпадает по смыслу с текстом документа другого автора на 92%; – грамотность текста документа 15%.
Эксперт – Выполняет содержательную проверку текстовых документов, подлежащих экспертизе (соответствие содержания документа цели его подготовки, логическая завершенность, новизна и/или востребованность описанных объектов, уникальность текста и т.п.) – Выполняет формальную проверку текстовых документов, подлежащих экспертизе (корректность структуры, состав реквизитов, размер документа и т.п.) – Формирует и обосновывает итоговую оценку экспертизы документов в своем заключении. Исследователь, автор научных работ – Оценивает соответствие своих текстов (научных статей, отчетов, книг, эссе, докладов, обзоров и т.п.) установленным формальным и содержательным требованиям. Аспирант и магистрант – Оценивает соответствие своих текстов (научных статей, разделов диссертации и диссертации в целом, докладов, обзоров и т.п.) установленным формальным и содержательным требованиям. Примеры: соответствие содержания документа его заголовку, похожесть текста документа на тексты других документов. Формируется отчет о результатах оценки документа по каждому показателю и документа в целом.
KL Divergence
– Формирует и обосновывает итоговую оценку отрецензированного материала в рецензии (отзыве). Эксперт – Выполняет содержательную проверку текстовых документов, подлежащих экспертизе (соответствие содержания документа цели его подготовки, логическая завершенность, новизна и/или востребованность описанных объектов, уникальность текста и т.п.) – Выполняет формальную проверку текстовых документов, подлежащих экспертизе (корректность структуры, состав реквизитов, размер документа и т.п.) – Формирует и обосновывает итоговую оценку экспертизы документов в своем заключении. Аспирант и магистрант – Оценивает соответствие своих текстов (научных статей, разделов диссертации и диссертации в целом, докладов, обзоров и т.п.) установленным формальным и содержательным требованиям. Ученик школы – Проверяет тексты своих письменных работ на соответствие требованиям. В этом случае используются модели и методы искусственного интеллекта (такие как нейронные сети) и машинное обучение. Примеры: соответствие содержания документа его заголовку, похожесть текста документа на тексты других документов. Примеры: удобочитаемость текста, смысловая нагрузка текста. Отчет сохраняется в базе данных и может быть распечатан.
По А.А. Блоку:
По описанию Текстоматики: