AI Engineering · ADC 2026 · C3

Date, corpus și curățare

Memoria aplicației EchoChamber

În C3 construim corpusul de lucru pentru EchoChamber. Datele colectate aici vor fi folosite mai târziu pentru adnotare, retrieval, RAG și agenți.

Curs AI Engineering Program ADC 2026 Limbă Română Sesiune C3

C3 introduce etapa de date a proiectului EchoChamber. Construim corpusul pe care îl vom folosi mai târziu pentru adnotare, căutare semantică, RAG și agenți.

În această sesiune lucrăm cu YouTube ca sursă principală. Participanții colectează un eșantion mic pentru a înțelege metoda, iar analiza se face pe un corpus mai mare oferit de instructor. Discutăm metadate, reproductibilitate, curățare, standardizare, limite etice și primul Prompt v1 pentru explorarea comentariilor politice.

Prezentare
Slide-uri PDF despre colectare mică, corpusul oferit, curățare, metadate, etică, bule discursive și Promptul exploratoriu v1.
Notebook-uri C3
Notebook-uri pentru C3: colectare mică și curățare rapidă în folderul individual student_XX, apoi Tema 1 pentru explorarea corpusului mare curățat și testarea Promptului v1.
Corpus YouTube
Corpus de comentarii YouTube în format JSONL, oferit pentru explorare și curățare comună.
Surse YouTube selectate Colectare Python + YouTube Data API Filtrare inițială Standardizare Corpus documentat Adnotare asistată C4 Embeddings / retrieval C5 RAG + agenți C6

Surse discursive YouTube

Zonă discursivă Exemple de canale Rol în corpus
Mainstream instituțional StirileProTV, digi24hd56, InfoTVR, hotnews_ro, euronewsro, Antena3CNN, libertatearo, europafmromania, b1tvchannel, rfiromania, euractivromania9532 bază de comparație instituțională
Civic / investigativ / corectiv RecorderRomania, europa-libera-romania, g4media479, VeridicaRO, StareaNatiei discurs critic orientat spre transparență și responsabilitate
Suveranist oficial / anti-sistem electoral georgesimionoficial, partidulAUR2024, CălinGeorgescu-CanalulOficial, DianaSosoacaOfficial discurs politic mobilizator, anti-elite, suveranitate
Neîncredere sistemică / media alternativă RomaniaTVOFICIAL, realitatea2025, TuDecizi-s3g, turcescu111 suspiciune față de instituții și media mainstream
Conspiraționist / marginal / mitic-național AdevaruriSecrete, otvdirect, AltcevacuAdrianArtene, roxindaniel, Canal33Romania, Curiozitate-Canal33, Spiritualitate-Canal33 narațiuni alternative, explicații ascunse, teme spiritualizate

Sursele sunt puncte de pornire pentru zone discursive, nu etichete finale. Un comentariu colectat de la un canal suveranist nu este automat „suveranist”, iar încadrarea se face ulterior prin adnotare.

corpus_schema.json
{
  "id": "yt_<video_id>_<comment_id>",
  "source_platform": "youtube",
  "source_channel": "<handle>",
  "text": "...",
  "text_raw": "...",
  "bubble_label": null,
  "bubble_self_identified": false,
  "topic": null,
  "rhetoric_type": null,
  "video_id": "...",
  "video_title": "...",
  "video_date": "YYYY-MM-DD",
  "comment_date": "YYYY-MM-DD",
  "likes": 0,
  "lang": "ro",
  "collected_at": "YYYY-MM-DD"
}

Individual

Echipă

Finalizare

C3 - Data and corpus

Issue-uri individuale

C3.1 student_XX - C3.1 - Individual collect and clean notebook individual
  • fiecare participant lucrează în notebooks/student_XX/
  • rulează notebook-ul c3_collect_clean.ipynb
  • salvează data/raw/student_XX_youtube_raw.jsonl
  • salvează data/cleaned/student_XX_youtube_clean.jsonl
C3.5 student_XX - C3.5 - Tema 1 corpus exploration and first prompt individual
  • fiecare participant lucrează în notebooks/student_XX/
  • încarcă data/cleaned/corpus_youtube_large_clean.jsonl
  • testează Prompt v1 pe cel puțin 10 comentarii
  • creează outputs/student_XX_prompt_v1_review.csv
  • completează verdict și note

Issue-uri de echipă

C3.2 C3.2 - Add final YouTube collection script echipă
  • adaugă scripts/collect_youtube.py
C3.3 C3.3 - Download provided YouTube corpus echipă
  • descarcă sau adaugă corpusul în data/provided/corpus_youtube_large_raw.jsonl
C3.4 C3.4 - Clean the provided YouTube corpus echipă
  • rulează scripts/clean_youtube.py
  • produce data/cleaned/corpus_youtube_large_clean.jsonl
C3.6 C3.6 - Add Data Gathering section to README.md echipă
  • completează secțiunea Data Gathering în README.md

Convenție

Metoda GitHub / API

Livrabilele C3 sunt urmărite prin GitHub Issues în milestone-ul C3 - Data and corpus. Issue-urile individuale încep cu student_XX, iar issue-urile de echipă încep cu C3. Cheile API rămân doar în .env; .env nu se urcă pe GitHub.

Ce nu colectăm

  • date personale identificabile
  • conținut din surse private sau grupuri închise
  • date colectate prin încălcarea termenilor platformei
  • articole complete protejate de copyright
  • username-uri ca identitate analizabilă
  • texte care pot expune persoane vulnerabile

Ce facem obligatoriu

  • folosim doar surse publice
  • păstrăm sursa, canalul, video-ul, data comentariului și data colectării
  • documentăm selecția în README.md, secțiunea Data Gathering
  • colectăm doar conținut public relevant pentru analiză și păstrăm doar ce este necesar pentru corpus
  • anonimizăm ID-uri și indicii personale
  • separăm analiza discursului de evaluarea persoanelor
  • notăm limitele și biasurile corpusului

Bulele nu sunt persoane reale și nu sunt grupuri sociale fixe. Sunt tipare de limbaj care apar repetat într-un corpus politic. Un comentariu se analizează prin target, poziționarea față de țintă (stance), sentiment, tone și interpretation_problem.

În C3 nu producem încă etichete finale de bule. Folosim aceste categorii doar ca vocabular conceptual pentru a înțelege ce va trebui adnotat în C4.

Agent Personalitate Cum vorbește Ce îl definește
Personalist-salvator devotat, admirativ, sigur laudativ, emoțional, încrezător vede liderul ca soluție excepțională
Anti-sistem furios, suspicios, dezamăgit acuzator, moralizator, direct vede instituțiile ca profund compromise
Anti-suveranist critic, vigilent, defensiv contestatar, argumentativ respinge liderii și discursul suveranist
Conspiraționist alarmist, hiper-suspicios speculativ, revelator, totalizant explică evenimentele prin forțe ascunse
Pro-european normativ, moderat, legalist sobru, justificativ, procedural apără regulile, instituțiile și ancorarea europeană
Prompt v1
Ești analist de discurs politic.
Citește comentariul și identifică:
1. target: cine sau ce este discutat în principal
2. stance: poziția față de target
3. sentiment: valența generală
4. tone: tonul dominant
5. topic: tema principală
6. interpretation_problem: none / sarcasm / multiple_targets / unclear_text / other
7. reason: justificare scurtă
Returnează JSON valid.

Comentariu:
<<< {comment_text} >>>

Output așteptat:
{
  "target": "...",
  "stance": "support|attack|neutral|ambiguous",
  "sentiment": "positive|negative|neutral|mixed",
  "tone": "...",
  "topic": "...",
  "interpretation_problem": "...",
  "reason": "..."
}

Promptul v1 nu produce etichete finale. Este un test didactic: vedem unde modelul confundă sentimentul cu poziționarea față de țintă, unde apar ținte multiple și ce trebuie definit mai clar în C4.

Etică și date