NLP Insights dla Penguin Café Orchestra

Węzeł źródłowy: 1062837

NLP Insights dla Penguin Café Orchestra

Podajemy przykład, jak używać Expert.ai i Pythona do badania ulubionych albumów muzycznych.


Sponsorowany post.

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)

Ekspert Ai Penguin Cafe Word Cloud

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 ()

Wykres kołowy Expert Ai
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ć()

Wykres słupkowy ocen ekspertów Ai

Pierwotnie opublikowane tutaj.

Źródło: https://www.kdnuggets.com/2021/08/expert-nlp-insights-music.html

Znak czasu:

Więcej z Knuggety