NLP-inzichten voor het Penguin Café-orkest

Bronknooppunt: 1062837

NLP-inzichten voor het Penguin Café-orkest

We geven een voorbeeld van het gebruik van Expert.ai en Python om favoriete muziekalbums te onderzoeken.


Gesponsorde post.

Door Laura Gorrieri, expert.ai

Zoek de notebookversie van deze thread hier.

Laten we een kleine applicatie bouwen om een ​​van mijn favoriete artiesten te onderzoeken. Ze worden genoemd "Het Penguin Café-orkest” en als je ze niet kent, ga je ontdekken waar ze over gaan.

Onze dataset: een lijst met de recensies van hun album die ik van de website van Piero Scaruffi heb gehaald en in een speciale map heb opgeslagen.

Ons doel: om meer te weten te komen over een artiest met behulp van albumrecensies.

Ons praktisch doel: om te zien hoe NL API van expert.ai werkt en wat het kan.

Waar gaat The Penguin Café Orchestra over?

Laten we eerst eens kijken wat er uit de beoordelingen komt door alleen de woorden te analyseren die erin worden gebruikt. We zullen eerst alle recensies samenvoegen in één variabele, zodat we een volledige artiestenrecensie hebben. Dan gaan we kijken naar de meest voorkomende woorden erin, in de hoop dat het meer zal onthullen over het Penguin Café Orchestra.

## Code voor het herhalen van de artiestenmap en het samenvoegen van de recensies van albums in één enkele artiestrecensie
importeren os artist_review = '' artist_path = 'penguin_cafe_orchestra' albums = os.listdir(artist_path) For album in albums: album_path = os.path.join(artist_path, album)
      Met open(album_path, 'r', encoding = 'utf8') as bestand: review = file.read() artist_review += review

Met behulp van een oppervlakkige taalkundige benadering kunnen we de kunstenaarsrecensie onderzoeken, die alle beschikbare recensies bevat. Hiervoor gebruiken we matplotlib en word cloud om een ​​woordwolk te maken die ons meer vertelt over de meest voorkomende woorden in de tekst.

 
# Pakketten importeren

importeren matplotlib.pyplot as plt %matplotlib inline # Definieer een functie om woordwolk te plotten
def plot_wolk(woordwolk): # Stel figuurgrootte in plt.figure (figsize = (30, 10)) # Beeld weergeven plt.imshow(wordcloud) # Geen asdetails plt.axis("uit"); # Pakket importeren
oppompen van woordwolk importeren WordCloud, STOPWOORDEN # Genereer woordwolk
wordcloud = WordCloud(breedte = 3000, hoogte = 2000, random_state=1, background_color='wit', collocaties=Niet waar, stopwoorden = STOPWORDS).generate(artist_review) # Verhaal
plot_cloud(wordcloud)

Deskundige Ai Penguin Cafe Word Cloud

Fig.1: Een woordwolk waarin de meest gebruikte woorden in een groter lettertype verschijnen en de minder gebruikte in een kleiner lettertype.

Welk gevoel geeft hun muziek je?

Dankzij de woordwolk weten we meer over The Penguin Café Orchestra. We weten dat ze instrumenten gebruiken zoals de ukelele, piano en viool, en dat ze genres als folk, etnisch en klassiek mixen.

Toch hebben we geen idee van de stijl van de kunstenaar. We kunnen meer weten door te kijken welke emoties uit hun werk komen.

Hiervoor gaan we de NL API van expert.ai gebruiken. Registreer alsjeblieft hier, zoek de documentatie op de SDK hier en over de functies hier.

### Installeer de python SDK

!pip installeer expertai-nlapi ## Code voor het initialiseren van de client en gebruik vervolgens de taxonomie van emotionele eigenschappen importeren os oppompen van expertai.nlapi.cloud.client importeren ExpertAiClient client = ExpertAiClient() os.environ["EAI_USERNAME"] = 'your_username' os.environ["EAI_PASSWORD"] = 'your_password' emoties =[] weights = [] output = client.classification(body={"document" : {"text": artist_review}}, params={'taxonomie': 'emotionele eigenschappen', 'taal': 'en'}) For categorie in output.categorie: emotie = categorie.label weight = categorie.frequentie emoties.append(emotie) weights.append(weight) print(emotions) print(weights)


['Geluk', 'Opwinding', 'Vreugde', 'Amusement', 'Liefde']
[15.86, 31.73, 15.86, 31.73, 4.76]

Voor het ophalen van gewichten hebben we "frequentie" gebruikt, wat eigenlijk een percentage is. De som van alle frequenties is 100. Dit maakt de frequenties van de emoties een goede kandidaat voor een taartdiagram, dat wordt uitgezet met matplotlib.

# Bibliotheken importeren

oppompen van matplotlib importeren pyplot as plt
importeren numpy as np # Plot maken
kleuren = ['#0081a7','#2a9d8f','#e9c46a','#f4a261', '#e76f51'] fig = plt.figure(figsize =(10, 7)) plt.pie(gewichten, labels = emoties, kleuren=kleuren, autopct='%1.1f%%') # toon plot
plt.show ()

Expert Ai-cirkeldiagram
Fig.2: Een cirkeldiagram dat elke emotie en zijn percentage weergeeft.

Wat is hun beste album?

Als je naar hen zou willen luisteren, om te zien of je dezelfde emoties voelt die Scaruffis in hun werk aantrof, waar zou je dan kunnen beginnen? We kunnen de sentimentanalyse voor elk album bekijken en een idee krijgen van hun beste. Om dit te doen, herhalen we de recensie van elk album en gebruiken we expert.ai NL API om hun sentiment en de kracht ervan te achterhalen.

## Code voor het herhalen van elk album en het ophalen van het sentiment

sentiment_ratings = [] albums_names = [album[:-4] For album in albums] For album in albums: album_pad = os.path.join(artiest_pad, album) Met 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' } ) sentiment = output.sentiment.overall sentiment_ratings.append(sentiment) print(albums_names) print(sentiment_ratings)

['Uitzending vanuit huis', 'Concertprogramma', 'Muziek uit het Penguin Café', 'Tekens van leven']
[11.6, 2.7, 10.89, 3.9]

 

Nu kunnen we het sentiment voor elke recensie visualiseren met behulp van een staafdiagram. Dit geeft ons snelle visuele feedback over het beste album van The Penguin Cafe Orchestra en over hun carrière. Om dit te doen gebruiken we opnieuw matplotlib.

importeren matplotlib.pyplot as plt plt.style.use('ggplot') albums_names = [naam[:-4] For naam in albums] plt.bar(albums_names, sentiment_ratings, color='#70A0AF') plt.ylabel("Album rating") plt.title("Ratings of Penguin Cafe Orchestra's album") plt.xticks(albums_names, rotation=70) plt .laten zien()

Staafdiagram Expert Ai-classificaties

Oorspronkelijk gepost hier.

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

Tijdstempel:

Meer van KDnuggets