- लेखक ने Hacker News का पूरा डेटा डाउनलोड किया और उसका DuckDB से विश्लेषण किया
- करीब 20GB के सभी items (story + comments) को JSON फ़ाइलों में सहेजा, और आगे अपडेट भी संभव रहने लायक संरचना बनाई
- DuckDB का उपयोग करके ‘Python’, ‘JavaScript’, ‘Ruby’, ‘Rust’ आदि के उल्लेख अनुपात का साप्ताहिक टाइम-सीरीज़ विश्लेषण किया
- SQL लिखने में LLM का उपयोग किया गया, जिससे शुरुआती लोग भी आसानी से जटिल विश्लेषण कर सके
- इस प्रोजेक्ट को सार्वजनिक साइट hn.unlurker.com पर देखा जा सकता है, और कोई भी इस डेटा को विश्लेषण के आधार पर दोबारा उपयोग कर सकता है
पूरा Hacker News डेटा स्क्रैप करना
hn.unlurker.com बनाते समय Go भाषा में अपना HN API client विकसित किया, और यह latest Go features तथा linter का उपयोग करने वाले एक personal project के रूप में शुरू हुआ
- Hacker News के items (HN API में story और comments) को 0 से क्रमवार पूरा डाउनलोड करने के लिए
scan command लागू की
- डाउनलोड कई बार रुका, लेकिन restart हो सकने वाली संरचना की वजह से कुछ घंटों में लगभग 20GiB JSON फ़ाइलें इकट्ठी कर ली गईं
DuckDB से text time-series analysis
grep से साधारण pattern search करते समय, analysis tool के रूप में DuckDB आज़माया, जो छोटे single-file analysis के लिए optimized एक तेज़ DB है
- JSON फ़ाइलों को table में लोड किया गया, और items के text में उल्लिखित भाषाओं के अनुपात को साप्ताहिक आधार पर गणना किया गया
- Python, JavaScript, Java, Ruby, Rust keywords वाले अनुपात को 12-सप्ताह moving average के रूप में visualize करने के लिए SQL लिखा गया
- DuckDB के नए UI की वजह से इसका उपयोग आसान हुआ, और LLM की मदद से SQL भी आसानी से लिखी जा सकी
नतीजे और आगे की योजना
- इस स्तर के data analysis के लिए DuckDB ने बेहतरीन performance और usability दी
- डेटा जुटाने का काम पूरा होने के बाद, लेखक ने आधे मज़ाक और आधे गंभीर अंदाज़ में कहा कि वह "LLM-आधारित सैकड़ों bots को train करके Hacker News की जगह ले लेगा"
- लेकिन व्यावहारिक रूप से data collection और analysis का उद्देश्य पूरा हो चुका था, और प्रोजेक्ट यहीं समाप्त होता है
- आगे का analysis अब उस व्यक्ति के हिस्से है जो इस डेटा के आधार पर नई insights निकालना चाहता है
संदर्भ लिंक
1 टिप्पणियां
Hacker News टिप्पणियाँ
दो DB, Hacker News टेबल को अपडेट करते हैं, इसलिए डाउनलोड किए बिना विश्लेषण किया जा सकता है
पहले @fesshole Twitter/Bluesky अकाउंट्स पर ऐसा ही कुछ किया था
Hacker News की सारी सामग्री वाला 20 GiB JSON फ़ाइल था
Java के लिए क्वेरी में JavaScript के सभी instances शामिल हो जाते हैं, इसलिए Java ज़रूरत से ज़्यादा represent हो जाता है
जिज्ञासा है कि Hacker News डाउनलोड करते समय netiquette क्या है
अनुमान है कि आगे चलकर कई API, duckdb फ़ाइल लौटाने का option देंगी
ऐसा ही काम पहले किया था
Hacker News की सारी सामग्री लोकल में डाउनलोड करने के बाद, LLM-आधारित bot को train करके contributor की तरह चलाया जा सकता है
cumulative chart का इस्तेमाल न करने का अनुरोध
पहले Hacker News data dump बनाया था