Jangan menerobos situs.
Hormati robots.txt, paywall, dan ketentuan media. Pembatasan laju per domain, User-Agent jujur, dan backoff bukan optimasi opsional.
Di balik sebuah grafik ada antrean crawler, HTML yang berantakan, data quality, label NLP, clustering semantik dan pembuktian statistik. Telusuri langkah nyata yang mengubah berita tak terstruktur menjadi cerita kota yang bisa diuji.
Klik tiap tahap untuk memahami proses, perangkat, dan hasilnya. Model AI digunakan untuk keputusan yang membutuhkan penilaian; parsing, deduplikasi, dan perhitungan tetap terstruktur.
Menemukan dan membaca sumber
RSS dan sitemap menjadi jalur awal penemuan berita, disusul crawling kanal media. Indeks GDELT menjadi pelengkap untuk menemukan berita yang terlewat dan memeriksa cakupan. Fetch memakai pembatasan laju serta mengikuti robots.txt.
Setiap media memiliki feed, template, JavaScript, pembatasan akses, dan kegagalan yang berbeda. Empat lapisan di bawah menjelaskan dari mana URL ditemukan, bagaimana antrean dijaga, hingga HTML menjadi dokumen yang valid.
RSS/sitemap dahulu, halaman kanal bila tidak tersedia, dan GDELT sebagai indeks pendukung. Cursor per sumber mencegah pemindaian ulang; URL dinormalisasi sebelum dimasukkan ke antrean.
Feed terlambat, link rusak, atau artikel terdeteksi di banyak sumber.
Hormati robots.txt, paywall, dan ketentuan media. Pembatasan laju per domain, User-Agent jujur, dan backoff bukan optimasi opsional.
Skema, timestamp, artikel kosong, dan URL duplikat diuji. Batch bermasalah ditandai atau dikarantina agar angka akhirnya tidak terlihat lengkap secara palsu.
Domain, canonical URL, waktu terbit/crawl, metode pengambilan, dan versi ekstraktor melekat pada record sebelum pemrosesan lanjutan.
Teks bebas harus dibersihkan, diseragamkan, lalu diperkaya menggunakan NLP. Satu berita dapat memuat beberapa isu, menyebut banyak pihak, dan memiliki sentimen berbeda terhadap pihak yang dikutip.
Ikuti satu contoh artikel melewati ekstraksi, pelabelan NLP dan pembentukan dokumen Elasticsearch.
<nav>Berita | Kanal | Iklan</nav> <article> <h1>Genangan terjadi di Jakarta</h1> <p>Hujan menyebabkan genangan di ruas jalan.</p> <p>Pemprov DKI menyiapkan pompa.</p> </article> <aside>Berita lainnya ...</aside>
Tag HTML, menu, iklan dan rekomendasi bukan bagian isi artikel.
Sentimen adalah inferensi model, bukan fakta yang langsung tersimpan di HTML. Evaluasi terhadap data berlabel manusia tetap diperlukan.Berita tentang genangan yang membahas pompa Pemprov bisa menyentuh banjir dan pemerintahan. Label bukan pilihan tunggal; setiap label menyimpan confidence dan versi model.
Sentimen artikel berbeda dari sikap terhadap pihak tertentu. Keluhan warga dan tanggapan pejabat bisa berada dalam satu berita; konteks kutipan tidak boleh dicampur.
Dateline di awal artikel bisa menyesatkan. Gazetteer kota, kecamatan, kelurahan, serta lokasi di judul dan paragraf awal dipakai untuk menilai relevansi wilayah.
Menghitung jumlah artikel tidak cukup: satu peristiwa bisa disalin puluhan media, sementara berita dengan kata-kata mirip bisa membahas kejadian berbeda. Karena itu deduplikasi dan pembentukan cerita dilakukan bertingkat.
Bedakan salinan persis, near-duplicate, dan clustering peristiwa. Klik kasus untuk melihat keputusan dan batasannya.
Genangan terjadi di Jakarta
Genangan terjadi di Jakarta
Duplikat persis dapat digabung tanpa perlu membayar model semantik. Parameter pelacak URL tidak membentuk berita baru.
Cek hash teks/URL; tidak mengasumsikan semua artikel berjudul sama memiliki isi sama.Gabungkan artikel identik dan hilangkan parameter pelacak. Ini mencegah satu konten dihitung berulang karena bentuk URL berbeda.
Shingle lima kata dan estimasi Jaccard membantu mencari salinan dengan perubahan kecil tanpa membandingkan semua pasangan artikel satu per satu.
multilingual-e5-base memodelkan makna. Cosine similarity, lokasi, waktu, dan sumber dipakai untuk mengelompokkan artikel berbeda dalam satu peristiwa.
GLiNER2 memeriksa topik multi-label, sentimen, relevansi wilayah, dan entitas; confidence rendah, label ambigu, atau cerita dengan dampak besar diteruskan ke LLM dengan skema dan alasan terstruktur. Hasil tetap membutuhkan evaluasi kualitas.
Isu · relevansi wilayah · sentimen · entitas
Model utama untuk sebagian besar artikelPenilaian ulang dengan keluaran terstruktur dan alasan singkat
Pydantic · audit trailPerubahan model, prompt, dan ambang dievaluasi terhadap set emas. Angka di samping adalah kriteria pemeriksaan kualitas, bukan klaim skor F1 atau akurasi aktual.
Setelah artikel terstruktur, baru statistik dihitung: porsi mingguan, baseline historis, media berbeda per peristiwa, hubungan antarisu, ketidakpastian sampel kecil, hingga rentang bootstrap yang mempertimbangkan korelasi antarminggu.
Isunya benar naik, atau jumlah berita saja yang berubah?
Mengurangi bias saat jumlah sumber berita berubah.
Kapan sebuah isu tiba-tiba menjadi perhatian?
Butuh ≥30 artikel isu dan ≥4 minggu pembanding.
Peristiwa mana paling banyak diliput media?
Pemilihan cerita dan judul tetap dapat dilacak ke artikel.
Seberapa cepat sorotan pada krisis mereda?
Puncak peristiwa disejajarkan sebelum dibandingkan.
Apakah dua isu saling berkaitan dalam pemberitaan?
Lift >1 berarti lebih sering muncul bersama daripada ekspektasi acak.
Apakah pergeseran tren cukup meyakinkan?
Menghormati keterkaitan antarminggu yang berdekatan.
Bagaimana membaca sampel media asing yang kecil?
Mencegah satu angka tunggal terlihat terlalu pasti.
Insight yang baik harus mencantumkan sumber, metode pembilang/penyebut, data hilang, versi klasifikasi, ketidakpastian statistik dan rujukan artikel. Tanpa ini, grafik terlihat presisi tetapi berisiko menyesatkan.
Berita banjir yang meningkat bukan bukti langsung bahwa besarnya banjir meningkat dengan ukuran yang sama.
Dua minggu pada Juni 2025 tidak memiliki data dalam snapshot film. Kekosongan ditandai sebagai data tidak tersedia, bukan nol.
Model harus dievaluasi terhadap contoh berlabel manusia; hasil, versi model, dan kasus ragu dilaporkan terbuka.
Paywall tidak ditembus. Konten penuh dipakai secara internal sesuai hak dan ketentuan sumber; yang ditampilkan publik dibatasi.
Jakarta News Intelligence menggabungkan RSS, sitemap, dan crawling media untuk mengambil berita. The GDELT Project ↗ mendukung penemuan dan pengecekan cakupan berita sebagai indeks pelengkap. Film Jakarta, 730 Hari menayangkan snapshot data statis dari hasil pengolahan berita yang telah disiapkan dan diekspor ke story.json. Tidak ada proses crawling atau analisis ulang ketika pengunjung membuka halaman.