Kilka dni temu natknęłam się na „ten post” na temat analizy tekstów Taylor Swift i pomyślałam, że fajnym pomysłem byłoby samodzielne wypróbowanie tego projektu w weekend i poćwiczenie eksploracji tekstu.

Dla tych z Was, którzy nie mają pojęcia, kim jest „BTS”, to koreańska grupa, która robi furorę na Zachodzie, odkąd stała się pierwszą grupą kpopową, która zdobyła nagrodę Billboard Music Awards w 2017 roku. Chociaż nie jestem ARMY (jak nazywają się ich fani), śledziłem ich wydawnictwa od debiutu i naprawdę podobała mi się równowaga pomiędzy zabawnym, rozrywkowym aspektem ich bardziej skomercjalizowanych piosenek a poruszanymi przez nich kwestiami społecznymi – coming-of- problemy związane z wiekiem, zdrowie psychiczne, wzmocnienie pozycji kobiet itp. Ich dobrze napisane teksty trafiają do młodych dorosłych i myślę, że po części przyczynia się to do ich ogromnego międzynarodowego sukcesu. Jeśli jeszcze tego nie zrobiłeś, sprawdź ich najnowszy singiel „Idol (z udziałem Nicki Minaj!)”, ale moim ulubionym z nich jest „Whalien 52”, który opowiada o najbardziej samotnym wielorybie na Ziemi.

Teraz jako zwykły fan nie czytam (i nie mogę) czytać i analizować tekstów wszystkich ich piosenek, ponieważ mają ogromną dyskografię (2013–2018). Możemy jednak użyć „przetwarzania języka naturalnego” (NLP) — obszaru sztucznej inteligencji (AI), który analizuje dane w języku naturalnym — w celu wydobycia pewnych informacji ze zbioru tekstów piosenek. Rozpalmy ogień!

Przekształcanie danych

Dobre

Nie pracowałem z wieloma technikami, których będę używać, ale nie ma się czego obawiać, ponieważ istnieją biblioteki open source umożliwiające prawie wszystko. Pomyślałem, że będę musiał przeszukać sieć, żeby znaleźć ich teksty, ale na szczęście ktoś już napisał do tego pakiet, więc skorzystałem z „tego samouczka”, aby umieścić wszystkie ich piosenki na „Genius.com”.

Złe

Ich oryginalne teksty są duh, koreańskie. Nauczyłem się tylko, jak radzić sobie z Unicode. Poza tym praca z językiem koreańskim jest naprawdę trudna ze względu na złożoność form czasowników (których jeszcze nie opanowałem i nie sądzę, że kiedykolwiek to zrobię). Teksty koreańskie są zwykle pisane zupełnie inaczej niż mowa formalna, powiedzmy, w literaturze; istnieją slangi i „niepoprawne” użycie gramatyki. Istnieje również problem z segmentacją słów. Dlatego pomyślałem, że praca z tłumaczeniami na język angielski będzie łatwiejsza do wydobycia prawidłowego pomysłu na tekst. Biorąc pod uwagę ogromną popularność BTS na Zachodzie, nie jest bardzo trudno znaleźć angielskie tłumaczenia na Genius, z których większość jest całkiem przyzwoita (przejrzałem kilka piosenek, żeby sprawdzić, czy nie było jakiś dużych błędów w tłumaczeniu w kontekście). Mamy więc naszą kolekcję tekstów, czyli korpus.

Brzydki

Czyszczenie danych. Nie wiedziałem, że czyszczenie danych zajmie tak dużoczasu. Po usunięciu zduplikowanych utworów (remiksów) pozostało mi w sumie 95 utworów, co wydawało się w porządku. Jednak najtrudniejszą częścią było określenie, które słowa należy uwzględnić, ponieważ w języku angielskim istnieje wiele słów, które nie mają wpływu na ogólne znaczenie tekstu, np. „ja”, „ty” , "powinien". Są to tak zwane słowa blokowane, które należy wykluczyć z korpusu. Spędziłem tyle czasu, przeglądając wszystkie wow i tak, zanim w końcu miałem czysty korpus do pracy.

Wyobrażanie sobie

Najpierw przyjrzyjmy się jednej piosence. Poniżej znajduje się chmura słów wygenerowana na podstawie utworu „Best of Me”. Ma to sens, ponieważ słowa „got” i „best” są najczęstszymi słowami, ponieważ powtarzają frazę „You got the best of me” przez większą część utworu.

Teraz zróbmy to samo z pozostałymi 94 piosenkami… Myślę, że nie. Możemy jednak przyjrzeć się najpopularniejszym słowom we wszystkich piosenkach. Oto wynik.

Ok, więc wygląda na to, że ogólnie ich teksty mówią o miłości, pożądaniu, czasie, rapie i marzeniach, które są częstymi tematami w piosenkach popowych. Ale czy jest to prawdziwe odzwierciedlenie wszystkich tematów muzyki BTS? Zagłębmy się głębiej.

Osadzanie słów

Jedną z bardzo popularnych technik eksploracji tekstu jest użycie word2vec do tworzenia osadzonych słów. Model ten polega zasadniczo na wzięciu dużego korpusu tekstowego i mapowaniu każdego słowa w wielowymiarową przestrzeń. Mając tylko 95 piosenek, które zawierały około 3000 unikalnych słów, użyłem tylko 50 wymiarów. Robiąc to, możemy zobaczyć podobieństwo między niektórymi słowami, patrząc na ich odległości na mapowanej przestrzeni. Ale jak możemy widzieć w przestrzeni 50-wymiarowej? Możemy to zwizualizować za pomocą „t-SNE”, czyli techniki redukcji wymiarowości, którą można wykorzystać do wizualizacji danych wielowymiarowych w formacie 2-D.

Patrząc na to, możemy zorientować się, w jaki sposób słowa są ze sobą powiązane. Im bardziej są one skupione, tym bardziej podobne są kontekst. Powiększmy obraz i przyjrzyjmy się niektórym słowom.

W skupieniu środkowym widzimy słowa związane z wewnętrznymi zmaganiami, jak „głupiec”, „zmartwienie”, „ciemność”, ale także pewność siebie: „proszę”, „wiem”, „okej”. BTS ma wiele piosenek o dojrzewaniu, w których wyrażają swoją niepewność i zmagania z dorastaniem, ale kryje się za nimi pozytywny komunikat, który chcieliby wysłać: wszystko w porządku, wszystko będzie dobrze.

Cóż, w tym klastrze również jest „impreza”, ale hej, czasami możesz po prostu imprezować ze swoimi problemami??!!?

Modelowanie tematyczne

Teraz, gdy wiem, jak powiązane są ze sobą słowa w ich tekstach, chcę wiedzieć, czy możemy połączyć wszystkie ich piosenki w osobne tematy. W tekstach BTS możemy znaleźć zestawy słów, które często pojawiają się razem, tworząc różne „tematy” powracające w ich karierze muzycznej.

Ekstrakcja cech

Najpierw musimy wyodrębnić cechy do modelowania. Powszechnym modelem ekstrakcji cech jest „worek słów”, który po prostu polega na umieszczeniu każdego słowa w osobnym „worku” i sprawdzeniu jego częstotliwości w tekście. Odrzucamy informacje o kolejności słów lub strukturze zdań. Ta metoda jest prosta do zrozumienia i wdrożenia, ale w wyniku kompromisu tracimy kontekst i znaczenie.

Jednak w tekstach piosenek niektóre słowa powtarzają się częściej niż inne, aby piosenka była bardziej chwytliwa. Istnieje metoda, która karze liczbę słów, które pojawiają się częściej w korpusie, ponieważ słowa te mogą nie zapewniać lepszego wglądu w tematykę dokumentów. Nazywa się to „tf-idf” i będziemy go używać do wyodrębniania cech.

Modele

Istnieją 2 algorytmy często używane w modelowaniu tematycznym: „nieujemna faktoryzacja macierzy” (NMF) i „Ukryta alokacja Dirichleta” (LDA). Obydwa pobierają korpus tekstowy i zwracają listę słów tworzących różne tematy, a także dokumenty należące do określonego tematu. Oszczędzę ci „matematycznych szczegółów” różnic między tymi dwiema metodami i przejdę od razu do wyników.

Jak widać tematy generowane przez NMF były znacznie lepsze niż te generowane przez LDA. Ma to sens, ponieważ mamy do czynienia z dość małym korpusem i NMF generalnie radzi sobie lepiej w takiej sytuacji. Dopracowałem trochę i zdecydowałem się zadowolić 9 ogólnymi tematami (w tej samej kolejności, co wynik powyżej): „Młodzież”, „Zabawa”, „BTS”, „Miłość”, „Randki”, „Strata”, „ Problemy Społeczne”, „Marzenia” i „Samotność”.

Na podstawie tych tematów naniosłem liczbę piosenek na każdy temat, zbiorczo według albumów (w kolejności według daty wydania), aby zobaczyć, jak muzyka BTS zmieniała się na przestrzeni lat.

Zaczynając od debiutanckiego albumu, możemy zauważyć, że na pierwszych dwóch albumach było wiele piosenek o nich samych (dużo wymienianych nazwisk), co całkowicie ma sens, ponieważ musieli ujawnić swoje nazwiska opinii publicznej, a czy jest na to lepszy sposób niż umieszczenie ich imion w tekstach piosenek? Potem, około 2017 roku, po zdobyciu nagrody BBMA nagle masowo się nasilili, dlatego konieczne jest, aby nowi międzynarodowi fani również zapamiętali ich nazwiska, co wyjaśniałoby szczyt w kierunku nowszych wydawnictw.

Ich temat „Randki” osiąga swój szczyt w epoce „Skool Luv Affair” i „Dark&Wild”, co ma również sens, ponieważ w tym czasie przeszli przez okres dojrzewania i dużo śpiewali o randkowaniu/lubieniu kogoś, ze znanymi piosenkami, takimi jak „Boy in Luv” , „Miss Right”, „War of Hormone”, żeby wymienić tylko kilka.

Tematyka „Marzeń”, „Młodości” i „Straty” wydaje się być tematem przewodnim przez cały rok. Jak wspomniałem, BTS piszą swoją muzykę dla młodego pokolenia, więc te tematy będą stanowić większość ich zainteresowań. Podobnie jest z „Problemami społecznymi”, które osiągnęły niezwykły szczyt w epoce „Wings”, kiedy większość słów tworzących ten temat pochodziła z „ 뱁새 (Silver Spoon/Baepsae)”. Odkryłem jednak, że utwory związane z tym tematem w „Wings” są również reprezentatywne dla poruszających problemy społeczne, od „Am I Wrong” po „21st Century Girls”.

Temat „Samotności” wydaje się być najbardziej rozpowszechniony w trylogii „Kochaj siebie”, ale jest też „Miłość”. Zakończyli tę trylogię o miłości albumem, który łączy wszystko w całość, że istnieją ciemne i smutne strony życia, miłości, ale ostateczną odpowiedzią na wszystkie zmagania, najważniejszą rzeczą jest przede wszystkim kochać siebie .

„Kiedy mija zima, zawsze nadchodzi wiosna” – Odpowiedź: Kochaj siebie

Co jeszcze?

Jest o wiele więcej rzeczy, które mogę zrobić, eksplorując teksty, na przykład przeprowadzając analizę nastrojów, aby określić nastrój każdej piosenki lub każdego albumu. Na tej podstawie mogę również stworzyć system rekomendacji, aby zasugerować piosenkę, która pasuje do mojego nastroju. Potrafię modelować tematy, używając oryginalnych koreańskich tekstów (okazuje się, że istnieją dostępne pakiety open source, takie jak KoNLPy, które zostały zaprojektowane do przetwarzania języka Hangul). Możliwości są nieskończone. Ale ogólnie rzecz biorąc, nauczyłem się wielu nowych technik, pracując nad tym, co kocham, świetnie się bawiłem i uzyskałem całkiem interesujące rezultaty.

Wszystkie kody do tego projektu można znaleźć tutaj.