- ผู้เขียนได้ดาวน์โหลดข้อมูลทั้งหมดของ Hacker News และนำมาวิเคราะห์ด้วย DuckDB
- จัดเก็บไอเท็มทั้งหมด (สตอรี + คอมเมนต์) ขนาดราว 20GB เป็นไฟล์ JSON และออกแบบให้สามารถอัปเดตต่อในอนาคตได้
- ใช้ DuckDB ทำการวิเคราะห์อนุกรมเวลาแบบรายสัปดาห์ของสัดส่วนการกล่าวถึงคำอย่าง ‘Python’, ‘JavaScript’, ‘Ruby’, ‘Rust’ เป็นต้น
- ใช้ LLM ช่วยเขียน SQL ทำให้แม้แต่มือใหม่ก็ทำการวิเคราะห์ที่ซับซ้อนได้ง่าย
- โปรเจกต์นี้ดูได้บนเว็บไซต์สาธารณะ hn.unlurker.com และใครก็สามารถนำข้อมูลนี้ไปต่อยอดเพื่อการวิเคราะห์ได้
ดึงข้อมูล Hacker News ทั้งหมด
- ระหว่างสร้าง
hn.unlurker.com ผู้เขียนได้พัฒนา HN API client ขึ้นเองด้วยภาษา Go โดยเริ่มจากโปรเจกต์ส่วนตัวที่ใช้ความสามารถใหม่ของ Go และ linter
- สร้างคำสั่ง
scan สำหรับดาวน์โหลดไอเท็มของ Hacker News (สตอรีและคอมเมนต์ใน HN API) ทั้งหมดแบบเรียงลำดับตั้งแต่หมายเลข 0 เป็นต้นไป
- แม้การดาวน์โหลดจะหยุดไปหลายครั้ง แต่ด้วยโครงสร้างที่กลับมาทำงานต่อได้ จึงเก็บไฟล์ JSON ขนาดประมาณ 20GiB ได้ภายในไม่กี่ชั่วโมง
วิเคราะห์อนุกรมเวลาของข้อความด้วย DuckDB
- เดิมทีใช้
grep ค้นหารูปแบบอย่างง่าย ก่อนจะลองใช้ DuckDB เป็นเครื่องมือวิเคราะห์ ซึ่งเป็นฐานข้อมูลความเร็วสูงที่เหมาะกับการวิเคราะห์ไฟล์เดี่ยวขนาดเล็ก
- นำไฟล์ JSON เข้าเป็นตาราง และคำนวณสัดส่วนรายสัปดาห์ของภาษาที่ถูกกล่าวถึงในข้อความของไอเท็ม
- เขียน SQL เพื่อทำภาพข้อมูลของสัดส่วนคีย์เวิร์ดอย่าง Python, JavaScript, Java, Ruby, Rust ด้วยค่าเฉลี่ยเคลื่อนที่ 12 สัปดาห์
- ด้วย UI ใหม่ของ DuckDB จึงใช้งานได้ง่ายขึ้น และยังเขียน SQL ได้สะดวกด้วยความช่วยเหลือของ LLM
ผลลัพธ์และแผนถัดไป
- DuckDB มอบประสิทธิภาพและความง่ายในการใช้งานที่ยอดเยี่ยมสำหรับการวิเคราะห์ข้อมูลขนาดระดับนี้
- หลังจากเก็บข้อมูลเสร็จ ผู้เขียนพูดแบบกึ่งล้อเล่นกึ่งจริงจังว่า “จะฝึกบอตที่ใช้ LLM หลายร้อยตัวมาแทนที่ Hacker News”
- อย่างไรก็ตาม เป้าหมายหลักด้านการเก็บและวิเคราะห์ข้อมูลนั้นสำเร็จแล้ว และโปรเจกต์ก็จบลงเพียงเท่านี้
- สำหรับการวิเคราะห์ต่อจากนี้ ผู้เขียนบอกว่าเป็นหน้าที่ของคนที่จะนำข้อมูลนี้ไปต่อยอดเพื่อค้นหาอินไซต์ใหม่ ๆ
ลิงก์อ้างอิง
1 ความคิดเห็น
ความเห็นจาก Hacker News
มีฐานข้อมูล 2 แห่งที่อัปเดตตารางของ Hacker News อยู่แล้ว จึงสามารถวิเคราะห์ได้โดยไม่ต้องดาวน์โหลด
ก่อนหน้านี้เคยทำงานคล้ายกันกับบัญชี Twitter/Bluesky ของ @fesshole
เคยมีไฟล์ JSON ขนาด 20 GiB ที่บรรจุเนื้อหาทั้งหมดของ Hacker News
การคิวรีคำว่า Java จะรวมทุกอินสแตนซ์ของ JavaScript ไปด้วย ทำให้ Java ถูกนับมากเกินจริง
สงสัยว่ามารยาทที่เหมาะสมในการดาวน์โหลด Hacker News คืออะไร
คาดว่าในอนาคต API จำนวนมากจะมีตัวเลือกให้ส่งคืนไฟล์ duckdb
เคยทำงานลักษณะคล้ายกัน
หลังจากดาวน์โหลดเนื้อหาทั้งหมดของ Hacker News มาไว้ในเครื่องแล้ว ก็สามารถฝึกบอตที่ใช้ LLM และให้ทำงานเป็นผู้มีส่วนร่วมได้
มีคำขอว่าอย่าใช้กราฟสะสม
ในอดีตเคยทำ data dump ของ Hacker News