Approfondimenti sulla PNL per la Penguin Café Orchestra

Nodo di origine: 1062837

Approfondimenti sulla PNL per la Penguin Café Orchestra

Diamo un esempio di come utilizzare Expert.ai e Python per indagare sugli album musicali preferiti.


Post sponsorizzato.

A cura di Laura Gorrieri, expert.ai

Si prega di trovare la versione notebook di questo thread qui.

Costruiamo una piccola applicazione per indagare su uno dei miei artisti preferiti. Sono chiamati "L'orchestra del caffè dei pinguini” e se non li conosci scoprirai di cosa si tratta.

Il nostro set di dati: un elenco delle recensioni del loro album che ho preso dal sito di Piero Scaruffi e salvato in una cartella dedicata.

Il nostro obiettivo: per saperne di più su un artista utilizzando le recensioni degli album.

Il nostro obiettivo pratico: per vedere come API NL di expert.ai funziona e cosa può fare.

Di cosa parla la Penguin Café Orchestra?

Per prima cosa vediamo cosa viene fuori dalle recensioni semplicemente analizzando le parole usate in esse. Per prima cosa concateneremo tutte le recensioni in un'unica variabile, in modo da avere un'intera recensione dell'artista. Quindi daremo un'occhiata alle parole più frequenti in esse, sperando che rivelino di più sulla Penguin Café Orchestra.

## Codice per iterare sulla cartella dell'artista e concatenare le recensioni degli album in una singola recensione dell'artista
importare os artist_review = '' artist_path = 'penguin_cafe_orchestra' album = os.listdir(artist_path) per album in albums: percorso_album = os.path.join(percorso_artista, album)
      con open(album_path, 'r', encoding = 'utf8') as file: recensione = file.read() artist_review += recensione

Utilizzando un approccio linguistico superficiale possiamo indagare sulla recensione dell'artista, che contiene tutte le recensioni disponibili. Per farlo usiamo matplotlib e word cloud per produrre una word cloud che ci dirà di più sulle parole più frequenti nel testo.

 
# Importa pacchetti

importare matplotlib.pyplot as plt %matplotlib in linea # Definisci una funzione per tracciare la nuvola di parole
def trama_nuvola(nuvola di parole): # Imposta la dimensione della figura plt.figure (figsize = (30, 10)) # Visualizza immagine plt.imshow (wordcloud) # Nessun dettaglio dell'asse plt.axis("spento"); # Importa pacchetto
da nuvola di parole importare WordCloud, STOPWORD # Genera word cloud
wordcloud = WordCloud (larghezza = 3000, altezza = 2000, stato_casuale=1, colore_sfondo='bianco', collocazioni=Falso, stopword = STOPWORDS).generate(artist_review) # Complotto
plot_cloud (nuvola di parole)

Nube di parole Expert Ai Penguin Cafe

Fig.1: Una nuvola di parole in cui le parole più usate appaiono con un carattere più grande e quelle meno usate con un carattere più piccolo.

Come ti fa sentire la loro musica?

Grazie alla nuvola di parole, sappiamo di più su The Penguin Café Orchestra. Sappiamo che usano strumenti come l'ukulele, il pianoforte e il violino e che mescolano generi come folk, etnico e classico.

Tuttavia, non abbiamo idea dello stile dell'artista. Possiamo saperne di più osservando quali emozioni emergono dal loro lavoro.

Per fare ciò, utilizzeremo l'API NL di expert.ai. Per favore registra qui, trova la documentazione sull'SDK qui e sulle caratteristiche qui.

### Installa l'SDK Python

!pip installa expertai-nlapi ## Codice per inizializzare il client e quindi utilizzare la tassonomia dei tratti emotivi importare os da expertai.nlapi.cloud.client importare ExpertAiClient client = ExpertAiClient() os.environ["EAI_USERNAME"] = 'tuo_nome utente' os.environ["EAI_PASSWORD"] = 'tua_password' emozioni =[] pesi = [] output = client.classification(body={"documento" : {"text": artist_review}}, params={'taxonomy': 'emotional-traits', 'language': 'en'}) per categoria in output.categories: emozione = categoria.etichetta peso = categoria.frequenza emozioni.append(emozione) pesi.append(peso) print(emozioni) print(pesi)


['Felicità', 'Eccitazione', 'Gioia', 'Divertimento', 'Amore']
[15.86, 31.73, 15.86, 31.73, 4.76]

Per il recupero dei pesi abbiamo usato la “frequenza” che in realtà è una percentuale. La somma di tutte le frequenze è 100. Questo rende le frequenze delle emozioni un buon candidato per un grafico a torta, che viene tracciato usando matplotlib.

# Importa librerie

da matplotlib importare pilota as per favore
importare numpy as np # Creazione trama
colori = ['#0081a7','#2a9d8f','#e9c46a','#f4a261', '#e76f51'] fig = plt.figure(figsize =(10, 7)) plt.pie(pesi, etichette = emozioni, colori=colori, autopct='%1.1f%%') # mostra trama
plt.show ()

Grafico a torta Ai esperto
Fig.2: Un grafico a torta che rappresenta ogni emozione e la sua percentuale.

Qual è il loro miglior album?

Se volessi iniziare ad ascoltarli, per vedere se provi le stesse emozioni che gli Scaruffis hanno trovato nel loro lavoro, da dove potresti iniziare? Possiamo dare un'occhiata all'analisi del sentimento per ogni album e avere un'idea dei loro migliori. Per fare ciò, iteriamo sulla recensione di ogni album e utilizziamo l'API NL di expert.ai per recuperare il loro sentimento e la sua forza.

## Codice per l'iterazione su ogni album e il recupero del sentimento

sentiment_ratings = [] albums_names = [album[:-4] per album in album] per album in albums: percorso_album = os.path.join(percorso_artista, album) con open(album_path, 'r', encoding = 'utf8') as file: review = file.read() output = client.specific_resource_analysis( body={"document": {"text": review}}, params={'language': 'en', 'resource': 'sentiment' } ) sentimento = output.sentiment.overall sentiment_ratings.append(sentiment) print(albums_names) print(sentiment_ratings)

["Trasmissione da casa", "Programma di concerti", "Musica dal caffè dei pinguini", "Segni di vita"]
[11.6, 2.7, 10.89, 3.9]

 

Ora possiamo visualizzare il sentiment per ogni recensione utilizzando un grafico a barre. Questo ci darà un rapido feedback visivo sul miglior album dei The Penguin Cafe Orchestra e sulla loro carriera. Per farlo usiamo ancora una volta matplotlib.

importare matplotlib.pyplot as plt plt.style.use('ggplot') albums_names = [nome[:-4] per Nome in albums] plt.bar(albums_names, sentiment_ratings, color='#70A0AF') plt.ylabel("Album rating") plt.title("Valutazioni dell'album dei Penguin Cafe Orchestra") plt.xticks(albums_names, rotation=70) plt .mostrare()

Grafico a barre delle valutazioni dell'IA esperto

Originariamente pubblicato qui.

Fonte: https://www.kdnuggets.com/2021/08/expert-nlp-insights-music.html

Timestamp:

Di più da KDnuggets