7 คะแนน โดย GN⁺ 2024-12-11 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • โปรเจกต์ Data Science ที่ดำเนินมาเป็นเวลา 1,600 วันจบลงด้วยความล้มเหลวเมื่อความสนใจค่อยๆ ลดลง
  • เพื่อทดลองความท้าทายใหม่ในการจัดการข้อมูลข้อความ จึงทำโปรเจกต์ "การเก็บและวิเคราะห์ข้อมูล news ticker"
    • ในเดือนมีนาคม 2020 เลือก news ticker ของ Tagesschau เว็บไซต์ข่าวสาธารณะของเยอรมนีที่ให้ข่าวเกี่ยวกับ COVID-19 เป็นแหล่งข้อมูล
    • ในไตรมาส 3 ปี 2022 เมื่อ COVID-19 มีความสำคัญลดลง จึงขยายไปยัง news ticker ที่เกี่ยวกับสงครามยูเครน-รัสเซีย
    • ทำการวิเคราะห์ทั้งเมตาแพตเทิร์นของข้อมูล (เช่น ความถี่ในการเผยแพร่) และความหมายตามหัวข้อ
  • ทำเพียงการสำรวจข้อมูลระยะสั้นเท่านั้น โดย การวิเคราะห์ที่เป็นรูปธรรมยังไม่เสร็จสมบูรณ์
  • ในไตรมาส 3 ปี 2024 โปรเจกต์ถูกยุติลงเพราะความสนใจลดลงและมีเวลาไม่เพียงพอ

การเก็บข้อมูลและการออกแบบระบบ

  • ตั้งแต่ปี 2020 ถึง 2024 เป็นเวลา 1,600 วัน มีการเก็บ URL ของข้อมูลข่าวทุกวันและดาวน์โหลดข้อมูลดิบ
    • Tagesschau มีรายการข่าวสั้นประจำวัน โดยแต่ละรายการประกอบด้วย timestamp, headline, ข้อความเนื้อหา และองค์ประกอบมัลติมีเดีย
  • สร้าง data pipeline แบบกึ่งอัตโนมัติด้วยการทำงานด้วยมือร่วมกับ Python เพื่อแปลงข้อมูลไร้โครงสร้างให้เป็น news snippet แบบมีโครงสร้าง
    • เนื่องจากการทำ URL collection แบบอัตโนมัติทำได้ยาก จึงเลือกวิธีเข้าเว็บไซต์ทุกวันเพื่อเก็บลิงก์ด้วยตนเอง เพราะ Tagesschau มี URL schema ที่ไม่มีโครงสร้างแน่นอน
    • ทุก 4-8 สัปดาห์ จะใช้ Python ประมวลผลหน้า HTML แบบเป็นชุดและบันทึกเป็นข้อมูลดิบ
    • ใช้ BeautifulSoup4 ในการ parse HTML และบันทึกลงฐานข้อมูล SQLite
    • แม้หลายส่วนของโปรเจกต์จะถูกทำให้เป็นอัตโนมัติ แต่ ETL pipeline แบบ manual และการวิเคราะห์จริงยังไม่ได้ทำให้เป็นอัตโนมัติ
    • เน้นการเก็บข้อมูล HTML ดิบไว้เพื่อรองรับการเปลี่ยนแปลงของโครงสร้าง DOM

บทเรียนจากความล้มเหลวของโปรเจกต์

  1. คำนึงถึงการเล่าเรื่อง:
    • วางแนวทางการเล่าเรื่องตั้งแต่ช่วงเริ่มต้นของโปรเจกต์ เพื่อให้ออกแบบผลลัพธ์ให้แชร์ได้ง่าย
  2. ทำผลลัพธ์ออกมาให้เร็ว:
    • อย่าเอาแต่เก็บข้อมูล แต่ควร ทำการวิเคราะห์เบื้องต้นอย่างรวดเร็วด้วยชุดข้อมูลขนาดเล็ก
    • เผยแพร่ผลลัพธ์ไปพร้อมกับ รักษาแรงจูงใจในการทำงาน (ใช้แนวทาง “Show Your Work”)
  3. ระบบอัตโนมัติ:
    • ทำให้การเก็บข้อมูลและ ETL pipeline เป็นอัตโนมัติให้มากที่สุด เพื่อลดงานซ้ำๆ
    • ถ้าเป็นตอนนี้ ผู้เขียนคงจะใช้ AI agent ที่อาศัย LLM
  4. ประเมินความถี่ในการเก็บข้อมูล:
    • กำหนดรอบการเก็บข้อมูลไว้ล่วงหน้า (เช่น ทุกวัน vs ทุก 30 วินาที)
    • กำหนดความถี่ในการเก็บข้อมูลที่สามารถทำให้เป็นอัตโนมัติได้
  5. เก็บข้อมูลดิบไว้:
    • เก็บข้อมูลดิบไว้เพื่อให้รองรับ logic การ parse ที่เปลี่ยนไปในอนาคตได้
  6. ใช้คลาวด์:
    • สร้างโครงสร้างพื้นฐานที่เรียบง่ายและเชื่อถือได้ พร้อมเปิดโอกาสให้ได้เรียนรู้ทักษะที่ใช้จริงในการทำงาน

บทสรุป: เติบโตผ่านความล้มเหลว

  • แม้จะเป็นโปรเจกต์ที่ล้มเหลว แต่ก็กลายเป็นประสบการณ์การเรียนรู้ที่ช่วยให้เป็น "นักปฏิบัติด้านข้อมูลที่ดีกว่าเดิม"
  • ความล้มเหลวของโปรเจกต์ data science คือ ประสบการณ์การเรียนรู้ที่มีค่า และเป็นโอกาสในการสะสม “รอยแผลจากสนามจริง”
  • น่าเสียดายที่ไม่ได้ใช้โอกาสด้านระบบอัตโนมัติผ่านการประมวลผลภาษาธรรมชาติ
  • การพลาดโอกาสในการวิเคราะห์ news snippet ราว 100,000 รายการก็เป็นเรื่องน่าเสียดายมากเช่นกัน
  • ยังมี news ticker ใหม่ๆ อย่างการเลือกตั้งสหรัฐฯ ปี 2024 ออกมาอย่างต่อเนื่อง ทำให้คนอื่นสามารถรับช่วงต่อได้
    • ผู้เขียนหวังว่าจะมีคนที่สนใจสานต่อโปรเจกต์นี้ และพร้อมจะแชร์ข้อมูลทั้งหมด

“Go out and build something!”

1 ความคิดเห็น

 
GN⁺ 2024-12-11
ความคิดเห็นจาก Hacker News
  • มองว่าโปรเจกต์นี้ไม่ถึงกับเรียกว่าล้มเหลว แต่เป็นการลองทำด้วยความอยากรู้อยากเห็นแล้วหยุดไปมากกว่า แค่ได้เขียนบล็อกและถูกนำไปแนะนำบน HN ก็ถือว่าประสบความสำเร็จแล้ว

    • ถ้าทำโปรเจกต์เสร็จ ก็คงจะเผยแพร่ชุดข้อมูลที่นำไปใช้วิเคราะห์ต่อได้หลายแบบโดยใช้ Python
    • สามารถเผยแพร่ชุดข้อมูลดิบและถือว่านั่นคือความสำเร็จได้
    • ด้วยความก้าวหน้าของ LLMs ตอนนี้ก็คงจะพิจารณาโมเดลพื้นฐานที่ถูกทำแพ็กเกจในรูปแบบ AI agent
  • การทำเว็บสแครปปิงยังคงเป็นเรื่องยาก และหลายเว็บไซต์ก็พยายามอย่างมากที่จะป้องกันการสแครป

  • มีขั้นตอนทำมือโดยเข้าเว็บไซต์ Tagesschau ทุกวันเพื่อเก็บลิงก์ ซึ่งไม่ใช่แผนการดำเนินงานที่เหมาะสม

  • เคยทำโปรเจกต์งานอดิเรกด้าน data science เกี่ยวกับ COVID แต่ผ่านไป 6 เดือนก็หมดความสนใจ ขณะที่ตัว scraper บนคลาวด์ยังคงทำงานอยู่

  • ควรใช้ RSS feed เพื่อทำให้อัตโนมัติแทนงานที่ต้องทำด้วยมือ

  • การได้รับฟีดแบ็กตั้งแต่ช่วงต้นของโปรเจกต์เป็นเรื่องสำคัญ เพราะช่วยปรับทิศทางของโปรเจกต์และเปิดโอกาสให้กลับมาสนใจอีกครั้งได้

  • ชอบความมีชีวิตชีวาของโปรเจกต์ที่ครอบคลุมความสนใจหลากหลายด้าน และใช้สิ่งที่เรียนรู้จากหลายโปรเจกต์มาต่อยอดเป็นไอเดียใหม่

  • ชื่อเรื่องอาจทำให้เข้าใจผิดได้ เพราะงานแค่สแครป news feed สามารถตั้งค่าเสร็จได้ภายในไม่กี่วัน

  • หลายคนมีปัญหาในการทำโปรเจกต์ส่วนตัวให้เสร็จสมบูรณ์ และ data science เป็นงานเชิงสำรวจเพื่อค้นหาข้อมูลเชิงลึกจากชุดข้อมูล

  • ในกระบวนการเก็บข้อมูล จำเป็นต้องทำงานด้วยมือเพราะรูปแบบ URL ของเว็บไซต์ Tagesschau ไม่มีโครงสร้างที่เป็นระบบ จึงต้องมีแหล่งข้อมูลที่เสถียร

  • นักพัฒนาเว็บไซต์ไม่ได้คำนึงถึง scraper หากต้องการรวบรวมชุดข้อมูลที่มีเอกลักษณ์ ควรขอให้นักพัฒนาเว็บเปิด API สาธารณะให้