NLP Insights dla Penguin Café Orchestra
Podajemy przykład, jak używać Expert.ai i Pythona do badania ulubionych albumów muzycznych.
Autor: Laura Gorrieri, expert.ai
Proszę znaleźć wersję notebooka tego wątku tutaj.
Zbudujmy małą aplikację, aby zbadać jednego z moich ulubionych artystów. Nazywają się "Orkiestra Kawiarni Pingwina” i jeśli ich nie znasz, dowiesz się, o co im chodzi.
Nasz zbiór danych: lista recenzji ich albumów, którą wziąłem ze strony Piero Scaruffi i zapisałem w dedykowanym folderze.
Nasz cel: aby dowiedzieć się więcej o artyście, korzystając z recenzji albumów.
Nasz praktyczny cel: zobaczyć jak NL API dla expert.ai działa i co potrafi.
O czym jest The Penguin Café Orchestra?
Najpierw zobaczmy, co wychodzi z recenzji, analizując tylko użyte w nich słowa. Najpierw połączymy wszystkie recenzje w jedną zmienną, aby mieć całą recenzję artysty. Następnie przyjrzymy się najczęściej pojawiającym się w nich słowom, mając nadzieję, że ujawnią one więcej o Penguin Café Orchestra.
## Kod do iteracji folderu artysty i łączenia recenzji albumów w jednej recenzji artysty importować os artist_review = '' artist_path = 'penguin_cafe_orchestra' albumy = os.listdir (artist_path) dla album in albumy: ścieżka_albumu = os.path.join(ścieżka_wykonawcy, album) w open(ścieżka_albumu, 'r', kodowanie = 'utf8') as plik: recenzja = plik.read() artist_review += recenzja
Korzystając z płytkiego podejścia lingwistycznego, możemy zbadać recenzję artysty, która zawiera wszystkie dostępne recenzje. W tym celu używamy matplotlib i chmury słów, aby utworzyć chmurę słów, która powie nam więcej o najczęściej występujących słowach w tekście.
# Importuj pakiety
importować matplotlib.pyplot as plt % matplotlib inline # Zdefiniuj funkcję do wykreślania chmury słów def plot_chmura(chmura słów): # Ustaw rozmiar figury plt.figure (figsize = (30, 10)) # Wyświetlać obraz plt.imshow(chmura słów) # Brak szczegółów osi oś.pl("wył"); # Importuj pakiet od chmura słów importować WordCloud, SŁOWA STOP # Generuj chmurę słów wordcloud = WordCloud(szerokość = 3000, wysokość = 2000, random_state=1, background_color='biały', kolokacje=Fałszywy, stopwords = STOPWORDS).generate(artist_review) # Wątek plot_cloud(chmura słów)
Rys.1: Chmura słów, w której najczęściej używane słowa pojawiają się większą czcionką, a rzadziej używane mniejszą czcionką.
Jak się czujesz ich muzyka?
Dzięki chmurze słowa wiemy więcej o The Penguin Café Orchestra. Wiemy, że używają instrumentów takich jak ukulele, fortepian i skrzypce oraz że mieszają gatunki takie jak folk, etniczny i klasyczny.
Nadal nie mamy pojęcia o stylu artysty. Możemy dowiedzieć się więcej, patrząc na to, jakie emocje płyną z ich pracy.
W tym celu użyjemy interfejsu NL API eksperta.ai. Proszę zarejestruj się tutaj, znajdź dokumentację w SDK tutaj i na funkcjach tutaj.
### Zainstaluj pakiet SDK Pythona
!pip zainstaluj eksperta-nlapi ## Kod do inicjalizacji klienta, a następnie użyj taksonomii cech emocjonalnych importować os od ekspertai.nlapi.cloud.klient importować Klient ExpertAiClient = ExpertAiClient() os.environ["EAI_USERNAME"] = 'Twoja_nazwa_użytkownika' os.environ["EAI_PASSWORD"] = 'Twoje_hasło' emocje =[] weights = [] output = client.classification(body={"dokument" : {"text": artist_review}}, params={'taksonomia': 'cechy-emocjonalne', 'język': 'en'}) dla kategoria in output.categories: emotion = kategoria.label waga = kategoria.częstotliwość emocje.append(emocja) weights.append(waga) print(emocje) print(wagi)
['Szczęście', 'Ekscytacja', 'Radość', 'Rozrywka', 'Miłość']
[15.86, 31.73, 15.86, 31.73, 4.76]
Do pobierania wag użyliśmy „częstotliwości”, która w rzeczywistości jest wartością procentową. Suma wszystkich częstotliwości wynosi 100. To sprawia, że częstotliwości emocji są dobrym kandydatem na wykres kołowy, który jest wykreślany za pomocą matplotlib.
# Importuj biblioteki
od matplotlib importować pyt as plt importować tępy as np # Tworzenie fabuły kolory = ['#0081a7','#2a9d8f','#e9c46a','#f4a261', '#e76f51'] fig = plt.figure(figsize =(10, 7)) plt.pie(wagi, etykiety = emocje, kolory=kolory, autopct='%1.1f%%') # pokaż fabułę plt.show ()
Rys. 2: Wykres kołowy przedstawiający każdą emocję i jej procent.
Jaki jest ich najlepszy album?
Jeśli chciałbyś zacząć ich słuchać, zobaczyć, czy czujesz te same emocje, które Scaruffis odnajdywał w swojej pracy, od czego mógłbyś zacząć? Możemy przyjrzeć się analizie nastrojów dla każdego albumu i zorientować się, jakie są ich najlepsze. Aby to zrobić, wykonujemy iterację recenzji każdego albumu i używamy interfejsu API expert.ai NL, aby odzyskać ich nastroje i ich siłę.
## Kod do iteracji na każdym albumie i pobierania sentymentu
sentyment_ratings = [] albumy_names = [album[:-4] dla album in albumy] dla album in albumy: ścieżka_albumu = os.path.join(ścieżka_wykonawcy, album) w open(ścieżka_albumu, 'r', kodowanie = 'utf8') as file: review = file.read() output = client.specific_resource_analysis( body={"document": {"text": review}}, params={'language': 'en', 'resource': 'sentiment' } ) sentyment = output.sentiment.overall sentyment_ratings.append(sentiment) print(albums_names) print(sentiment_ratings)
['Nadawanie z domu', 'Program koncertowy', 'Muzyka z kawiarni pingwina', 'Signs of Life']
[11.6, 2.7, 10.89, 3.9]
Teraz możemy zwizualizować nastroje dla każdej recenzji za pomocą wykresu słupkowego. To da nam szybką wizualną informację zwrotną na temat najlepszego albumu The Penguin Cafe Orchestra i ich kariery. W tym celu ponownie używamy matplotlib.
importować matplotlib.pyplot as plt plt.style.use('ggplot') albums_names = [nazwa[:-4] dla Nazwa in albumy] plt.bar(nazwy_albumów, sentymenty_oceny, color='#70A0AF') plt.ylabel("Ocena albumów") plt.title("Oceny albumów Penguin Cafe Orchestra") plt.xticks(nazwy_albumów, rotacja=70) plt .pokazać()
Pierwotnie opublikowane tutaj.
Źródło: https://www.kdnuggets.com/2021/08/expert-nlp-insights-music.html
- '
- "
- &
- 100
- 11
- 7
- 9
- AI
- albumy
- Wszystkie kategorie
- analiza
- api
- Zastosowanie
- artysta
- Artyści
- BEST
- budować
- Kariera
- Chmura
- kod
- wspólny
- Tworzenie
- dane
- nauka danych
- głęboka nauka
- Dyrektor
- emocje
- Korzyści
- Figa
- Postać
- i terminów, a
- funkcjonować
- dobry
- GPU
- Strona główna
- nadzieję
- W jaki sposób
- How To
- HTTPS
- pomysł
- spostrzeżenia
- Wywiad
- badać
- IT
- Etykiety
- język
- UCZYĆ SIĘ
- nauka
- Lista
- miłość
- ML
- Muzyka
- Nerwowy
- nlp
- koncepcja
- open source
- zamówienie
- Program
- Python
- Oceny
- Przyczyny
- regresja
- Zasób
- przeglądu
- Recenzje
- nauka
- Naukowcy
- Sdk
- sentyment
- zestaw
- znaki
- mały
- So
- początek
- historie
- Top
- us
- Strona internetowa
- słowa
- Praca
- działa
- X