📰 Tito Karnavian Coverage Dashboard · news + sosmed multi-source

Loading…

Group A — Portal mainstream

Klik portal untuk filter di tab Articles

Group B — Portal alternatif

Klik portal untuk filter di tab Articles

Group split

Top 10 portals

Monthly trend — Group A vs Group B

Daily article density (calendar heatmap)

☁️ Popular tag — wordcloud dari semua judul artikel

Static wordcloud dari 3,744 judul artikel. Token besar = sering muncul. Stopwords Indonesia + filler sudah disaring.

Wordcloud title artikel

Top 20 reporters

🏷️ Popular tag (top 20)

☁️ Wordcloud judul video YouTube

Static wordcloud dari semua judul video. Stopwords Indonesia + boilerplate YouTube (live, viral, shorts, …) sudah disaring.

Wordcloud judul video YouTube

Monthly video count

Distribusi durasi

Top 15 channel · paling sering upload

Top 15 channel · total views terbesar

Distribusi kategori YouTube

🏷️ Top 20 tag video

📺 Top 30 video · paling banyak ditonton

Klik baris untuk buka video di YouTube. Sortir-default by views desc.

Tanggal Judul Channel Views Likes Comments Durasi

Monthly video count

Garis ungu = rata-rata. Bar amber = 3 bulan tertinggi (focal point).

Distribusi durasi video

Top 15 author · paling sering upload

🏷️ Top 25 hashtag

📺 Top 30 video · paling banyak ditonton

Klik baris untuk buka video di TikTok.

Tanggal Caption Author Views Likes Comments Shares

Komentar per bulan

Garis ungu = rata-rata. Bar amber = 3 bulan tertinggi.

Distribusi panjang komentar

Distribusi like per komentar

Top 15 video · komentar terbanyak

Top 20 commenter

Akun yang paling sering komentar. Isi komentar tidak dianalisis (NLP nanti).

Monthly post count

Garis ungu = rata-rata. Bar amber = 3 bulan tertinggi.

Distribusi tipe konten

Top 15 akun · paling sering posting

🏷️ Top 25 hashtag

📸 Top 30 post · likes tertinggi

Tanggal Caption Author Type Likes Comments

Komentar per bulan

Garis ungu = rata-rata. Bar amber = 3 bulan tertinggi.

Distribusi panjang komentar

Distribusi like per komentar

Top 15 post · komentar terbanyak

Top 20 commenter

Akun paling aktif komentar di postingan Tito Karnavian.

Tweet per bulan

Garis dashed crimson = rata-rata. Bar amber = 3 bulan tertinggi.

Top 15 akun · paling sering tweet

🏷️ Top 25 hashtag

@ Top 20 mention

Akun yang paling sering disebut di tweet.

Engagement metrics (aggregate)

🐦 Top 30 tweet · likes tertinggi

Klik baris untuk buka tweet di X.com.

Tanggal Isi Author Likes Replies RT Views

Reply per bulan

Garis dashed crimson = rata-rata. Bar amber = 3 bulan tertinggi.

Distribusi panjang reply

Distribusi like per reply

Top 15 tweet · reply terbanyak

Top 20 akun replier

Akun X.com yang paling sering balas di tweet Tito. NLP nanti.

Catatan: FB keyword-search di-batasi platform. Data diambil dari daftar halaman target via --page-urls-file. Lihat socmed/facebook/pages_*.txt.

Post per bulan

Garis dashed crimson = rata-rata. Bar amber = 3 bulan tertinggi.

Distribusi engagement (likes+comments)

Top halaman · paling banyak posting

📘 Top 30 post · likes + comments tertinggi

Tanggal Isi Page Source folder Likes Comments Shares

Komentar per bulan

Distribusi panjang komentar

Distribusi like per komentar

Threading depth (nested reply)

Depth 0 = top-level · Depth 1+ = reply ke komentar lain.

Top 20 commenter

Komentar per bulan

Timestamp diparsing dari label relatif ("2 bulan yang lalu") saat fetch — distribusi bisa miring ke periode dekat waktu fetch.

Distribusi panjang komentar

Distribusi like per komentar

Direct vs Reply

Top 15 channel · komentar terbanyak

Channel pemilik video, di-rank by total komentar yang diserap.

Top 20 commenter

Handle YouTube yang paling sering komentar. Isi komentar tidak dianalisis.

📺 Top 20 video · komentar berhasil di-fetch

Berbeda dari "comments_count" di API video (yang sering memasukkan reply); ini hitungan aktual komentar yang berhasil dibaca scraper. Klik baris untuk buka video.

Channel Judul Komentar di-fetch
Tanggal Portal Judul Reporter Kata

🏷️ Analisis NER — semua sumber (gabungan)

Model: cahya/bert-base-indonesian-NER. Filter: entitas ≥3 karakter, type NOR di-hide di chart (tetap ada di stat). Tipe ditampilkan: PER, ORG, GPE, LOC, LAW, MON, EVT. Ganti sumber via dropdown di bawah untuk lihat per platform.

Top 20 — PER (orang)

Top 20 — ORG (lembaga)

Top 20 — GPE (kota/provinsi/negara)

Top 20 — LAW (regulasi/pasal)

Top 20 — MON (anggaran/biaya)

Top 20 — EVT (event)

Distribusi tipe entitas (gabungan)

Sebelum filter NOR.

Entitas per sumber

Total entitas yang ter-ekstrak per platform.

Trend bulanan — top 5 PER per bulan (gabungan)

Garis = mention bulanan dari 5 tokoh teratas keseluruhan.

Co-occurrence pair (top 20)

Pasangan PER yang sering muncul bareng di dokumen yang sama.

#Entitas AEntitas BCount

Top PER per portal news (top 10/portal)

Sumber: news 21 portal. Mana portal yang punya angle berbeda.

PortalTop PER

🔬 Advanced NER Insights

Analisis lanjutan dari hasil NER — semuanya cross-source (tidak filter by source).

⏱️ Temporal — timeline top 8 entitas (cross-source)

Mention bulanan top 8 PER hasil canonical merge, diwarnai by lifecycle class (rising / peaked / fading / steady). Bulatan ★ menandai mention spike (z-score ≥2.5).

🌋 Spike density per bulan (semua entitas, all sources)

Hitung jumlah spike per bulan. Bulan tinggi = period dengan banyak narrative breaks.

🧩 Canonical entity clusters

Fuzzy clustering top PER → kelompokkan varian nama jadi 1 canonical (e.g. "tito" + "tito karnavian" + "muhammad tito karnavian" = 1 orang).

CanonicalTotalVariants

📈 Mention spikes (rolling z-score)

Bulan dimana entitas X melonjak >2σ dari baseline 3 bulan sebelumnya. Indikator event / narrative break.

EntitySourceBulanCountBaselinez-score

🌱 Entity lifecycle

Klasifikasi: rising (sedang naik), peaked (sudah puncak), fading (turun), steady (stabil), one-hit (sekali muncul).

EntityClassPeakRecentTotal

🔗 Co-occurrence communities (Louvain)

Network graph PER (edge weight = co-occurrence count). Louvain community detection menemukan kelompok-kelompok tokoh yang sering disebut bareng.

🕸️ SNA — Network koneksi antar tokoh

1 bubble = 1 tokoh. Ukuran bubble = volume mention (weighted degree). Garis antar bubble = berapa kali muncul bareng di dokumen/komentar/post yang sama (tebal = sering bareng). Warna bubble = komunitas hasil Louvain detection. Drag bubble untuk geser, scroll untuk zoom.

Tip: hover bubble → highlight koneksi langsung. Hover edge → lihat weight (count co-occurrence).

📅 SNA — Network antar event (EVT co-occurrence)

1 bubble = 1 event (mis. Pilkada Serentak 2024, Pelantikan Kepala Daerah, Operasi Tangkap Tangan). Ukuran = jumlah dokumen yang menyebut event tsb. Garis = event ini disebut bersama event lain dalam satu artikel/post. Warna = komunitas Louvain (cluster event yang sering muncul satu konteks).

👥📅 Bipartite — Person ↔ Event

Tokoh (kiri, biru) terhubung ke event (kanan, oranye) yang sering disebut bersama. Tebal garis = berapa kali co-occur di artikel/post yang sama. Berguna untuk lihat "siapa terkait event apa".

📈 Temporal event — timeline + lifecycle

Mention bulanan top event (canonical) dari news + YouTube + 4 socmed (post-level). Tiap event punya warna unik. Lifecycle class (rising / peaked / fading / steady / one-hit / transient) tetap muncul di label legend dalam tanda kurung. Ribbon bawah = total mention semua top event bulan tsb.

📊 Portal diversity (Shannon entropy)

Coverage entropy per portal. Tinggi = topik luas (banyak tokoh). Rendah = fokus ke 1-2 tokoh saja.

⚖️ Cross-platform rank divergence

Tokoh dengan rank distance terbesar antar platform — sinyal narasi berbeda. Rank None = entitas tidak masuk top 50 di platform itu.

EntityRangeNewsYTTWTTIGFB

🗺️ Geographic — GPE/LOC per provinsi

Agregat GPE + LOC entities di-map ke provinsi. Indikator focus regional.

📜 Policy & Money (LAW + MON)

UU/Pasal/regulasi paling sering disebut + anggaran/biaya yang ter-extract.

Top LAW

TextCount

Top MON

TextCount

🧩 Topic Modelling — pilih sumber

Method: TF-IDF + sklearn LatentDirichletAllocation (online). Tiap sumber diproses terpisah karena gaya bahasa berbeda (news formal vs komentar informal). Keyword pencarian (tito karnavian / mendagri) di-strip supaya topik bukan echoing keyword. Ganti sumber via dropdown di bawah.

🍩 Distribusi topik (share dokumen)

Berapa proporsi dokumen yang dominan ke tiap topic. Klik slice untuk pilih topik.

📝 Top kata di topik T0

Horizontal bar — kata dengan bobot LDA tertinggi di topik ini. Unigram + bigram.

📈 Topic over time (stacked area)

Distribusi topik per bulan — assignment berdasarkan dominan topic. Tiap topik dapat warna unik.

📚 Top dokumen untuk topik T0

Dokumen dengan probabilitas tertinggi di topik aktif. Klik untuk buka URL asli.

#DateSourceProbSnippet

🏷️ NER × Topic — entitas dominan di topik T0

Untuk dokumen yang dominan ke topik aktif, top entitas (PER/ORG/GPE/EVT/LAW/MON) yang co-occur. Surface konteks naratif lengkap tanpa baca dokumen.

📐 Topic quality + engagement (per sumber)

Coherence (UMass): closer to 0 = lebih koheren (kata top sering co-occur). Sangat negatif = topik noisy. Engagement: rata-rata likes/replies per dokumen (socmed only). Sortable — klik header untuk urut.

#Topicn_docsshare coherenceavg_likesavg_repliestotal_likes

🌋 Topic bursts (z-score per bulan, per sumber)

Bulan dimana mention topic melonjak ≥2σ di atas baseline rolling 3-bulan. Surface momen viral / breakings.

MonthTopicCountBaselinez-scoreLabel

🔗 Cross-platform topic similarity

Top topic pairs antar platform dengan top-word overlap tertinggi (Jaccard + weighted). Pilih dua platform untuk compare.

#Source A topicSource B topicSimilarity

⏱️ Lead-lag antar sumber (source-level)

Pearson correlation total monthly docs antar 2 sumber, di-shift -3..+3 bulan. Lag positif = sumber A leads (artikel muncul lebih dulu). Lag negatif = source B leads.

ABBest lag (mo)CorrelationLeader

📡 SNA Sosmed — pemetaan akun + echo chamber

Network akun↔akun berdasarkan reply edges + @mention (Twitter saja). Komunitas dideteksi via Louvain (random_state=42). Echo chamber diukur dengan dua metrik side-by-side: (1) Focus score = 1 - normalized topic entropy (1=fokus topik tertentu), (2) Insular score = E-I index dinormalisasi (1=insular, 0=bridging). Sumber: hanya 2 platform dengan struktur data cukup kuat (YouTube reply tree + Twitter conversation graph).

🕸️ Network akun (community-colored)

Node = akun. Ukuran = weighted degree (kekuatan koneksi). Warna = komunitas Louvain. Drag untuk geser, scroll untuk zoom. Hover edge untuk lihat weight.

📋 Communities + echo chamber scores

Focus tinggi + Insular tinggi = echo chamber kuat (akun fokus pada topik spesifik + jarang interaksi keluar). EC composite = bobot 50/50 dari kedua skor, dikalikan factor ukuran komunitas. Tampil: Top 15 komunitas terbesar dengan size ≥10 akun (long-tail komunitas mini di-suppress untuk visual lebih padat).

CSizeIntraInter E-IFocusInsularEC Dom topicTopic entropyTop accounts

🧩 Topic distribution per community (top 6)

Bar chart distribusi topik (dari LDA topic modeling) untuk top 6 komunitas terbesar. Komunitas yang spike di 1 topik = potensi echo chamber.

📖 Topik referensi (platform aktif)

    💚💛💔 Sentiment Analysis — pilih sumber

    Stage 1 (BERT): w11wo/indonesian-roberta-base-sentiment-classifier klasifikasi per-kalimat (3-class: positive/neutral/negative). Stage 2 (Aspect): bind kalimat sentiment ke entitas NER yang ada di kalimat tsb. Stage 3 (LLM, optional): Claude Haiku untuk kasus ambigu/sarkasme (override BERT label). Caveat: aspect-window approach kadang attribute sentiment "kalimat" ke entity yang hanya disebut (mis. "kantor berita Antara" muncul di artikel bencana → entitas dapat label negatif walau bukan sentiment ke Antara).

    🍩 Overall sentiment distribution (sentence-level)

    Proporsi neg/neu/pos pada semua kalimat di sumber aktif.

    📈 Monthly trend

    Tren positive/neutral/negative per bulan. Naik turun = shift narrative.

    🔀 Cross: Sentiment × Topic (per platform aktif)

    Untuk tiap topic LDA, breakdown sentiment label di dokumen yang dominan ke topic tsb. Operational: identifikasi topik yang paling memicu reaksi negatif vs supportive.

    #Topicn docs % Pos % Neu % Neg NetBar

    🎯 Per-entity sentiment (top 30, aspect-bound)

    Net sentiment = (pos − neg) / total. Klik header untuk sort. Hover example untuk lihat sample kalimat.

    #EntityTypen PosNeuNeg % Pos% NegNetBar

    🎭 Sample sarkasme & ironi terhadap Tito

    Kalimat dengan kontradiksi label model vs intent sebenarnya: model klasifikasi pakai kata permukaan ("mantap", "bangga", "aamiin"), padahal konteks/emoji menunjukkan mocking/ironi terhadap Tito. Important untuk ops monitoring — sarkasme = lapisan kritik tersembunyi yang sering missed oleh model otomatis. Caveat: badge di tiap sample menunjukkan label model — sering tidak akurat untuk sarkasme.

    💬 Sample kalimat per label (curated, accurate only)

    Per platform: kalimat high-confidence per label (positive / neutral / negative) yang sudah diverifikasi manual (false positive/negative model disaring). Target 5 per kategori — kalau kurang artinya kandidat top-confidence didominasi mis-klasifikasi.

    🔴 Top negative (most-criticized targets)

    Entitas dengan % negative tertinggi (n>=10). Operational watch list.

    🟢 Top positive (most-praised targets)

    Entitas dengan % positive tertinggi (n>=10).

    🤖 Bot & Coordinated Activity Detection

    Pure Python heuristic — tanpa labeled training data. Signals: template repetition (akun posting konten boilerplate berulang), burst (≥3 posts dalam 5 menit), timing regularity (interval antar posts terlalu beraturan), hashtag/mention density. Composite bot_score ∈ [0,1], flag threshold 0.55. Caveat: tinggi ≠ pasti bot — bisa juga news-aggregator akun resmi atau fan-account aktif. Verifikasi manual.

    📋 Top suspect bot accounts

    Akun dengan bot_score tertinggi di platform aktif. Signal columns: template = berapa fraksi konten akun yang ≥0.85 jaccard dengan konten lain miliknya (paste-and-repeat), rep = avg pairwise similarity konten sendiri, burst = posting ≥3 dalam 5-menit window (relative to total), reg = timing regularity (1.0 = sangat berkala/bot-like).

    #Accountn postsbot_score templaterepburstreg reply%#tags/100c@/100c

    🔀 Cross: Bot ∩ Hate Speech — Dual-Flagged Watch List

    Akun yang bot-flagged AND hate-rate-high. Composite threat_score = 0.5 × bot_score + 0.5 × hate_rate. Highest operational priority — coordinated + toxic.

    #Account Threat Bot ScoreTemplateBurst Hate countHate rate Activity

    🌊 Coordinated swarms — content amplification waves

    ≥5 akun unik posting konten serupa (Jaccard ≥0.50) dalam window 5-menit. Indicator untuk news amplification campaign atau coordinated push.

    💬 Contoh kalimat-kalimat terdeteksi bot (platform aktif)

    2 sample post per akun untuk Top 10 akun dengan bot_score tertinggi. Sumber: konten asli akun yang terdeteksi. Catatan: tinggi bot_score ≠ pasti otomatis — sample bantu verifikasi manual (cek apakah konten beneran repetitive, mention-spam, atau aslinya legit user yang kebetulan posting padat).

    🚨 Hate Speech Detection

    Model: Hate-speech-CNERG/dehatebert-mono-indonesian (binary HATE / NON_HATE). Trained pada Indonesian hate speech corpus (Davidson-style). Caveat: model cenderung over-eager pada bahasa kasar/slang (mis. "anjir/anjing" → bisa false positive) dan miss sarkasme halus. Threshold default 0.5 (top class). Output operasional: hate_rate per platform + monthly trend + top hate-flagged accounts.

    📊 Hate rate per platform

    % komentar berlabel HATE per sumber (semua platform yang sudah ter-process).

    📈 Monthly trend (platform aktif)

    HATE vs NON_HATE per bulan untuk platform yang dipilih.

    💬 Contoh kalimat HATE (curated, verified)

    Kalimat berlabel HATE yang sudah diverifikasi manual (false positive model disaring). Target 10 per platform — kalau jauh kurang, model banyak over-flag di platform itu. Khusus IG/TT: model off-the-shelf sering FP pada komentar yang sebenarnya supportive/netral. Untuk produksi ops, perlu fine-tune atau LLM verification.

    🔀 Cross: Hate rate × Event temporal overlay

    Monthly hate rate (bar + %) overlaid dengan total event mentions (LDA EVT entities). Operational: spot bulan dimana hate spike berbarengan event burst — momentum kritik publik.

    👥 Top hate-flagged accounts (hate_rate ≥20%, n≥5)

    Akun dengan rasio HATE tinggi di platform aktif. Operational watch list. Cross-reference dengan tab Bot & Coordination untuk identifikasi akun terkoordinasi yang juga toxic.

    #AccountTotal postsHATEHATE %

    ⚖️ Stance per Kebijakan Tito Karnavian

    Model: MoritzLaurer/mDeBERTa-v3-base-mnli-xnli (multilingual NLI, zero-shot). Per kebijakan: filter dokumen yang mention Tito + keyword kebijakan, lalu klasifikasi ke pro, kontra, atau netral/informatif terhadap pemerintah Tito. Berbeda dari sentiment — stance lebih actionable untuk policy monitoring. Caveat: hipotesis template generik ("pro pemerintah Tito"), bukan kebijakan-specific.

    🍩 Pro / Kontra / Netral (kebijakan aktif)

    📊 Stance per kebijakan (platform aktif)

    Stacked bar pro/netral/kontra per kebijakan untuk platform yang dipilih.

    📈 Monthly trend (kebijakan aktif)

    💬 Sample kalimat per stance (kebijakan aktif)

    3 kalimat per stance dari klasifikasi model. Header tiap card juga tampilkan BERT sentiment dari Stage 1 ABSA untuk cross-check.

    🕸️ Knowledge Graph — semua entitas konteks Tito Karnavian

    Force-directed graph: Person, Organisasi, Lokasi, Event, Kebijakan, Topik LDA, dan Source (portal/platform sosmed). Klik node untuk lihat detail + neighbors; filter via panel di samping. Drag node untuk reposition. Mode default = semua node dalam scope; mode klik = node-focused dengan 3 panel detail di bawah.

    Filter

    Klik node di graph untuk lihat detail.

    📋 Top node (Mode 1: default)

    📊 Top 15 by degree

    📈 Timeline mention bulanan

    📖 Stories — 10 narasi umbrella dari sudut pandang Tito Karnavian

    Tiap cerita: 5W1H (apa/siapa/kapan/di mana/kenapa/bagaimana) + What Now (risiko, mitigasi taktis, roadmap strategis, KPI). Bukti grafik di setiap section adalah snapshot data tanpa filter — angka final hasil analisis. Audience: candid self-awareness mode, tidak di-filter PR.