สคริปต์ Python 3 ขนาดเล็กสำหรับดาวน์โหลดทวีตสาธารณะจากบัญชี Twitter เป็นรูปแบบที่เหมาะสำหรับเครื่องมือสร้างข้อความ AI (เช่น gpt-2-simple สำหรับการปรับแต่ง GPT-2)
คุณสามารถดูตัวอย่างทวีตที่ AI สร้างขึ้นจากชุดข้อมูลที่ดึงมาด้วยเครื่องมือนี้ในโฟลเดอร์ /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 เพื่อให้คุณสามารถเข้าถึง Twitter API ได้ เมื่อคุณสร้างแอปแล้ว ให้สร้างโทเค็นการเข้าถึง และป้อนข้อมูลลงในส่วนของไฟล์ keys.py
ที่แสดงด้านล่าง
keys = { 'consumer_key' : "" ,
'consumer_secret' : "" ,
'access_token' : "" ,
'access_token_secret' : "" }
สุดท้าย ไปที่หน้าสภาพแวดล้อม Dev ของ Twitter API สร้างสภาพแวดล้อม Dev สำหรับ Full Archive API และป้อนชื่อของสภาพแวดล้อมในส่วน label
ของไฟล์ keys.py
ที่แสดงด้านล่าง
label = ""
สคริปต์ทำงานผ่านอินเทอร์เฟซบรรทัดคำสั่ง หลังจาก cd
ลงในไดเร็กทอรีที่เก็บสคริปต์ไว้ในเทอร์มินัลแล้ว ให้รัน:
python3 download_tweets.py < twitter_username > 100
เช่น หากคุณต้องการดาวน์โหลด 100 ทวีต (ไม่มีการรีทวีต/ตอบกลับ/ทวีตคำพูด) จากผู้ใช้ Twitter @santiagodc ให้รัน:
python3 download_tweets.py santiagodc 100
หมายเหตุ: ระดับฟรีของ Twittter API มีขีดจำกัดการรวบรวมทวีตที่ 5,000 ทวีตต่อเดือน ดังนั้นให้ตั้งค่าขีดจำกัดทวีตเพื่อหลีกเลี่ยงไม่ให้เกินขีดจำกัดเร็วเกินไป
สคริปต์นี้ยังสามารถดาวน์โหลดทวีตจากชื่อผู้ใช้หลายชื่อพร้อมกันได้ โดยขั้นแรกให้สร้างไฟล์ข้อความ (.txt) พร้อมรายการชื่อผู้ใช้ จากนั้นรันสคริปต์โดยอ้างอิงชื่อไฟล์:
python3 download_tweets.py < twitter_usernames_file_name > 100
ทวีตจะถูกดาวน์โหลดเป็น CSV คอลัมน์เดียวชื่อ <usernames>_tweets.csv
พารามิเตอร์ที่คุณสามารถส่งผ่านไปยังอินเทอร์เฟซบรรทัดคำสั่ง (ตำแหน่งหรืออย่างชัดเจน) คือ:
@
แท็กผู้ใช้ออกในข้อความทวีต [ค่าเริ่มต้น: เท็จ]#
แฮชแท็กในข้อความทวีต [ค่าเริ่มต้น: False]พารามิเตอร์ความรู้สึกจะเพิ่มหมวดหมู่ความรู้สึกให้กับข้อความทวีต ข้อมูลนี้ช่วยให้ผู้ใช้สามารถฝึกอบรมและสร้างข้อความที่มีความรู้สึกที่แตกต่างกันโดยการเปลี่ยนพารามิเตอร์
รูปแบบผลลัพธ์ที่ใช้รูปแบบข้อความ 'แบบง่าย' มีดังต่อไปนี้:
[ Sentiment category ]
[ Tweet text for the tweet that was collected ]
พารามิเตอร์ความคิดเห็นยอมรับจำนวนเต็มที่ระบุจำนวนหมวดหมู่ความคิดเห็นที่ถูกส่งกลับ ประเภทความคิดเห็นสำหรับพารามิเตอร์ต่างๆ ที่เป็นไปได้มีดังต่อไปนี้:
โค้ดนี้รองรับการรวบรวมทวีตในรูปแบบสำหรับฝึก AI ที่สามารถตอบกลับทวีตอื่นๆ ได้ รูปแบบเอาต์พุตจะขึ้นอยู่กับรูปแบบที่ใช้ในการฝึกชุมชน 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 มีนาคม 2549 ซึ่งเป็นวันที่ทวีตแรกถูกส่งไป พารามิเตอร์ timeframe
มีความแม่นยำ ซึ่งช่วยให้คุณใส่ปี เดือน วัน ชั่วโมง และนาทีที่ต้องการเพื่อดาวน์โหลดทวีตตามลำดับนั้น รูปแบบที่พารามิเตอร์ timeframe
ยอมรับจะมีลักษณะดังนี้ YYYYMMDDHHMM
gpt-2-simple มีกรณีพิเศษสำหรับ CSV คอลัมน์เดียว ซึ่งจะประมวลผลข้อความโดยอัตโนมัติเพื่อการฝึกและการสร้างที่ดีที่สุด (เช่น โดยการเพิ่ม <|startoftext|>
และ <|endoftext|>
ลงในแต่ละทวีต ทำให้สามารถสร้างทวีตได้อย่างอิสระ)
คุณสามารถใช้สมุดบันทึก Colaboratory นี้ (ปรับให้เหมาะสมจากสมุดบันทึกดั้งเดิมสำหรับกรณีการใช้งานนี้) เพื่อฝึกโมเดลบนทวีตที่คุณดาวน์โหลด และสร้างทวีตจำนวนมากจากโมเดลนั้น โปรดทราบว่าหากไม่มีข้อมูลจำนวนมาก โมเดลก็อาจพอดีเกินไปได้ง่าย คุณอาจต้องการฝึกให้น้อยลง (เช่น 500
steps
)
เมื่อสร้าง คุณจะต้องรวมพารามิเตอร์บางตัวเพื่อถอดรหัสทวีตเสมอ เช่น:
gpt2 . generate ( sess ,
length = 200 ,
temperature = 0.7 ,
prefix = '<|startoftext|>' ,
truncate = '<|endoftext|>' ,
include_prefix = False
)
Santiago Delgado (@santiagodc) อ้างอิงจาก download-twitters-ai-text-gen โดย @minimaxir
เอ็มไอที
Repo นี้ไม่มีส่วนเกี่ยวข้องกับ Twitter Inc.