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

Журнал социального обучения – анализ аудиокниги

Сейчас в течение нескольких лет я документировал все свои профессиональные учебные мероприятия в Twitter. Как установленный программный инженер, я хочу поделиться процессом, который требуется, чтобы получить здесь. Помечено с Python, LeacingJournal, агрегатами.

С января 2017 года я документировал все мои профессиональные учебные мероприятия в Twitter. Как установленный программный инженер, я хочу поделиться процессом, который требуется, чтобы получить здесь. Вот моя учетная запись Twitter, dev3l_ Отказ

Я использую структурированные сообщения для мероприятий для конкретных журналов. Например, когда я слушаю подкаст, я запускаю твит с «слушал:». У меня есть подобные семантические теги для чтения книг, слушающие книги и посещающие конференции/курсы. Кроме того, я хештег твиты с идентификаторами классификации, такие как #agile. Как правило, я пытаюсь написать несколько заметок о событии. Наконец, событие помечено продолжительностью с использованием символа моркови и количества, такого как «^ 45M», чтобы обозначить длину 45 минут.

В какой-то момент Гэри Вайнерчук имел видео под названием Документ, не создавайте Отказ Это была моя попытка сделать такое.

Я начинаю от моего предыдущего поста Сообщение бот, чтобы найти PS5 в продаже Отказ Я намерен это быть Python Колбу API с использованием Монгодб Это будет поддерживать интерфейс ENVESTJS. На сегодня я хочу получить настройки CI с Трэвис , покрытие с использованием Комбинезоны , качество кода на Код климата , и все это размещено на Heroku Отказ Если у кого-то есть вопросы о том, как установить эти технологии, оставьте комментарий ниже, и я создадим несколько подробных шагов.

На сегодняшний день моя цель состоит в том, чтобы получить архив данных Twitter Parsed для создания списка аудиокниги, которые я прослушал на год. В Twitter вы можете пойти на ваш Настройки и конфиденциальность и запросить архивную загрузку всех ваших данных. Это то, что я буду использовать в качестве отправной точки, данные семян. Внутри этого архива есть Tweet.js Файл, который содержит каждый твит из учетной записи в формате JSON.

Структура JSON Tweet из архива и API Twitter идентична. Создавая Tweet Parser в качестве первого шага с использованием статического экспорта, это сможет использовать в будущем запланированную задание, которая будет динамически обрабатывать твиты в ближайшем времени.

В будущем я представляю, вытягивая из источников данных за пределами твиттера. Можно использовать любую платформу с доступным API, например, GitHub, LinkedIn и YouTube.

Когда я впервые начал делать это, я не знал важность структурированных сообщений. Несколько лет назад я пошел, чтобы создать Начальный прототип И понял, что было довольно сложно вытащить значимые данные – потребовалось много ручных манипуляций. Учитывая подходящий классификатор с помощью машинного обучения, это было бы возможно, но на данный момент гораздо проще просто добавить немного метаданных на каждое сообщение.

Вместо того, чтобы работать с файлом Tweet.js Как файл JavaScript, я удалил JS окно. Ytd.tweet.part0 = из файла и сохранить его как Tweet.json. . Это может быть легко импортировано в Python в качестве документа JS, и мы можем начать работать над ним относительно легко.

import json
with open(DATA_SEED_TWITTER_PATH) as data_seed:
    data = json.load(data_seed)

С тремя линиями кода у меня теперь есть доступ, чтобы начать манипулировать моим 4556, во время этой статьи, журналым событиям.

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

def filter_by_this_year(tweet: dict) -> bool:
    created_at = parse(tweet['tweet']['created_at'])
    return first_of_year <= created_at <= end_of_year

tweets_from_this_year = list(filter(filter_by_this_year, data))

Теперь наши данные немного более управляемые на 449 событиях. Применяя очередной фильтр, я посмотрю на текст «Начал слушать:« Чтобы привлечь его к списку книг, которые меня интересуют.

def filter_by_audiobook_start(tweet: dict) -> bool:
    text = tweet['tweet']['full_text']
    return "Started listening to:" in text
audio_books_from_this_year = list(filter(filter_by_audiobook_start, tweets_from_this_year))

На данный момент я нашел 11 книг. Это имеет смысл для меня, так как у меня есть звуковая подписка, которая позволяет одной забронировать в месяц. Я не идеален с моими аннотациями и иногда регистрирую конец книги, не отмечая начало книги. Поэтому я изменил фильтр, чтобы включить «закончить слушать:» и нашел одну другую книгу.

"Started listening to:" in text or "Finished listening to:" in text

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

def reduce_book_titles(result: set, tweet: dict) -> set:
    text = tweet['tweet']['full_text']
    title = text.split(":")[1].split("\n")[0]
    result.add(title)
    return result
audio_book_titles = list(reduce(reduce_book_titles, audio_books_from_this_year, set()))

Закрепляя и печать названий, которые я вижу, что у меня есть следующие аудиокниги под моим поясом за год. Полный источник к этому простому, но мощный сценарий можно найти здесь: parse-audiobook-tweets-for-this-year.py.

2020 Audiobooks:

  • Проект единорога – роман о разработчиках, цифровом нарушении и процветании в эпоху данных
  • Разговаривать с незнакомцами
  • Понимание программного обеспечения – простота, кодирование и как высасывать меньше как программист
  • Устранение ловушки по сборке – насколько эффективным управление продуктом создает реальное значение
  • Хорошо, чтобы отлично – почему некоторые компании делают прыжок … А также Другие Нет
  • Agile разговоры – преобразовать свои разговоры, преобразовывать вашу культуру
  • Creativity, Inc. – Преодоление невидимых сил, которые стоят на пути истинного вдохновения
  • Участвовать вправо – преобразование без хаоса
  • Прагматичный программист
  • 7 привычек высокоэффективных людей – мощные уроки в личных изменений
  • Смысл и ответьте – насколько успешными организациями слушают клиентов и постоянно создают новые продукты
  • Бесконечная игра
  • Искусство войны

Оригинал: “https://dev.to/dev3l/social-learning-journal-parsing-audiobooks-2428”