Kontynuując wpis sprzed dwóch dni, dziś będzie o Sejmie i Senacie. Interesującym portalem nawiązującym do tematu smart voting jest Sejmometr (http://sejmometr.pl/). Umożliwia on obserwowanie prac Sejmu i Senatu. Niebawem dostępne będzie API pozwalające na automatyczny dostęp do zbieranych w ramach tego projektu danych. W bardzo estetyczny i łatwy w nawigacji sposób przedstawione są informacje o posłach i senatorach, ich wypowiedzi, wyniki głosowań itp. Bardzo ciekawy portal dla osób chcących być naprawdę na bieżąco.
Rzecz której mi brakuje to spojrzenie na prace sejmu ,,z lotu ptaka’’. Agregaty pozwalające na orientację co się działo przez ostatnie pół roku/dwa lata. Rozwiązania w stylu chmura tagów, z informacjami jakie tematy są najczęściej poruszane albo analiza częstości słów byłoby mile widziane. Tagi mogłyby być generowane automatycznie lub jeszcze lepiej, użytkownicy portalu mogliby otagowywać wystąpienia posłów. Poczekajmy więc na API i zobaczymy co w tym temacie można zrobić.
A w międzyczasie pokażę przykład analizy danych pochodzących ze stenogramów, z lotu bardzo wysoko latającego ptaka. Punktem wyjścia są dane z Korpusu Języka Polskiego (http://korpus.pl/), projektu rozwijanego przez IPIPAN. Wiele tekstów zostało poddanych analizie w ramach tego korpusu, między innymi stenogramy z posiedzeń Sejmu i Senatu. Dla każdego z posiedzeń, dla każdego (ok., dla większości) wypowiedzianego słowa przypisano odpowiedni fleksem, czyli jedną z ponad dwudziestu klas gramatycznych. Więcej informacji o fleksemach znaleźć można np. tutaj. Mamy więc zbiór danych dla 65 milionów słów wypowiedzianych przez 4 kadencje Sejmu i 4 kadencje Senatu z informacją do której klasy fleksyjnej (których klas) należy to słowo. Możemy teraz z takiego zbioru danych policzyć tablice rozdzielczą (krzyżową, kontyngencji, zwał jak zwał) z informacją w której kadencji Sejmu i Senatu padło ile słów z odpowiedniej klasy fleksyjnej (opisującej formę i znaczenie słowa). Tę tablicę liczb (27 x 8) umieściłem w pakiecie PBImisc programu R w zbiorze danych SejmSenat. Jak znaleźć wzorce w takiej tablicy 217 liczb? Użyjemy do tego celu analizy odpowiedniości / analizy korespondencji. Analiza ta pozwala na określenie, które wiersz (fleksemy) i kolumny (kadencje Sejmu i Senatu) mają podobne profile używalności słów a również które wiersze / kolumny współwystępują częściej niż wskazywałaby na to częstość występowania w języku. Trochę więcej o stronie technicznej później, a na razie zobaczmy wyniki analizy korespondencji na zbiorze danych o używalności klas fleksyjnych w stenogramach Sejmu i Senatu.
[Rys. 1. Czerwone strzałki odpowiadają profilom stenogramów z posiedzeń Sejmu Senatu, niebieskie punkty odpowiadają profilom używalności fleksemów. Im bliższe zwroty tym większa zależność pomiędzy profilami. W analizie usunięto fleksem interp, ponieważ bardzo odstawał od pozostałych. Wersja png znajduje się tutaj. Warto ten wykres powiększyć by zobaczyć gdzie są jakie fleksemy, na szczęście jest to grafika wektorowa.]
Osie pozioma i pionowa odpowiadają dwóm automatycznie znalezionym komponentom. Tak się jednak składa, że te komponenty mają naturalną interpretację, którą łatwo odczytać z wykresu. Pierwszy komponent (oś pozioma) odpowiada za zmiany w używalności fleksemów pomiędzy Sejmem a Senatem. Im wyższa wartość pierwszej składowej, tym profil używalności bardziej charakterystyczny dla stenogramów z Senatu. Drugi komponent odpowiada za zmianę w używalności fleksemów z czasem, im wyższa wartość drugiej składowej tym profil bardziej charakterystyczny dla starszych posiedzeń.
Pięknie. Skoro osie mają taką naturalną interpretację, to zobaczmy jakie fleksemy są częściej używane w Sejmie, a które w Senacie, które były częściej używane kiedyś a które obecnie.
Na osi poziomej dwa interesujące fleksemy to np. num i depr. Num to skrót od ,liczebnik główny’ a depr to skrót od rzeczownik deprecjatywny (najczęściej używany do oceny negatywnej). To co można więc z wykresu łatwo odczytać (i sprawdzić ręcznie w tablicy kontyngencji) to, że w stenogramach z Senatu częściej występują liczebniki niż w stenogramach z Sejmu, widać więcej mówi się o liczbach, konkretach. W stenogramach z Sejmu częściej występują rzeczowniki w znaczeniu deprecjatywnym, widać atmosfera jest gorętsza.
Na osi pionowej interesujące fleksemy to np. winien i będzie. Skrót ‘winien’ odpowiada słowom typu ,winien’, ‘powinien’ itp., skrót ‘bedzie’ odpowiada przyszłej formie czasownika być. Kiedyś jak widać częściej w Sejmie i Senacie mówiło się o tym jak być powinno, tendencja jest tak aby częściej mówić o tym jak będzie.
Podsumowując. Można z danych o stenogramach szukać trendów widocznych w większej skali czasowej. Potrzebujemy tylko dostępu do przetworzonych stenogramów i pomysłu na to czego w tych stenogramach szukać.
W programie R jest kilka pakietów do analizy korespondencji, np., pakiet ca i anacor, można o nich przeczytać np. tutaj (pakiet anacor, pakiet ca). W tych artykułach przedstawione są zarówno podstawy matematyczne jak i przykłady zastosowań. Technicznie, podobnie jak dla PCA, bazuje się na dekompozycji SVD, ale oczywiście ważne jest co chcemy dekomponować.
Kod R wraz z dokładniejszymi wynikami analizy korespondencji znajduje się tutaj.