7 điểm bởi GN⁺ 2024-12-11 | 1 bình luận | Chia sẻ qua WhatsApp
  • Một dự án khoa học dữ liệu kéo dài 1.600 ngày đã kết thúc trong thất bại khi dần mất đi sự quan tâm
  • Để thử một thách thức mới trong việc xử lý dữ liệu văn bản, tác giả đã thực hiện việc "thu thập và phân tích dữ liệu news ticker"
    • Tháng 3/2020, chọn news ticker của Tagesschau, trang tin tức công cộng của Đức cung cấp tin liên quan đến COVID-19, làm nguồn dữ liệu
    • Đến quý 3/2022, khi COVID-19 bớt quan trọng hơn, dự án được mở rộng sang news ticker về chiến tranh Nga-Ukraine
    • Thực hiện phân tích các meta-pattern của dữ liệu (như tần suất đăng) và phân tích ngữ nghĩa theo chủ đề
  • Chỉ thực hiện khám phá dữ liệu ngắn hạn, phân tích thực chất vẫn chưa hoàn thành
  • Đến quý 3/2024, dự án bị dừng lại do giảm hứng thú và thiếu thời gian

Thu thập dữ liệu và thiết kế hệ thống

  • Từ năm 2020 đến 2024, trong suốt 1.600 ngày, mỗi ngày đều thu thập URL của dữ liệu tin tức và tải xuống dữ liệu thô
    • Tagesschau có danh sách các mẩu tin ngắn mỗi ngày, mỗi mẩu gồm dấu thời gian, tiêu đề, nội dung văn bản và các thành phần đa phương tiện
  • Xây dựng pipeline dữ liệu bán tự động bằng thao tác thủ công kết hợp Python để chuyển đổi dữ liệu phi cấu trúc thành các snippet tin tức có cấu trúc
    • Do khó tự động hóa việc thu thập URL, tác giả chọn cách mỗi ngày truy cập website và thu thập liên kết thủ công. Lý do là schema URL phi cấu trúc của Tagesschau
    • Cứ mỗi 4-8 tuần, dùng Python xử lý hàng loạt các trang HTML và lưu thành dữ liệu thô
    • Dùng BeautifulSoup4 để phân tích HTML và lưu vào cơ sở dữ liệu SQLite
    • Dù nhiều phần của dự án đã được tự động hóa, pipeline ETL thủ công và phần phân tích thực tế thì chưa được tự động hóa
    • Nhấn mạnh việc lưu giữ dữ liệu HTML thô để phòng trường hợp cấu trúc DOM thay đổi

Bài học từ thất bại của dự án

  1. Tính đến storytelling:
    • Ngay từ đầu dự án, hãy hình dung cách kể câu chuyện để có thể dễ dàng chia sẻ kết quả
  2. Tạo ra kết quả nhanh:
    • Đừng chỉ thu thập dữ liệu; hãy nhanh chóng thực hiện phân tích ban đầu với tập dữ liệu nhỏ
    • Công khai kết quả để duy trì động lực làm việc (áp dụng cách tiếp cận “Show Your Work”)
  3. Tự động hóa:
    • Tự động hóa tối đa việc thu thập dữ liệu và pipeline ETL để giảm thiểu công việc lặp lại
    • Nếu làm hiện tại, tác giả sẽ tận dụng AI agent dựa trên LLM
  4. Đánh giá tần suất thu thập dữ liệu:
    • Xác định trước chu kỳ thu thập (ví dụ: hằng ngày so với mỗi 30 giây)
    • Thiết lập tần suất thu thập dữ liệu có thể tự động hóa được
  5. Lưu dữ liệu thô:
    • Lưu dữ liệu thô để có thể thích ứng với logic parsing thay đổi trong tương lai
  6. Tận dụng cloud:
    • Xây dựng hạ tầng đơn giản nhưng đáng tin cậy, đồng thời tạo cơ hội học thêm kỹ năng thực chiến

Kết luận: Trưởng thành qua thất bại

  • Ngay cả một dự án thất bại cũng trở thành trải nghiệm học hỏi, giúp tác giả trở thành "một người làm dữ liệu tốt hơn"
  • Thất bại trong dự án khoa học dữ liệu là trải nghiệm học hỏi quý giá và cũng là cơ hội tích lũy “vết sẹo chiến trận”
  • Điều đáng tiếc là đã không tận dụng được cơ hội tự động hóa bằng xử lý ngôn ngữ tự nhiên
  • Việc bỏ lỡ cơ hội phân tích khoảng 100.000 snippet tin tức cũng là một tiếc nuối lớn
  • Các news ticker mới như bầu cử Mỹ năm 2024 vẫn tiếp tục xuất hiện, nên người khác hoàn toàn có thể tiếp nối
    • Tác giả hy vọng ai đó quan tâm sẽ tiếp tục dự án và sẵn sàng chia sẻ toàn bộ dữ liệu

“Go out and build something!”

1 bình luận

 
GN⁺ 2024-12-11
Ý kiến Hacker News
  • Thay vì gọi dự án này là thất bại, có thể xem đây là một nỗ lực xuất phát từ sự tò mò rồi bị dừng lại. Chỉ riêng việc đăng bài blog và được giới thiệu trên HN cũng đã là một thành công

    • Nếu hoàn thành dự án, có lẽ tác giả đã công bố một bộ dữ liệu có thể được dùng cho nhiều phân tích khác nhau bằng Python
    • Có thể công bố bộ dữ liệu thô và xem đó là một thành công
    • Với sự phát triển của LLMs, giờ đây có lẽ sẽ cân nhắc các mô hình nền tảng được đóng gói dưới dạng AI agent
  • Web scraping vẫn là phần khó, và các trang web đang nỗ lực rất nhiều để ngăn việc bị scraping

  • Đã có một quy trình thủ công là truy cập trang Tagesschau mỗi ngày để thu thập liên kết. Đây không phải là một kế hoạch phù hợp

  • Có người từng làm một dự án khoa học dữ liệu như sở thích liên quan đến COVID, nhưng mất hứng sau 6 tháng. Trình scraper trên cloud vẫn đang tiếp tục chạy

  • Đáng lẽ nên tự động hóa bằng RSS feed thay vì làm thủ công

  • Điều quan trọng là phải nhận phản hồi ngay từ đầu dự án. Điều này tạo cơ hội để điều chỉnh định hướng của dự án và khơi lại hứng thú

  • Có người thích tính năng động của những dự án bao quát nhiều mối quan tâm khác nhau. Những gì học được từ nhiều dự án được tận dụng để nảy ra ý tưởng mới

  • Tiêu đề có thể gây hiểu lầm. Việc đơn thuần scraping một news feed có thể được thiết lập chỉ trong vài ngày

  • Nhiều người gặp khó khăn trong việc hoàn thành các dự án cá nhân. Khoa học dữ liệu là công việc mang tính khám phá nhằm tìm ra insight từ bộ dữ liệu

  • Trong quá trình thu thập dữ liệu, đã cần thao tác thủ công vì sơ đồ URL phi cấu trúc của trang Tagesschau. Cần có một nguồn dữ liệu ổn định

  • Các nhà phát triển website không nghĩ đến scraper. Nếu muốn thu thập một bộ dữ liệu độc đáo, tốt hơn hết là yêu cầu các web developer cung cấp API công khai