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.
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.
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.
--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 A | Entitas B | Count |
|---|
Top PER per portal news (top 10/portal)
Sumber: news 21 portal. Mana portal yang punya angle berbeda.
| Portal | Top 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).
| Canonical | Total | Variants |
|---|
📈 Mention spikes (rolling z-score)
Bulan dimana entitas X melonjak >2σ dari baseline 3 bulan sebelumnya. Indikator event / narrative break.
| Entity | Source | Bulan | Count | Baseline | z-score |
|---|
🌱 Entity lifecycle
Klasifikasi: rising (sedang naik), peaked (sudah puncak), fading (turun), steady (stabil), one-hit (sekali muncul).
| Entity | Class | Peak | Recent | Total |
|---|
🔗 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.
| Entity | Range | News | YT | TW | TT | IG | FB |
|---|
🗺️ 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
| Text | Count |
|---|
Top MON
| Text | Count |
|---|
🧩 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.
| # | Date | Source | Prob | Snippet |
|---|
🏷️ 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.
| # | Topic | n_docs | share | coherence | avg_likes | avg_replies | total_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.
| Month | Topic | Count | Baseline | z-score | Label |
|---|
🔗 Cross-platform topic similarity
Top topic pairs antar platform dengan top-word overlap tertinggi (Jaccard + weighted). Pilih dua platform untuk compare.
| # | Source A topic | ↔ | Source B topic | Similarity |
|---|
⏱️ 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.
| A | ↔ | B | Best lag (mo) | Correlation | Leader |
|---|
📡 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).
| C | Size | Intra | Inter | E-I | Focus | Insular | EC | Dom topic | Topic entropy | Top 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.
💚💛💔 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.
| # | Topic | n docs | % Pos | % Neu | % Neg | Net | Bar |
|---|
🎯 Per-entity sentiment (top 30, aspect-bound)
Net sentiment = (pos − neg) / total. Klik header untuk sort. Hover example untuk lihat sample kalimat.
| # | Entity | Type | n | Pos | Neu | Neg | % Pos | % Neg | Net | Bar |
|---|
🎭 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).
| # | Account | n posts | bot_score | template | rep | burst | reg | 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 Score | Template | Burst | Hate count | Hate 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.
| # | Account | Total posts | HATE | HATE % |
|---|
⚖️ 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.