Рубрики
Без рубрики

Создание собственных выпускных выступлений с цепями Маркова

Создайте модель генерации речи марковского выпускного речи с Python и Floydhub. Tagged с помощью Python, машинного обучения, науки о данных.

Представьте себе это. Вы-основатель SLASH CEO SLASH Product-Visionary от трехмесячного запуска электрического скутера. В промежутке между преобразованием мирового транспортного рынка и уходом в ваших первых инвестициях в ангела (вы знаете, просто чтобы промокнуть ноги), ваша любимая альма -матер попросила вас доставить начальный адрес этого года в выпускной класс.

Правильно, вы, к сожалению, не выпали из колледжа, поэтому вы уже потеряли эту удобную повествовательную ветку. Вы соглашаетесь произнести речь и заверить себя, что все будет в порядке. У вас нет проблем с восками о политике местного городка или об экономической экономике вторичного рынка зарядки. Это должно дать вам хорошие пять минут или около того. Может быть, вы даже можете прокатиться на скутере на сцене к подиуму для смеха? Запишите это, вы никому не бормотали.

Но по мере приближения даты выпуска давление растет. Ваш отважный вождь Стафа Слэш-турагент Slash Slash только настоящий друг спрашивает вас, как идет речь, и вы просто улыбаетесь и кивает: «Отлично, Сэм. Речь идет о соединении точек. Задом наперед.”

“Вы имеете в виду, как это Стив Джобс? Стэнфорд, 2005. Я смотрел видео на YouTube как миллион раз ».

“О, нет, не так. Это больше о преимуществах неудачи и, как вы знаете, важности воображения ».

“Дж. К. Роулинг, Гарвард, 2008. Да ладно, ты не собираешься делать самой большой в мире шуткой по воссоединению Гриффиндора. Ты? Скажи нет, пожалуйста. Скажи прямо сейчас. “

“Нет, конечно нет. В любом случае, разве не время для моего ежедневного журналирования «Трансцендентальная благодарность»? Ты чуть не заставил меня пропустить снова. Дайте мне одну из ваших ручек. Не тот, другой “.

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

Прямо как – вы клянетесь – вы собирались начать писать величайший начальный адрес всех времен, один из тех, кто ученые из новобранных данных поднимается и садится, прямо напротив вас. Разве они не видят, что ты в зоне? И почему вы так много платите, если они просто сидят все время?

” Я думаю, что могу вам помочь.

Вы смотрите на них, едва.

“Я услышал ваш разговор с Сэмом. Не давай мне так, это открытая компоновка офиса – вероятно, твоя идея. В любом случае, я думаю, что могу вам помочь. Вам нужна речь. Хороший. И быстро “.

Вы бросаете свою (SAM) ручку на стол, скрещиваете руки и наклоняетесь назад.

“Я слушаю.”

” Вы слышали о цепях Маркова? “

Немного Марков в вашей жизни

В этом посте я покажу вам, как вы можете легко сгенерировать свои собственные перегруженные и высокополученные клише начальных адресов, используя простые Библиотека цепи Маркова в Python и открытый набор данных начальных речей на Floydhub.

Всего за несколько минут вы будете издавать драгоценные камни, такие как:

Секрет успеха в стартапах или любое другое сотрудничество состоит в том, чтобы наклеить старую голову на мотоцикл, плетенный по коридору, он прошел дверь-это было пусто.

Или, возможно, эта самородка мудрости:

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

Попробуй это сейчас

Нажмите эту кнопку, чтобы открыть Рабочая пространство На Floydhub, где вы можете обучить модель цепи Маркова для создания предложений «начало речи» в живой среде Юпитерлаба. Набор данных о начале адреса ~ 300 известных речей будет автоматически прикреплен и доступен в рабочем пространстве. Просто следите вместе с Speech_maker Жюрит -блокнот. Это так просто, ребята.

Но что такое цепочка Маркова?

Цепочка Маркова, названная в честь Этот бородатый дьявол является моделью, описывающей последовательность состояний (эти состояния, которые могут быть какой -то ситуацией или набором значений, или, в нашем случае, слова в предложении), а также вероятность перехода из одного состояния в любое другое состояние.

Лучший объяснитель, который я нашел для цепей Маркова, – это Визуальный объяснитель, созданный Виктором Пауэллом и Льюисом Лехе Анкет Прекратите то, что вы делаете прямо сейчас, и прочитайте их пост.

Хорошо, ты вернулся.

Как вы только что узнали, марковские сети являются популярными инструментами моделирования в различных отраслях, где люди должны моделировать невероятно большие системы реального мира-финансы, наука о экологии, информатику. Пауэлл и Лехе отмечают, что большой плохой алгоритм Google Pagerank является формой цепи Маркова. Так что они, как и большое дело.

Но цепочки Маркова также нашли приятное сладкое место в сфере генерации текста естественного языка (NLP). Или, другими словами, они идеально подходят для создания ботов в Твиттере Капитана Пикарда.

Создание лучшей речи когда -либо

В нашем случае мы хотим использовать цепочку Маркова для создания случайных предложений на основе корпуса известных речей.

К счастью, есть простая библиотека Python для этой первой части. Это называется Марковифии . Я покажу вам, как использовать его всего за секунду.

Во -первых, нам нужно получить несколько речевых стенограмм. Ах, данные – причина и решение всех проблем глубокого обучения.

NPR – лучшие речи начала, когда -либо Сайт, который я часто бываю часто, был отличной отправной точкой. Оттуда некоторые BeautifulSoup Scraping – Наряду с шокирующим количеством ручного удаления спама из транскриптов, найденных на популярных начальных речевых сайтах (тьфу, не спрашивайте) – привел к составлению набора данных, содержащего ~ 300 публичных транскриптов речевого речи ~ 300.

Набор данных о начале речи публично доступен на Floydhub, чтобы вы могли использовать его свои собственные проекты. Я также собрал Simple Gatsby.js статический сайт, если вы хотите случайно прочитать речи в свободное время.

Хорошо, вернемся к бизнесу. Как уже упоминалось, библиотека Марковифика безумно проста в использовании. Позвольте мне еще раз напомнить вам, чтобы просто нажать кнопку «Запустить на Floydhub» выше, чтобы следить за Speech_maker ноутбук. На самом деле, вот это снова:

Чтобы сгенерировать наши предложения, мы собираемся выполнить все выступления в нашем наборе данных (доступны на пути /floyd/input/swinkes и создавать модель Маркова для каждой речи.

import os
import markovify

SPEECH_PATH = '/floyd/input/speeches/'

speech_dict = {}
for speech_file in os.listdir(SPEECH_PATH):
    with open(f'{SPEECH_PATH}{speech_file}') as speech:
        contents = speech.read()

        # Create a Markov model for each speech in our dataset
        model = markovify.Text(contents)
        speech_dict[speech_file] = model

Тогда мы будем использовать Марковифии комбинация Метод, чтобы объединить их в одну большую цепочку Маркова.

models = list(speech_dict.values())

# Combine the Markov models
model_combination = markovify.combine(models)

Наконец, мы генерируем наше случайное предложение:

print(model_combination.make_sentence())

Конечно, я мог бы сделать самые элегантные и необычные продукты в федерально финансируемых проектах.

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

Например, может быть, вы хотите получить только предложения из выступлений, произнесенных в Стэнфордском университете? Или в MIT? Или только из выступлений, произнесенных в 1980 -х годах?

Рабочая область содержит CSV с метаданными для каждой речи (Speaker Имя , School и Год ). Это ваш шанс сделать вмятину во вселенной начальной речи. О, вот идея: почему бы вам не смахивать код рециртирования телевизора Симпсона «Рецидив нейронной сети» (RNN) и не выпустить его в этот набор данных?

Добавьте «забежать на Floydhub» в свои собственные проекты

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

Кнопка «Запустить на Floydhub» здесь, чтобы помочь. С помощью этой кнопки мы немного проще воспроизводят и делитесь вашими научными проектами.

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

Вот что вам нужно сделать:

Создайте файл конфигурации floyd.yml в своем репо

machine: gpu
env: pytorch-1.4

Добавьте этот фрагмент в свой Readme

Ты закончил! Серьезно. Попробуйте прямо сейчас с нашим Классификация объектов репо. Или даже это Post’s Repo Анкет

Реальная магия – это когда вы также включаете необходимые наборы данных в файл конфигурации. Например, floyd.yml Файл конфигурации для проекта анализа настроений выглядит следующим образом:

env: tensorflow-1.7
machine: cpu
data:
  - source: floydhub/datasets/imdb-preprocessed/1
    destination: imdb

Это развернет ваш код в рабочем пространстве с процессором, используя Tensorflow 1.7, а также прикрепит IMDB Набор данных Анкет Это позволяет любому легко воспроизводить ваши эксперименты, прямо из вашего GitHub Readme.

Вы можете Читать дальше О кнопке Flydhub в наших документах. Мы с нетерпением ждем возможности увидеть то, что вы делитесь с миром! Удачи, выпускники!

Оригинал: “https://dev.to/whatrocks/generating-your-own-graduation-speeches-with-markov-chains-55o7”