- Tác giả đã tải xuống toàn bộ dữ liệu của Hacker News và phân tích bằng DuckDB
- Lưu toàn bộ item (story + comment) dung lượng khoảng 20GB thành file JSON, đồng thời thiết kế để có thể cập nhật về sau
- Sử dụng DuckDB để phân tích chuỗi thời gian theo tuần về tỷ lệ nhắc đến các từ khóa như ‘Python’, ‘JavaScript’, ‘Ruby’, ‘Rust’
- Dùng LLM để viết SQL, giúp cả người mới cũng có thể thực hiện các phân tích phức tạp một cách dễ dàng
- Có thể xem dự án tại trang công khai hn.unlurker.com, và bất kỳ ai cũng có thể tái sử dụng dữ liệu này để phân tích
Cào toàn bộ dữ liệu Hacker News
- Khi tạo
hn.unlurker.com, tác giả đã tự phát triển một HN API client bằng ngôn ngữ Go, khởi đầu như một dự án cá nhân để tận dụng các tính năng Go mới nhất và linter
- Triển khai lệnh
scan để tải tuần tự toàn bộ item của Hacker News (story và comment trong HN API) bắt đầu từ số 0
- Việc tải xuống đã bị gián đoạn nhiều lần, nhưng nhờ cấu trúc có thể khởi động lại, tác giả vẫn thu được khoảng 20GiB file JSON chỉ sau vài giờ
Phân tích chuỗi thời gian văn bản bằng DuckDB
- Trong lúc đang dùng
grep để tìm kiếm các mẫu đơn giản, tác giả thử dùng DuckDB như một công cụ phân tích; đây là một DB tốc độ cao, tối ưu cho việc phân tích file đơn quy mô nhỏ
- Nạp file JSON vào bảng và tính tỷ lệ nhắc đến các ngôn ngữ xuất hiện trong nội dung item theo từng tuần
- Viết SQL để trực quan hóa trung bình trượt 12 tuần của tỷ lệ chứa các từ khóa Python, JavaScript, Java, Ruby, Rust
- Nhờ UI mới của DuckDB, việc sử dụng trở nên dễ dàng hơn, và với sự hỗ trợ của LLM thì việc viết SQL cũng rất thuận tiện
Kết quả và kế hoạch tiếp theo
- DuckDB mang lại hiệu năng và tính tiện dụng vượt trội cho việc phân tích dữ liệu ở quy mô này
- Sau khi hoàn tất việc thu thập dữ liệu, tác giả nửa đùa nửa thật rằng "sẽ huấn luyện hàng trăm bot dựa trên LLM để thay thế Hacker News"
- Tuy vậy, mục tiêu thực tế là thu thập và phân tích dữ liệu đã hoàn thành, và dự án kết thúc tại đây
- Tác giả cho biết phần phân tích tiếp theo sẽ là phần việc của những ai muốn rút ra insight mới từ bộ dữ liệu này
Liên kết tham khảo
1 bình luận
Ý kiến trên Hacker News
Có hai DB cập nhật các bảng Hacker News nên có thể phân tích mà không cần tải xuống
Trước đây tôi đã làm việc tương tự với tài khoản Twitter/Bluesky @fesshole
Tôi từng có một tệp JSON 20 GiB chứa toàn bộ nội dung Hacker News
Truy vấn về Java bao gồm mọi trường hợp xuất hiện của JavaScript, nên Java bị đại diện quá mức
Tôi tự hỏi phép lịch sự trên mạng khi tải toàn bộ Hacker News là gì
Dự đoán rằng trong tương lai nhiều API sẽ cung cấp tùy chọn trả về tệp duckdb
Tôi cũng đã làm việc tương tự
Sau khi tải toàn bộ nội dung Hacker News về máy, có thể huấn luyện một bot dựa trên LLM và vận hành nó như một người đóng góp
Có ý kiến đề nghị đừng dùng biểu đồ cộng dồn
Trước đây tôi đã tạo một bản dump dữ liệu Hacker News