POLITYCZNY YOUTUBE - ANALIZA TRANSKRYPTÓW VIDEO

CEL

Niniejszy projekt ma na celu śledzenie emocji, wydźwięku moralnego, mowy nienawiści oraz innych wskaźników w nagraniach publikowanych na polskich kanałach o tematyce politycznej. Kanały te reprezentują całe spektrum poglądów - od lewicy, przez liberałów i centrum po prawicę.

Analizowane dane zostały zebrane w okresie od do lipca 2026 r. Poniżej znajduje się lista kanałów, z których nagrania są reprezentowane w zbiorze danych, z uwzględnieniem ich nachylenia ideologicznego.

Lewica
1) Krytyka Polityczna TV
2) Nazwex
3) Michalina Kobla
4) Jan Śpiewak
5) Dwie Lewe Ręce
6) Reset Obywatelski
7) Partia Razem
8) OKO.press

Liberałowie
1) Dominika Wielowieyska
2) Tomasz Lis
3) TVN24
4) Roman Giertych
5) Stan Wyjątkowy
6) Newsweek Polska
7) Kultura Liberalna
8) Eliza Michalik

Centrum
1) Fakt
2) Goniec
3) Interia
4) Jan Piński
5) Polsat News
6) Polskie Radio 24
7) Super Express
8) Rymanowski Live

Prawica
1) Kanał Zero
2) Klub Jagielloński
3) Patriotyczny Internet
4) Rafał Ziemkiewicz
5) Sławomir Mentzen
6) Telewizja Republika
7) Telewizja wPolsce24
8) Wolność i Niepodległość TV

Na tak oznaczonych danych przeprowadzono szereg analiz (m.in. analizę skupień, analizę sieci, estymacja modelu przewidującego liczbę polubień), których wyniki prezentowane są we wpisach na blogu oraz GitHub.

TŁUMACZENIE TRANSKRYPTÓW NA ANGIELSKI

KlasyFIKACJA EMOCJI - GO EMOTIONS

FUNDAMENTY MORALNE - MORAL FOUNDATIONS DICTIONARY 2.0

Klasyfikacja emocji (GoEmotions), analiza fundamentów moralnych (MFD) oraz pewne warianty detekcji mowy nienawiści z konieczności zrealizowane zostały na tekstach anglojęzycznych — odpowiednie narzędzia skonstruowane zostały dla języka angielskiego i nie mają wiarygodnych odpowiedników dla języka polskiego. Krokiem wstępnym analiz było zatem tłumaczenie transkryptów z polskiego na angielski.

Do tłumaczenia użyto modelu GPT-4o (OpenAI) przez API, z temperaturą 0 (tryb deterministyczny) i następującym promptem systemowym:

You are a professional translator. Translate the following text into English. Preserve the original meaning, tone, and style as closely as possible. Return only the translated text, with no commentary or explanation.

Wybór GPT-4o podyktowany był jakością tłumaczenia: w przeciwieństwie do lekkich modeli sekwencja-do-sekwencji (np. Helsinki-NLP/opus-mt-pl-en), GPT-4o zachowuje rejestr, idiomy i strukturę retoryczną wypowiedzi, co było istotne dla analizy emocji, fundamentów moralnych i mowy nienawiści. W celu zapewnienia reprodukowalności analizy, temperaturę modelu ustawiono na 0.

Każdy transkrypt tłumaczony był w całości jako jeden request — bez podziału na chunki.

Do detekcji emocji wykorzystano model SamLowe/roberta-base-go_emotions (HuggingFace), oparty na architekturze RoBERTa i dostrojony na zbiorze GoEmotions (Demszky i in., 2020). Jest to klasyfikator wieloetykietkowy (multi-label) rozróżniający 27 kategorii emocjonalnych oraz klasę neutralną.

Dla każdego tekstu model zwracał wektor prawdopodobieństw dla wszystkich 28 klas. Etykiety przypisywane były progowo: za aktywną uznaje się każdą emocję z prawdopodobieństwem ≥ 0,30. Próg ten jest standardowym kompromisem między precyzją a czułością w klasyfikacji wieloetykietkowej i odpowiada podejściu stosowanemu w oryginalnej publikacji.

Obsługa długich tekstów. Model przyjmuje maksymalnie 512 tokenów (≈ 400 słów). W związku z tym, że transkrypty filmów istotnie przekraczały ten limit, każdy transkrypt dzielony był na nienachodzące na siebie chunki po 400 słów. Każdy chunk był klasyfikowany niezależnie, a wyniki (wektory prawdopodobieństw) były uśredniane arytmetycznie — co daje jeden wektor reprezentujący cały transkrypt. Takie podejście zapewniało pełne pokrycie tekstu, w przeciwieństwie do alternatywy polegającej na analizie wyłącznie pierwszych 512 tokenów, która faworyzowałaby treści z początku nagrania i wprowadzałaby systematyczne obciążenie związane z pozycją w tekście.

Wyniki zapisywane były jako 28 kolumn numerycznych (emotion_admiration, emotion_anger, …) oraz kolumna emotion_labels zawierająca etykiety tekstowe emocji powyżej progu, rozdzielone pionową kreską.

Nasilenie języka moralizującego mierzono za pomocą słownikowego podejścia opartego na Moral Foundations Dictionary 2.0 (Frimer i in., 2019; Graham i in., 2009; Haidt & Joseph, 2004). MFD 2.0 stanowi rozbudowaną wersję oryginalnego słownika — średnia liczba słów na fundament wzrosła z ~32 (MFD 1.0) do ~210, a rzetelność słownika została zwalidowana na próbie ponad 1000 uczestników z 58 krajów piszących eseje moralne. Słownik operacjonalizuje sześć fundamentów moralnych:

  • Troska / Krzywda

  • Sprawiedliwość / Oszustwo

  • Lojalność / Zdrada

  • Autorytet / Wywrotowość

  • Czystość (Świętość) / Skażenie

  • Wolność / Opresja

Fundament Wolność/Oppresja został dodany w późniejszych wersjach teorii (Haidt, 2012) i nie był obecny w oryginalnym MFD 1.0.

Każdy fundament podzielony jest na dwie podkategorie: virtue (język cnoty, wartości pozytywnych) i vice (język występku, naruszenia normy). Dla każdej podkategorii zliczane są słowa z angielskiego tekstu transkryptu pasujące do listy rdzeni (stems) metodą dopasowania prefiksowego. Wynik dla każdej podkategorii to proporcja pasujących słów względem łącznej liczby tokenów w tekście, co uniezależnia wskaźnik od długości transkryptu. Wyniki podkategorii są następnie agregowane do wskaźnika na poziomie fundamentu (mfd_care = mfd_care_virtue + mfd_care_vice). W pliku wynikowym dostępne są zarówno wskaźniki zagregowane (6 kolumn reprezentujących nasilenie fundamentu moralnego) i szczegółowe (12 kolumn reprezentujących cnoty i transgresje).

DETEKCJA MOWY NIENAWIŚCI

Mowa nienawiści mierzona była równolegle zużyciem dwóch podejść, co pozwoliło na sprawdzenie zgodności wyników między modelami i językami.

Wariant anglojęzyczny

W wariancie anglojęzycznym przeprowadzono klasyfikację binarną (facebook/roberta-hate-speech-dynabench-r4-target; model RoBERTa dostrojony na zbiorze Dynabench - cztery rundy adnotacji adwersarialnej), rozróżniającą klasy hate i nothate. Wynik to prawdopodobieństwo klasy hate(hate_en_score) oraz binarna etykieta przy progu 0,50 (hate_en_binary).

Przeprowadzono też klasyfikację wielokategorialną (cardiffnlp/twitter-roberta-base-hate-multiclass-latest; model RoBERTa dostrojony na zbiorze ~83 000 tweetów), rozróżniającą sześć kategorii mowy nienawiści (rasa, religia, płeć, orientacja seksualna, niepełnosprawność, pochodzenie) oraz kla not-hate. Wyniki to prawdopodobieństwa dla każdej kategorii. Kolumna hate_en_category zawiera dominującą kategorię.

Oba modele trenowane były na danych z mediów społecznościowych (Twitter), co stanowi ograniczenie przy analizie transkryptów mowy publicznej — zróżnicowanie stylistyczne może wpływać na kalibrację modelu.

Analogicznie jak dla GoEmotions, transkrypty dzielone były na chunki po 400 słów, każdy chunk był klasyfikowany niezależnie, a wyniki uśredniane arytmetycznie po wszystkich chunkach.

Wariant polskojęzyczny

Na oryginalnym, polskim tekście transkryptu stosowany jest model hate-speech-CNERG/dehate-bert-multilingual — wielojęzyczny BERT dostrojony na danych z projektu DeHatE, obejmujących kilka języków europejskich w tym polski. Model zwraca klasyfikację binarną (hate / non-hate); wyniki zapisywane były jako prawdopodobieństwo klasy hate analogicznie jako (hate_pl_score) i binarna etykieta przy progu 0.50 (hate_pl_binary).

Zgodność między wariantami

Użycie modeli polsko- i anglojęzycznego pozwoliło na sprawdzenie zgodności klasyfikacji binarnych PL i EN (1 = zgodna, 0 = niezgodna).

esencjalizm językowy

Esencjalizm językowy zoperacjonalizowano jako odsetek rzeczowników w analizowanych tekstach. Wskaźnik obliczany był na oryginalnym, polskim tekście transkryptu przy użyciu modelu pl_core_news_sm biblioteki spaCy (Honnibal i in., 2020). Model wykonywał tagowanie części mowy (POS tagging) z użyciem tagów Universal Dependencies. Za rzeczowniki uznawane były tokeny z tagiem NOUN (rzeczowniki pospolite) oraz PROPN (nazwy własne). Wskaźnik definiowany jest jako stosunek liczby rzeczowników do liczby wszystkich tokenów znaczących (tj. pozostałych po usunięciu znaków interpunkcyjnych i białych znaków).

Teoretyczne uzasadnienie tego wskaźnika pochodzi z literatury nad esencjalizmem psychologicznym i kategoryzacją społeczną: użycie rzeczowników (zamiast przymiotników lub czasowników) do opisu grup i zjawisk sprzyja postrzeganiu ich jako naturalnych, niezmiennych kategorii (Carnaghi i in., 2008; Gelman, 2003). W kontekście dyskursu politycznego wyższy odsetek rzeczowników może sygnalizować bardziej esencjalistyczny sposób ramowania rzeczywistości społecznej i jest najwyższy u osób o poglądach prawicowych (Cichocka i in., 2016).

Język grupowy

Język grupowy mierzony był leksykalnie na oryginalnym, polskim tekście transkryptu. Wyodrębniane były dwie kategorie zaimków:

Zaimki 1 osoby l. m. (MY): słowa my, nam, nas, nami oraz przymiotniki nasz, nasza, nasze i ich formy przypadkowe,

Zaimki 2 i 3 osoby l.m. (ONI/WY): oni, one, im, ich, nimi, wy, wam, was, wami, wasz, wasza, wasze i formy przypadkowe.

Obliczane były cztery wskaźniki:

  • we_ratio — proporcja zaimków MY względem wszystkich tokenów w tekście

  • they_ratio — proporcja zaimków ONI/WY względem wszystkich tokenów

  • we_count, they_count — bezwzględne liczby wystąpień

  • we_they_ratio — proporcja zaimków MY wśród wszystkich zaimków grupowych (MY + ONI/WY); wartość 1,0 oznacza wyłącznie język MY, wartość 0,0 — wyłącznie język ONI/WY

Klasyfikacja oparta była na dopasowaniu dokładnym (exact match) do zamkniętej listy form, co eliminowało ryzyko fałszywych trafień przy metodach opartych na rdzeniach.

analiza skupień w oparciu o profil emocjonalny

Na podstawie 28-wymiarowych wektorów emocji (GoEmotions) przeprowadzana została analiza skupień, w której jednostkami analizy były poszczególne filmy. Celem był identyfikacja typów dyskursu emocjonalnego — grup filmów o podobnym profilu emocjonalnym — bez zakładania z góry ich liczby ani charakteru.

Przygotowanie danych

Przed klastrowaniem wektory emocji zostały wystandaryzowane (M = 0, SD = 1) osobno dla każdej z 28 zmiennych. Zadaniem standaryzacji było wyrównanie skali między emocjami o różnym poziomie bazowym i zapobieżenie dominacji zmiennych o wysokiej wariancji.

Metody klastrowania

Klastry wyznaczono z, używając trzech odrębnych metod, tj. K-Means, metody hierarchicznej i DBSCAN.

Metoda K-Means minimalizuje sumę kwadratów odległości wewnątrz klastrów. Algorytm wymaga podania liczby skupień k a priori; optymalną wartość k wyznaczan na podstawie czterech kryteriów: metody łokcia (inercja), współczynnika silhouette (im wyższy tym lepiej), indeksu Calinskiego-Harabasza (im wyższy tym lepiej) oraz indeksu Daviesa-Bouldina (im niższy tym lepiej). Każde k z zakresu 2–10 testowane było przy 50 reinicjalizacjach losowych centroidów.

Klastrowanie hierarchiczne to aglomeracyjna metoda minimalizująca przyrost wariancji wewnątrzklasowej przy każdym połączeniu (Ward linkage). Nie wymaga reinicjalizacji i daje stabilne wyniki; dendrogram pozwala wizualnie ocenić strukturę hierarchiczną danych. Liczba skupień ustalana jest na tym samym poziomie co dla K-Means, co umożliwia porównanie obu rozwiązań.

HDBSCAN (Hierarchical Density-Based Spatial Clustering of Applications with Noise) to metoda gęstościowa niewymagająca podania liczby skupień a priori; automatycznie wykrywa ona liczbę klastrów i oznacza obserwacje odstające jako szum (etykieta −1). Przed klastrowaniem HDBSCAN redukuje przestrzeń do 10 wymiarów przy użyciu PCA, co jest standardową praktyką poprawiająca jakość klastrowania gęstościowego przy wysokiej wymiarowości (McInnes i in., 2017).

Ocena i porównanie rozwiązań

Jakość każdego rozwiązania oceniana była współczynnikiem silhouette na standaryzowanych cechach. Zgodność między K-Means a klastrowniem hierarchicznym mierzona była za pomocą Adjusted Rand Index (ARI; Hubert & Arabie, 1985): wartość ARI = 1,0 oznacza identyczny podział, ARI ≈ 0 — podział losowy.

Redukcja wymiarowości i wizualizacja

Do dwuwymiarowej wizualizacji przestrzeni emocjonalnej zastosowana została metoda UMAP (Uniform Manifold Approximation and Projection; McInnes i in., 2018) z parametrami n_neighbors=15, min_dist=0.1. UMAP zachowuje zarówno lokalną jak i globalną strukturę danych lepiej niż PCA, przy zbliżonym czasie obliczeń do t-SNE. Kolor obserwacji przedstawionych na płaszczyźnie UMAP zależał od przynależności do skupień (trzy warianty: K-Means, hierarchiczne, HDBSCAN) oraz orientacji politycznej kanału, co pozwoliło ocenić nakładanie się podziałów emocjonalnych i politycznych.

Interpretacja skupień

Każde skupienie interpretowane było na podstawie profilu emocji: dla każdego klastra obliczana była średnia wartość każdej z 28 emocji oraz delta względem średniej globalnej. Dominujące emocje (najwyższa delta dodatnia) i emocje najsłabsze (najwyższa delta ujemna) stanowiły podstawę opisu treściowego skupienia. Dodatkowo dla każdego skupienia sprawdzano rozkład orientacji politycznych kanałów, co pozwoliło ocenić, czy skupienia emocjonalne były zróżnicowane politycznie.

literatura

Carnaghi, A., Maass, A., Gresta, S., Bianchi, M., Cadinu, M., & Arcuri, L. (2008). Nomina sunt omina: On the inductive potential of nouns and adjectives in person perception. Journal of Personality and Social Psychology, 94(5), 839–859.

Cichocka, A., Bilewicz, M., Jost, J. T., Marrouch, N., & Witkowska, M. (2016). On the grammar of politics—Or why conservatives prefer nouns. Political Psychology, 37(6), 799–815.

Demszky, D., Movshovitz-Attias, D., Ko, J., Cowen, A., Nemade, G., & Ravi, S. (2020). GoEmotions: A dataset of fine-grained emotions. Proceedings of ACL 2020.

Frimer, J. A., Aquino, K., Gebauer, J. E., Zhu, L. L., & Oakes, H. (2019). A decline in prosocial language helps explain public disapproval of the US Congress. PNAS, 116(46), 22960–22967.

Frimer, J. A., Boghrati, R., Haidt, J., Graham, J., & Dehghani, M. (2019). Moral Foundations Dictionary for Linguistic Analyses 2.0. Unpublished manuscript. Retrieved from https://osf.io/xakyw

Gelman, S. A. (2003). The essential child: Origins of essentialism in everyday thought. Oxford University Press.

Graham, J., Haidt, J., & Nosek, B. A. (2009). Liberals and conservatives rely on different sets of moral foundations. Journal of Personality and Social Psychology, 96(5), 1029–1046.

Haidt, J., & Joseph, C. (2004). Intuitive ethics: How innately prepared intuitions generate culturally variable virtues. Daedalus, 133(4), 55–66.

Honnibal, M., Montani, I., Van Landeghem, S., & Boyd, A. (2020). spaCy: Industrial-strength natural language processing in Python. Zenodo.

Hubert, L., & Arabie, P. (1985). Comparing partitions. Journal of Classification, 2(1), 193–218.

McInnes, L., Healy, J., & Astels, S. (2017). hdbscan: Hierarchical density based clustering. Journal of Open Source Software, 2(11), 205.

McInnes, L., Healy, J., & Melville, J. (2018). UMAP: Uniform manifold approximation and projection for dimension reduction. arXiv:1802.03426.

KOD I WYNIKI

Czy nagrania z politycznego YT da się sensownie pogrupować?GitHubL

Fot: Piotr Waglowski