Вступление
Регулярно пользуюсь описанным ранее способом распознавания речи в текст для того, чтобы получить текстовый файл из аудиодорожки какой-нибудь презентации или интересного видео с YouTube.
Чтобы извлечь полезную информацию из текстового файла, достаточно бегло просмотреть его, а это значительно быстрее, чем слушать видео целиком, даже на 2-кратной скорости.
Часть таких материалов потом отправляется в дополнительную личную базу знаний, где можно искать текст по ключевым словам и находить взаимосвязи с другими материалами.
Но что, если текст длинный, и не хочется тратить на него много времени?
А если это не текст видео, а длинная статья?
А если не статья, а книга?
В общем, захотелось получить возможность сжимать текст. Это называется реферование (оно же суммаризация, обобщение смысла). Естественно, автоматически, бесплатно, без регистрации и СМС.
Гуглинг готовых решений привёл к нескольким вариантам. Все с использованием Python, библиотеки transformers и готовых моделей с Hugging Face, и ни один не подошёл на 100%:
- первый примитивный под названием экстрактивная суммаризация, когда из текста просто удаляются малозначащие предложения целиком
- второй работает только для английского языка
- третий работает для русского, но обрабатывает только короткие тексты
А мне-то надо, чтоб на великим и могучем, с переформулированием и для текста любой длины.
Благо, я теперь pre-Junior Python engineer. Решил снова применить эту суперсилу. В результате натягивания трансформера на небольшую дополнительную логику за пару дней получилось то, что мне нужно.
Опирался на эту статью, использовал эту модель.
Примерно половина времени ушла на написание кода и еще половина - на подбор десятка параметров, чтобы на выходе получалась не полная чепуха, а что-то осмысленное.
Естественно, железная башка не понимает смысла текста, а только выполняет множество математических операций по хитрым алгоритмам с использованием предобученной модели. Поэтому местами всё равно получается ерунда. Но по моему скромному мнению результат неплох. К тому же, я попробовал не все возможные варианты и, возможно, он ещё улучшится.
На этом вступление заканчиваю и предлагаю ознакомиться с результатом.
Реферирование на примере видоса с ютуб-канала Максима Дорофеева
Для обработки была взята аудиодорожка видоса Сложности в обучении взрослых людей (Ксерокс, улитки и хулилогика). Все мыслимые и немыслимые права на неё и её производные принадлежат уважаемому автору - Максиму Дорофееву. Я просто мимо проходил :)
А вот что получилось в результате сокращения текста с 1614 до 402 слов:
Основная проблема в обучении взрослых людей заключается в том, что люди ловко уворачиваются от любых предложений начать что-то менять в своей жизни. Это напоминает один из классических экспериментов из области поведенческой психологии. В университете проводили эксперимент с ксероксом. Экспериментатор караулил в библиотеке общей копировальной машиной, чтобы сделать себе копию учебника, книжки, статьи, журнала, чего угодно. Если не было никакого обоснования, то всего лишь 60% испытуемых пропускала меня вперед. Это ощущение, что сам факт наличия слова потому что, уже делает любые ваши слова более убедительными. В рамках курса «Чуть больше успевать, чуть меньше уставать» я хочу пригласить вас на наши обучающие курсы, в которых мы разбираем работу с сопротивлением, а также понимаем, как думать. Привет Алексею Маркову с его книгами HooliNomika. Я считаю, что потребление контента это не обучение и не имеет ничего общего с обучением. Если у вас не получилось завести это в свою жизнь, попробуйте прийти к нам поучиться. В большинстве случаев в голове у человека живет причинно-следственная связь, которая может лежать в основе сопротивления изменению своего поведения. Если я перестану проверять сообщения, то меня уволят с работы. У меня есть еще одна причинно-следственная связь, которая читается таким образом, что если я отключу оповещение о новых сообщениях, то меня уволят с работы. Это может быть плюс-минус и очевидно, но мы к этому вернемся. Для любого работодателя нет ничего более ужасного, чем увлеченные своей работой сотрудники. Если отключат оповещение о новых сообщениях, то я буду редко проверять сообщения, потому что увлекусь выполнением своих рабочих задач. В нашей работе часто возникает много новых вводных, без учета которых выполнение задачи становится бессмысленной. Если я буду редко проверять сообщения, то меня уволят с работы, потому что обоснования выглядят таким образом. В работе с сопротивлением есть смысл поковыряться за причинно-следственными связями и за обоснованиями этих связей. Не может ли оказаться так, что в каждом конкретном случае возникает много вводных без учета которых выполнение задачи становится бессмысленной. В курсе хулиологики мы занимаемся анализом причинно-следственных связей внутри ваших проектов, целей, идей и планов, чтобы понять, где вы сопротивляетесь напрасно. Мне кажется, эти вопросы не уделяют достаточно внимания, потому что в каждой конкретной ситуации ответы могут быть разные. Отключите оповещение о новых сообщениях в чатах, меня уволят. Не пользуйтесь смартфоном лежа в постели, записывайте свои задачи в четкой формулировке, а потом ставить лайки на фотках своим друзьям. Я хочу спиться не в одиночестве и умру. У меня в голове выскакивают отмазки разной степени релевантности, а где мы сопротивляемся оправдано.
Надо заметить, что на самом деле упомянутый курс называется по-другому. Его рабочее название: HooliLogica или Hooligan's Methods of Logical Thinking.
Реферирование на примере Мойдодыра
А вот еще пример: стихотворение Корнея Ивановича Чуковского Мойдодыр.
Надо сказать, что суммаризация (англицизм, но мне нравится больше, чем реферирование) лучше происходит, где речь об одном объекте. Когда фокус внимания в повествовании скачет с одного на другое, потом на третье, и так по кругу, то железная башка перестаёт понимать, кто на ком сидел, и присваивает описанные действия кому попало. Поэтому стишки и рассказики с несколькими персонажами сжимаются плохо, а там, где речь о чем-о одном - хорошо. Сейчас экспериментирую на книге Зонке Аренса "Как делать полезные заметки". Но об этом в другой раз.
Краткий пересказ by железная голова
Отчего всё кругом завертелось, закружилось и помчалось колесом. Я хочу напиться чаю, книжку, свечку — вприпрыжку под кровать, но пузатый от меня убежал, как от огня. Полюбуйся на себя: у тебя такие руки, что сбежали даже брюки,.
Я — великий умывальник, знаменитый Мойдодыр, умывальников начальник и мочалок командир. Если топну ногою, позову солдат, в эту комнату толпой умивальники влетят, а тебе головомойку, неумытому, дадут — прямо в мойку с головой окунут. Впрочем, это уже не первый раз.
Мылом, мылом умывался без конца, а нечистым трубочистам — стыд и срам. Да здравствует мыло душистое, полотенце пушистое, зубной порошок пушистый, густой гребешок — вечная слава воде. Надо, чтобы мыть, плескаться, купаться в ушате, в океане.
Очень краткий пересказ
Если, как говорит один хороший человек, отжать всю воду, и оставить только соль, то получается вот так :)
Мылом, мылом умывался без конца, а нечистым трубочистам — стыд и срам. Надо, чтобы мыть, плескаться, купаться в ушате, в океане. Да здравствует мыло душистое, полотенце.
В процессе отладки
А вот одна из первых версий. Тут не очень близко к тексту, но кративно и смешно, как по мне. Даже присутствует элемент трагедии.
Я уже не первый случай, в котором не умывался из-за плохого умывальника, который выбегал на улицу вместе с соседней маминой, с которой всю ночь умываются мышата, котята, жучки, паучки. Вот теперь мне хочется напиться чаю, книжку, свечку, чтобы сказать о своем желании выйти из тени, несмотря на то что у меня такие руки сбежали от грязного поросёнка, от которого убежало лицо. Кроме того, мне нравится мыть, плескаться, купаться в ушате, океане — что стало для них настоящей трагедией.
Что дальше
Прогресс развивается стремительно, в это вовлечено множество крутых специалистов. Так что дальше будет ещё интереснее. Вот так, например.
Stay tuned, как говорится :)