Przeanalizowałem 8400 tekstów piosenek 100 polskich raperów. Pod uwagę wziąłem około 1000 artystów z czego wybrałem 100 z największą ilością utworów. Na wizualizacji prezentuję 300 najczęściej występujących słów – im większy napis tym częściej słowo występuje.
Materiały zostały przygotowane w pythonie, a wizualizacja danych została przygotowana przy użyciu biblioteki d3.js oraz algorytmu Jasona Davis’a.
Z ciekawostek, słowo kurwa pojawia się 4335 razy, chuj 2293 razy, jebać 687 razy – z pewnością można powiedzieć, że jest to język ekspresywny, z dużą dawką emocji i nieco wulgarny.
Dominują tematy o życiu, a także teksty autotematyczne – słowo rap występuje 6334 razy, bit 1408 razy, MC 664 razy, a hip-hop 827 razy. Występują neologizmy, zapożyczenia z języka angielskiego oraz slang.
Chmura tagów
Trzeba zaznaczyć, że chmura tagów, czyli w tym wypadku chmura słów nie pozwala na analizę językową, bo obrazuje tylko częstotliwość występowania poszczególnych wyrazów. To też jest jakaś informacja, tyle że niepełna – nie znamy kontekstu tych słów i nie jest łatwo ocenić zależności pomiędzy słowami. Uważa się nawet, że wizualizacja typu word cloud jest szkodliwa, można o tym poczytać tutaj.
Jak to zostało zrobione
Napisałem skrypt w pythonie, który pobrał około 1000 nazw artystów z last.fm, a potem sprawdził czy wykonawcy znajdują się w bazie tekstów piosenek. Jeżeli były, to skrypt pobrał tekst każdej piosenki każdego artysty. Z tego materiału wybrałem 100 najbardziej płodnych artystów, co oceniłem po kb zapisanych na dysku dla każdego z nich.
Następnie teksty zostały podzielone na słowa, usunąłem stop words czyli słowa często występujące, ale mające małe znaczenie np. “ale”, “i”, “lub”, a potem to już było łatwo, bo skrypt policzył częstotliwość występowania słów, wyeksportował wyniki i potem to już tylko trochę zabawy z d3.