Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Motivationsanalyse | Durchführung einer Explorativen Datenanalyse der Nobelpreise
Durchführung einer Explorativen Datenanalyse der Nobelpreise

book
Motivationsanalyse

In diesem Abschnitt konzentrieren wir uns darauf, den Text zu untersuchen, um die am häufigsten vorkommenden Wörter in unserem Datensatz zu identifizieren. Zunächst werden wir alle Stoppwörter aus der "motivation"-Spalte entfernen und unsere Daten entsprechend anpassen.

Nehmen Sie zum Beispiel den Satz: "I like reading, so I read." Er wird zu: "Like Reading Read." Nach dieser Transformation werden wir diese Wörter in einer Wortwolke visualisieren, wobei die Größe jedes Wortes dessen Häufigkeit in unserem Datensatz widerspiegelt.

Aufgabe

Swipe to start coding

  1. Wende eine Lambda-Funktion an, um Stoppwörter aus der 'motivation'-Spalte zu entfernen und den verarbeiteten Text in der 'Filtered motivation'-Spalte zu speichern.

  2. Füge alle Einträge in der "Filtered motivation"-Spalte zu einem einzigen Textstring zusammen.

  3. Teile den zusammengefügten Text in einzelne Wörter auf und erstelle ein pandas DataFrame aus der Liste der Wörter.

  4. Berechne die Wortfrequenz, indem du die Vorkommen jedes Wortes zählst.

  5. Erstelle ein Balkendiagramm der 20 am häufigsten vorkommenden Wörter unter Verwendung von seaborn's barplot.

Lösung

import nltk
nltk.download("stopwords")
from nltk.corpus import stopwords
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# Initialize the 'Filtered motivation' column with empty strings
nobel["Filtered motivation"] = ""

# Apply a lambda function to remove stopwords from the 'motivation' column and store the result in 'Filtered motivation'
nobel["Filtered motivation"] = nobel["motivation"].apply(
lambda x: " ".join(word for word in x.split() if word.lower() not in stopwords.words("english"))
)

# Concatenate all entries in 'Filtered motivation' to form a single text string
text = " ".join(nobel["Filtered motivation"])

# Split the text into words and create a pandas DataFrame from the list of words
words_df = pd.DataFrame(text.split(), columns=['word'])

# Calculate word frequency
word_freq = words_df['word'].value_counts().reset_index()
word_freq.columns = ['word', 'freq']

# Plotting the 20 most common words using seaborn's barplot
plt.figure(figsize=(10, 8))
sns.barplot(x='freq', y='word', data=word_freq.head(20), palette='viridis')
plt.title('Top 20 Most Common Words')
plt.xlabel('Frequency')
plt.ylabel('Word')
plt.show()

Mark tasks as Completed
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 5
AVAILABLE TO ULTIMATE ONLY
some-alt