Небольшой скрипт Python 3 для загрузки общедоступных твитов из учетных записей Twitter в формат, подходящий для инструментов генерации текста AI (например, gpt-2-simple для точной настройки GPT-2).
Вы можете просмотреть примеры твитов, созданных искусственным интеллектом, из наборов данных, полученных с помощью этого инструмента, в папке /examples
.
Сначала клонируйте этот репозиторий в свою систему и установите зависимости с помощью следующих команд:
git clone https://github.com/sdelgadoc/download-tweets-ai-text-gen-plus.git
cd download-tweets-ai-text-gen-plus
pip3 install -r requirements.txt
Предыдущие версии этого кода использовали библиотеки очистки для сбора твитов. С тех пор Twitter усложнил сбор данных, одновременно предоставив более надежные API для сбора твитов. В ответ мы портировали этот код для работы только с API Twitter.
Чтобы продолжить настройку, создайте приложение Twitter, чтобы получить доступ к API Twitter. Создав приложение, сгенерируйте токены доступа и введите их в раздел keys.py
, показанный ниже.
keys = { 'consumer_key' : "" ,
'consumer_secret' : "" ,
'access_token' : "" ,
'access_token_secret' : "" }
Наконец, перейдите на страницу сред разработки API Twitter, создайте среду разработки для API полного архива и введите имя среды в раздел label
keys.py
, показанного ниже.
label = ""
Скрипт запускается через интерфейс командной строки. После cd
в каталог, где хранится скрипт в терминале, запустите:
python3 download_tweets.py < twitter_username > 100
например, если вы хотите загрузить 100 твитов (без ретвитов/ответов/цитатов) от пользователя Twitter @santiagodc, запустите:
python3 download_tweets.py santiagodc 100
ПРИМЕЧАНИЕ. Уровень бесплатного пользования API Twitter имеет ограничение на сбор 5000 твитов в месяц, поэтому установите ограничение на количество твитов, чтобы избежать слишком быстрого превышения лимита.
Скрипт также может загружать твиты от нескольких имен пользователей одновременно. Для этого сначала создайте текстовый файл (.txt) со списком имен пользователей. Затем запустите скрипт, ссылаясь на имя файла:
python3 download_tweets.py < twitter_usernames_file_name > 100
Твиты будут загружены в CSV-файл с одним столбцом под названием <usernames>_tweets.csv
.
Параметры, которые вы можете передать в интерфейс командной строки (позиционно или явно):
@
пользователя из текста твита [по умолчанию: False]#
хэштеги из текста твита [по умолчанию: False]Параметр тональности добавляет категорию тональности к тексту твита. Эта информация позволяет пользователю обучать и генерировать текст с разными тонами, изменяя параметр.
Выходной формат с использованием «простого» текстового формата следующий:
[ Sentiment category ]
[ Tweet text for the tweet that was collected ]
Параметр тональности принимает целое число, указывающее количество возвращаемых категорий тональности. Категории настроений для различных возможных параметров следующие:
Код поддерживает сбор твитов в формате для обучения ИИ, который может отвечать на другие твиты. Выходной формат основан на формате, используемом для обучения сообщества Subreddit Simulator Reddit.
Формат вывода следующий:
**** ARGUMENTS
ORIGINAL or REPLY: Whether the tweet is an original tweet or a reply
SENTIMENT: If the sentiment parameter is used, text describing the tweet text's sentiment
**** PARENT
[ Tweet text for the topmost tweet in a reply thread ]
**** IN_REPLY_TO
[ Tweet text for the tweet that is being responded to ]
**** TWEET
[ Tweet text for the tweet that was collected ]
Чтобы собрать твиты с этим форматом ответа, выполните следующую инструкцию:
python3 download_tweets.py < twitter_username > None True False False False 3 reply
Указав дату, скрипт загрузит твиты со значения timeframe
до настоящего времени. По умолчанию он загружает каждый твит от данного пользователя (или пользователей), начиная с 22 марта 2006 года, дня, когда был отправлен первый твит. Параметр timeframe
является точным и позволяет вам указать желаемый год, месяц, день, час и минуту для загрузки твитов в указанном порядке. Формат, который принимает параметр timeframe
, выглядит как YYYYMMDDHHMM
.
В gpt-2-simple предусмотрен специальный случай для CSV-файлов с одним столбцом, где он автоматически обрабатывает текст для лучшего обучения и генерации. (т.е. добавляя <|startoftext|>
и <|endoftext|>
к каждому твиту, что позволяет независимо генерировать твиты)
Вы можете использовать этот блокнот Colaboratory (оптимизированный на основе исходного блокнота для этого варианта использования) для обучения модели на загруженных вами твитах и создания на ее основе огромного количества твитов. Обратите внимание, что без большого количества данных модель может легко переобучиться; возможно, вы захотите тренироваться на меньшее количество steps
(например, 500
).
При создании вам всегда необходимо включать определенные параметры для декодирования твитов, например:
gpt2 . generate ( sess ,
length = 200 ,
temperature = 0.7 ,
prefix = '<|startoftext|>' ,
truncate = '<|endoftext|>' ,
include_prefix = False
)
Сантьяго Дельгадо (@santiagodc) на основе download-tweets-ai-text-gen от @minimaxir
Массачусетский технологический институт
Это репозиторий не имеет никакого отношения к Twitter Inc.