Skrip Python 3 kecil untuk mengunduh Tweet publik dari akun Twitter ke dalam format yang sesuai untuk alat pembuat teks AI (seperti gpt-2-simple untuk menyempurnakan GPT-2).
Anda dapat melihat contoh tweet yang dihasilkan AI dari kumpulan data yang diambil dengan alat ini di folder /examples
.
Pertama, kloning repositori ini ke sistem Anda dan instal dependensi dengan perintah berikut:
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
Versi sebelumnya dari kode ini menggunakan perpustakaan scraping untuk mengumpulkan tweet. Sejak itu, Twitter semakin mempersulit proses scraping sambil menyediakan API pengumpulan tweet yang lebih kuat. Sebagai tanggapan, kami mem-porting kode ini untuk dijalankan hanya dengan API Twitter.
Untuk melanjutkan penyiapan, buat aplikasi Twitter sehingga Anda dapat memperoleh akses ke Twitter API. Setelah Anda membuat aplikasi, buat token akses, dan masukkan ke bagian file keys.py
yang ditunjukkan di bawah ini.
keys = { 'consumer_key' : "" ,
'consumer_secret' : "" ,
'access_token' : "" ,
'access_token_secret' : "" }
Terakhir, buka halaman lingkungan Dev API Twitter, buat lingkungan Dev untuk API Arsip Lengkap, dan masukkan nama lingkungan ke bagian label
pada file keys.py
yang ditunjukkan di bawah ini.
label = ""
Skrip dijalankan melalui antarmuka baris perintah. Setelah cd
masuk ke direktori tempat skrip disimpan di terminal, jalankan:
python3 download_tweets.py < twitter_username > 100
misalnya Jika Anda ingin mengunduh 100 tweet (tanpa retweet/balasan/kutipan tweet) dari pengguna Twitter @santiagodc, jalankan:
python3 download_tweets.py santiagodc 100
CATATAN: Tingkat gratis API Twitter memiliki batas pengumpulan 5.000 tweet per bulan, jadi tetapkan batas tweet untuk menghindari mencapai batas terlalu cepat
Script juga dapat mengunduh tweet dari beberapa nama pengguna sekaligus. Untuk melakukannya, pertama-tama buat file teks (.txt) dengan daftar nama pengguna. Kemudian, jalankan skrip yang merujuk pada nama file:
python3 download_tweets.py < twitter_usernames_file_name > 100
Tweet akan diunduh ke CSV satu kolom berjudul <usernames>_tweets.csv
.
Parameter yang dapat Anda sampaikan ke antarmuka baris perintah (secara posisi atau eksplisit) adalah:
@
tag pengguna di teks tweet [default: False]#
hashtag di teks tweet [default: False]Parameter sentimen menambahkan kategori sentimen ke teks tweet. Informasi ini memungkinkan pengguna untuk melatih dan menghasilkan teks dengan sentimen berbeda dengan mengubah parameter.
Format keluaran menggunakan format teks 'sederhana' adalah sebagai berikut:
[ Sentiment category ]
[ Tweet text for the tweet that was collected ]
Parameter sentimen menerima bilangan bulat yang menentukan jumlah kategori sentimen yang dikembalikan. Kategori sentimen untuk berbagai kemungkinan parameter adalah sebagai berikut:
Kode tersebut mendukung pengumpulan tweet dalam format untuk melatih AI yang dapat membalas tweet lain. Format keluaran didasarkan pada format yang digunakan untuk melatih komunitas Subreddit Simulator Reddit.
Format keluarannya adalah sebagai berikut:
**** 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 ]
Untuk mengumpulkan tweet dengan format balasan ini dengan menjalankan pernyataan berikut:
python3 download_tweets.py < twitter_username > None True False False False 3 reply
Dengan menentukan tanggal, skrip akan mengunduh tweet dari nilai timeframe
hingga saat ini. Secara default, ini akan mengunduh setiap tweet dari pengguna tertentu (atau pengguna) mulai dari tanggal 22 Maret 2006, hari tweet pertama dikirim. Parameter timeframe
tepat, memungkinkan Anda memasukkan tahun, bulan, hari, jam, dan menit yang diinginkan untuk mengunduh tweet, dalam urutan itu. Format yang diterima parameter timeframe
terlihat seperti YYYYMMDDHHMM
.
gpt-2-simple memiliki kasus khusus untuk CSV satu kolom, yang akan secara otomatis memproses teks untuk pelatihan dan pembuatan terbaik. (yaitu dengan menambahkan <|startoftext|>
dan <|endoftext|>
ke setiap tweet, sehingga memungkinkan pembuatan tweet secara independen)
Anda dapat menggunakan buku catatan Colaboratory ini (dioptimalkan dari buku catatan asli untuk kasus penggunaan ini) untuk melatih model pada tweet yang Anda unduh, dan menghasilkan Tweet dalam jumlah besar darinya. Perlu diperhatikan bahwa tanpa banyak data, model mungkin akan mudah mengalami overfit; Anda mungkin ingin berlatih dengan steps
yang lebih sedikit (misalnya 500
).
Saat membuat, Anda harus selalu menyertakan parameter tertentu untuk memecahkan kode tweet, misalnya:
gpt2 . generate ( sess ,
length = 200 ,
temperature = 0.7 ,
prefix = '<|startoftext|>' ,
truncate = '<|endoftext|>' ,
include_prefix = False
)
Santiago Delgado (@santiagodc) berdasarkan unduhan-tweets-ai-text-gen oleh @minimaxir
MIT
Repo ini tidak memiliki afiliasi dengan Twitter Inc.