一個小型 Python 3 腳本,用於將 Twitter 帳戶中的公共推文下載為適合 AI 文字產生工具的格式(例如用於微調 GPT-2 的 gpt-2-simple)。
您可以在/examples
資料夾中查看使用此工具檢索的資料集中 AI 產生的推文範例。
首先,將此儲存庫克隆到您的系統上,並使用以下命令安裝依賴項:
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。作為回應,我們將此程式碼移植為僅與 Twitter 的 API 一起運行。
要繼續設置,請建立 Twitter 應用程序,以便您可以獲得對 Twitter API 的存取權限。建立應用程式後,產生存取權令牌,並將其輸入到如下所示的keys.py
檔案的部分中。
keys = { 'consumer_key' : "" ,
'consumer_secret' : "" ,
'access_token' : "" ,
'access_token_secret' : "" }
最後,前往 Twitter API 的開發環境頁面,為 Full Archive API 產生開發環境,並將環境名稱輸入到如下所示的keys.py
檔案的label
部分。
label = ""
該腳本透過命令列介面運行。 cd
進入終端機中儲存腳本的目錄後,執行:
python3 download_tweets.py < twitter_username > 100
例如,如果您想從 Twitter 用戶 @santiagodc 下載 100 條推文(無轉發/回覆/引用推文),請執行:
python3 download_tweets.py santiagodc 100
注意:Twittter API 的免費套餐的收集限制為每月 5,000 條推文,因此請設定推文限制以避免過快達到限制
該腳本還可以一次下載多個用戶名的推文。為此,首先建立一個包含使用者名稱清單的文字檔案 (.txt)。然後,執行引用檔案名稱的腳本:
python3 download_tweets.py < twitter_usernames_file_name > 100
推文將下載到標題為<usernames>_tweets.csv
的單列 CSV 中。
您可以(按位置或明確)傳遞到命令列介面的參數包括:
@
使用者標籤[預設值:False]#
標籤[預設值:False]情緒參數將情緒類別加入推文文字。這些資訊允許使用者透過更改參數來訓練和生成具有不同情感的文本。
使用「簡單」文字格式的輸出格式如下:
[ Sentiment category ]
[ Tweet text for the tweet that was collected ]
情緒參數接受一個整數,指定回傳的情緒類別的數量。不同可能參數的情緒類別如下:
該程式碼支援以某種格式收集推文,以訓練可以回覆其他推文的人工智慧。輸出格式是基於用於訓練 Reddit Subreddit 模擬器 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
到現在的推文。預設情況下,它將下載從 2006 年 3 月 22 日(第一條推文發送當天)開始的給定用戶(或多個用戶)的每條推文。 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
)
Santiago Delgado (@santiagodc) 基於 @minimaxir 的 download-tweets-ai-text-gen
麻省理工學院
此存儲庫與 Twitter Inc. 沒有任何關係。