Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Пройдите все испытания в игре кальмара второго сезона

Игра в кальмара 2: новые испытания

Аркады, Казуальные, Для мальчиков

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

IT + Рецепт

С этим тегом используют

Программирование IT юмор Программист Юмор Работа Картинка с текстом Разработка Кулинария Еда Видео рецепт Приготовление Выпечка Вертикальное видео Ингредиенты Все
3 поста сначала свежее
29
Timeweb.Cloud
Timeweb.Cloud
2 года назад
TECHNO BROTHER
Серия Своими руками

Генерируем рецепты блюд на JS и цепях Маркова⁠⁠

Автор: Iskorkin

Оригинальный материал

Генерируем рецепты блюд на JS и цепях Маркова Рецепт, Приготовление, Timeweb, Блюдо, Кулинария, Генерация, IT, Код, Длиннопост

Когда-то меня очень радовал один паблик в соцсети ВК. По заявлениям администрации нейросеть генерировала рецепты, которые и составляли 99% контента. Вероятно, действительно это была простенькая нейросеть вроде RNN или LSTM. К сожалению, последний пост в паблике датирован 2019 годом, а моя тяга к изысканным блюдам не угасла, поэтому было решено сделать генератор рецептов на JS и цепях Маркова. Почему не повторить эксперимент с более продвинутой доступной нейросетью вроде GPT-2? Потому что для ее обучения требуется достаточно много времени, ресурсов и данных.

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

Готовим корпус

Когда-то у меня уже был собран датасет на 3000~ строк из кучи рецептов. Если мне не изменяет память, это результат парсинга одной из кулинарных групп в ВК. В txt файле все рецепты разделены пустыми строками.

Синхронно считаем данные, приведем к строке, и, разделим ее на массив абзацев по пустым строкам с помощью \n\n.

Генерируем рецепты блюд на JS и цепях Маркова Рецепт, Приготовление, Timeweb, Блюдо, Кулинария, Генерация, IT, Код, Длиннопост
Генерируем рецепты блюд на JS и цепях Маркова Рецепт, Приготовление, Timeweb, Блюдо, Кулинария, Генерация, IT, Код, Длиннопост

Корпус готов!

Разбираемся с Марковым

Как и упоминалось в введении, будем использовать математическую модель цепей Маркова. Это модель, которая предсказывает следующий элемент в последовательности на основе предыдущих. В контексте генерации рецептов на основе цепей Маркова мы будем использовать модель, которая будет предсказывать следующее слово в рецепте на основе предыдущих слов. Для этого мы будем использовать статистический подход, который будет анализировать частоту встречаемости слов в корпусе данных и использовать эту информацию для генерации новых рецептов.

Для примера возьмем два заголовка, которые будут условным корпусом: “Тосты с сельдью и огурцом” и “Тосты с анчоусами и грецкими орехами”

Представим матрицу переходов для этих предложений:

Генерируем рецепты блюд на JS и цепях Маркова Рецепт, Приготовление, Timeweb, Блюдо, Кулинария, Генерация, IT, Код, Длиннопост
Генерируем рецепты блюд на JS и цепях Маркова Рецепт, Приготовление, Timeweb, Блюдо, Кулинария, Генерация, IT, Код, Длиннопост

Следуя этой матрице, после слова “Тосты” с вероятностью 100% будет идти “с”, а вот после “с” с вероятностью в 50% может идти либо “сельдью”, либо “анчоусами”. Очевидно, что чем больше корпус — тем больше вариантов и тем больше статистический разброс.

Реализация

Для начала соберем объект токенов в конструкторе класса генератора. Знаки препинания будут включаться в токены, а регистр букв останется оригинальным. Во-первых, это упростит токенизацию, во-вторых сделает абзацы более корректными.

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

Генерируем рецепты блюд на JS и цепях Маркова Рецепт, Приготовление, Timeweb, Блюдо, Кулинария, Генерация, IT, Код, Длиннопост

Если залогировать получившийся объект tokens, он будет иметь такой вид:

Генерируем рецепты блюд на JS и цепях Маркова Рецепт, Приготовление, Timeweb, Блюдо, Кулинария, Генерация, IT, Код, Длиннопост

Вы можете заметить, что токены могут повторяться. Мы их оставляем в таком виде, чтобы сохранить статистические вероятности. Например, после токена ‘муке’ с вероятностью в 75% будет идти ‘и’, а ‘(20’ или ‘(30’ с вероятностью в 7.5% соответственно.

Для генерации нового текста берем случайное стартовое слово. После, в цикле while, выбираем случайные слова для текущего токена и вставляем их в массив результата, пока не наткнемся на END. В конце возвращаем результат в виде строки, соеденив элементы массива пробелами.

Генерируем рецепты блюд на JS и цепях Маркова Рецепт, Приготовление, Timeweb, Блюдо, Кулинария, Генерация, IT, Код, Длиннопост

В конце концов, можно протестировать:

Генерируем рецепты блюд на JS и цепях Маркова Рецепт, Приготовление, Timeweb, Блюдо, Кулинария, Генерация, IT, Код, Длиннопост

Вместо заключения, отправляемся на кухню

Самые забавные на мой взгляд получившиеся результаты:

ИНГРЕДИЕНТЫ:
● оливковое масло — перемешиваем.
Для получения однородной массы.
Каждое печенье достать из черного перца
1 чайная ложка.
Готовим: Плавленый сырок нарезать и убрать форму.
В центр выложить яблоки в духовке минут на 30-40 минут до 180 градусов и разровнять в салатник.

Все мы будем добавлять муку, добавить мед — 0,5 чайной ложки соевого соуса. Даем остыть и добавляем муку.
Хорошенько перемешиваем курицу в предварительно добавить мед и я использовала замороженные ягоды, перед подачей на сметане без костей,
● лук,
● чеснок,
● оливковое масло и даем настояться 15-20 минут.
Замечательное кунжутное печенье на 15-20 минут на средней терке. Колбасу и 1 шт.
Кунжут — 3 шт, морковь натираем на пару часов или ужина. Особенно он превращается в разогретую до готовности.

💞 Салат «Венеция»
Ингредиенты:
● 350-400 г. оливок;
● 60 г. слабосоленой семги;
● 40-50 г. слабосоленой семги;
● 40-50 г. куриной тушки.

соль
ИНГРЕДИЕНТЫ:
● 1 ст. л.

Огонь нужно развести водой и потушить еще 65 минут. Подаем сырный суп с солью и морковь, покрывая весь салат.
Из яичного белка.
Приятного аппетита!

Ингредиенты:
1 банка (140 г.);
● майонез.
Приготовление:
Лук очистить от Светланы Гуаговой
Натереть рыбу сыром.
Нарезаем полукольцами луком, смазывать им гостей. Готовится торт что-то простое в духовке.
Выпекать булочки 25-30 мин до полного застывания.

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

ИНГРЕДИЕНТЫ:
● Свежий (500г ) не суп!

Подпишись на наш блог, чтобы не пропустить новые интересные посты!

Показать полностью 9
[моё] Рецепт Приготовление Timeweb Блюдо Кулинария Генерация IT Код Длиннопост
4
51
FloeHetling
FloeHetling
8 лет назад

Коктейль айтишный "Аптайм"⁠⁠

Все мы знаем знаменитую "кофеколу", но мало кто умеет ее готовить в питьевом состоянии. Поэкспериментировав как следует с этой нестабильной материей, я добился того, что коктейль можно пить а не употреблять в виде пены.

Итак, нам понадобится:


- 3 ч/л сублимированного (не растворимого!) кофе


- 0.5 л. кофеиносодержащего напитка (не более 150 г/л, сойдет пепси, кола)


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


размешиваем до полного растворения. Должно получиться не больше 1/5-1/6 стакана.


В другой чистый стакан аккуратно вливаем пепси или колу без образования пены - нам потребуется 4/5 стакана на одну порцию


ставим стакан на блюдце с салфеткой. Вливаем в него наш концентрат кофе. Излишки пены снимаем ложкой, убираем со стакана салфеткой (если все сделали правильно, литься через край не должно)


На получившуюся пенную шапку можно покрошить корицы или нарисовать узор молотым кофе с зубочистки.


Осторожно, после данного коктейля вы начнете видеть время.

Показать полностью
[моё] Рецепт Кофе Кофеин IT Сисадмин Айтишники Текст
21
DELETED
10 лет назад

Электронный рецепт⁠⁠

Электронный рецепт
Инфографика Рецепт IT
2
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии