Category: литература

Category was added automatically. Read all entries about "литература".

Сытое брюхо к прытливости глухо (генератор OOV лексики + генератор стихов)

Генератор OOV лексики и немного NLP'шной требухи в виде ударятора, тэггера и т.д. позволяют генерить вот такую народную мудрость:

Сытое брюхо к прытливости глухо

шлиботун в бороду, мужатбон в сторону

когда риботка урчит, голова молчит

Утливость от ботности недалеко падает

набитое брюхо к файболту глухо

дарёному коню в полты не смотрят
Collapse )

Озвучка и визуализация стихов сервисом виртуального ведущего от mail.ru

Попробовал озвучить цифровые стихи с помощью сервиса от Mail.Ru.
Жаль, но движения губ диктора получились вообще не синхронизированы с текстом. Возможно, это результат "специфичного" текста, нейросетка при обучении такого контента, конечно, не видела.
А вот качество TTS вполне на высоте, не хуже Яндексовского TTS (вначале будет реклама, неизбежное зло):

Collapse )

Цифровые стихи

Генерация "стихотворного" текста, в котором лексика ограничена числительными и служебными словами:

я пятьдесят из четыре шестьсот
девяносто одиннадцать двадцать.
пятнадцать, одиннадцать, я - девятьсот
четырнадцать двенадцать!


Озвучка TTS движком Яндекса голосом радостного Филиппа - тут.

PS: Лирично (насколько это применимо к числительным):


Семьдесят пятнадцать
Под семьсот шестьсот
половина восемь,
двадцать восемьсот.

На четыре двадцать
тысяча шестьсот
девятнадцать восемь
десять восемьсот.

И двадцать тринадцать
В девять восемьсот,
И пятьсот пятнадцать
В семьдесят шестьсот.

Немного "шедевров" от генератора стихов для чит-чата

Чатбот не картошка, не выбросишь в окошко.

Чатбот дурака видит издалека.

Чатбот спать не даёт: хорошо живет.

Язык чешется, чатбот тешится.

(Предыдущие нетленки - тут)

Надо как-то оценивать качество сгенерированных стихов

Из неплохого на выходе стихогенератора:

=== Разработчик-лингвист ===

Баг ли по лесу идёт —
Баги за руку ведёт,
Из программ выходит сказка!
Из отладок! Из работ!

Это что за перевод?
Это бага хоровод!
Баг - наречие и прелесть,
С нами рядышком живёт


Главная проблема этой модели - низкий выход годного материала. Что побуждает задуматься о автоматизации процесса оценки сгенерированных текстов с точки зрения мммм семантичности что-ли. После этого стихогенератор можно оформлять как оригинальный скилл для чатбота. И будет Вика на просьбы 'сочини стишок про бабочек' выдавать такие штуки, веселить собеседника.

Релиз чатбота 0.0.0.5

Докер-образ чатбота 0.0.0.5 выложен в репозитории. Там же выложены все актуальные языковые модели и исходники бота.

Основное изменение - некоторая оптимизация процесса запуска чатбота. Я внес небольшие изменения в проект грамматического словаря (ruword2tags), чтобы можно было загружать не полную русскую словарную базу из 2.5 миллионов словоформ, а только небольшое подмножество, которое фактически встречалось в обучающих датасетах. Сопутствующие правки сделаны также в проекте частеречной разметки rupostagger.

Также я поправил некоторые баги в моделях интерпретации.

Ну и разумеется общее улучшение языковых моделей, переобученных по расширенным датасетам. В частности, сейчас в checklist'е проверки бота есть целый набор для проверки FAQ-режима бота:
Collapse )

Новая версия датасета с русскоязычными диалогами (130 Мб)

Выложил в репозиторий архивчик с текстовым файлом - 130 Мб русскоязычных диалогов, извлеченных из большого корпуса (художественная литература всех жанров, документалистика и еще всякое):

- Андрюха! Да чего же теперь будет?
- Что надо, Арбузик, то и будет!

- Мне бы Шиповника...
- Какого еще Шиповника?


Каждый диалог содержит от 2 реплик, отделяется пустой строкой. Чистка выполнялась автоматически, некоторое количество мусора в диалогах осталось.

Посимвольная генерация ответа в чатботе - иногда это похоже на детский лепет, реально

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

Кстати, касательно чередования гласных и согласных не грех вспомнить, что марковские процессы возникли 100 с лишним лет назад именно как результат изучения статистики чередования букв в Евгении Онегине, о чем есть даже небольшой абзац в вики:

Сам Марков для иллюстрации своих результатов исследовал зависимость в чередовании гласных и согласных в первых главах «Евгения Онегина» и «Детских годов Багрова-внука»

Далее - избранные результаты валидации с ошибками генерации. Premise - это найденная релевантная предпосылка, question - заданный вопрос, model answer - требуемый эталонный ответ, pred. answer - сгенерированный сеткой ответ:
Collapse )

Как SentencePiece токенизирует русскоязычный текст

SentencePiece - питоновская библиотека для unsupervised tokenization. Для японского и и китайского, видимо, является очень хорошей альтернативой токенизаторам с handcrafted rules (типа MeCab, который и я когда-то использовал). А для английского языка дает в нейросетевых моделях (гугловский трансформер и BERT) такую приятную вещь, как заранее фиксированный размер словаря.

А как выглядит результат токенизации для русскоязычного текста, учитывая темную сторону русского языка - слишком богатое словоизменение? Далее - краткие результаты эксперимента.
Collapse )

Реализация линейной регрессии МНК с autograd - библиотекой для символического дифференцирования

Случайно наткнулся недавно на Autograd - питоновскую либу, которая умеет для функции, заданной исходным текстом в коде, получить функцию же частной производной по указанному аргументу. Всякие tensorflow, pytorch и theano это, конечно, тоже делают под капотом. Но autograd делает это с любой питоновской функцией. Магия.
Collapse )