IMDb-Filmkritik-Stimmungsanalyse mit Julia | von Sharmasaravanan | Juni 2023

0
21


Die Stimmungsanalyse ist eine beliebte Technik der Verarbeitung natürlicher Sprache (NLP), mit der die in einem bestimmten Textual content zum Ausdruck gebrachte Stimmung oder Meinung ermittelt wird. In diesem Blogbeitrag werden wir untersuchen, wie man mit der Programmiersprache Julia und dem Filmrezensionsdatensatz IMDb eine Stimmungsanalyse für Filmrezensionen durchführt.

Bevor wir uns mit dem Code befassen, stellen Sie sicher, dass Julia auf Ihrem System installiert ist. Sie können Julia von der offiziellen Web site herunterladen https://julialang.org/downloads/ und befolgen Sie die für Ihr Betriebssystem spezifischen Installationsanweisungen.

Um zu beginnen, müssen wir einige Pakete installieren, die für unsere Stimmungsanalyseaufgabe erforderlich sind. Öffnen Sie Julias interaktiven Modus oder starten Sie ein Julia-Skript in Ihrem bevorzugten Editor und geben Sie die folgenden Befehle ein:

utilizing Pkg
Pkg.add("TextAnalysis")
Pkg.add("MLJ")
Pkg.add("DataFrames")
Pkg.add("CSV")
Pkg.add("Random")
Pkg.add("StatsBase")

Diese Befehle installieren die erforderlichen Pakete, einschließlich TextAnalysis zur Textvorverarbeitung, MLJ für Modelle des maschinellen Lernens, DataFrames Und CSV zur Datenmanipulation und Random Und StatsBase für Randomisierung und statistische Funktionen.

Der IMDb-Filmrezensionsdatensatz enthält eine Sammlung von Filmrezensionen, die als positiv oder negativ gekennzeichnet sind. Wir werden diesen Datensatz verwenden, um unser Stimmungsanalysemodell zu trainieren. Laden Sie den Datensatz über den folgenden Hyperlink herunter: https://ai.stanford.edu/~amaas/data/sentiment/.

Nachdem Sie den Datensatz heruntergeladen haben, extrahieren Sie ihn in ein Verzeichnis Ihrer Wahl. Der extrahierte Ordner sollte zwei Unterordner enthalten: practice Und take a look atjeweils mit positiven und negativen Filmkritiken.

Um den Datensatz in Julia zu laden, können wir verwenden CSV Paket. Angenommen, Sie haben den Datensatz in einen Ordner namens „imdb“ extrahiert, verwenden Sie den folgenden Codeausschnitt:

utilizing CSV
utilizing DataFrames

train_positive = CSV.File("imdb/practice/pos/").Knowledge
train_negative = CSV.File("imdb/practice/neg/").Knowledge
test_positive = CSV.File("imdb/take a look at/pos/").Knowledge
test_negative = CSV.File("imdb/take a look at/neg/").Knowledge

train_data = vcat(train_positive, train_negative)
test_data = vcat(test_positive, test_negative)

train_labels = vcat(ones(size(train_positive)), zeros(size(train_negative)))
test_labels = vcat(ones(size(test_positive)), zeros(size(test_negative)))

Im obigen Codeausschnitt laden wir die positiven und negativen Bewertungen aus den Trainings- und Testsätzen separat. Wir kombinieren sie dann zu train_data Und test_data bzw. Die Bewertungen werden mit 1 für positiv und 0 für negativ bewertet. train_labels Und test_labels Hinterlegen Sie die entsprechenden Beschriftungen für die Trainings- und Testsets.

Bevor wir unser Stimmungsanalysemodell trainieren können, müssen wir die Textdaten vorverarbeiten. Dabei wird der Rohtext in eine numerische Darstellung umgewandelt, die von maschinellen Lernalgorithmen verstanden werden kann. Wir werden das verwenden TextAnalysis Paket zur Textvorverarbeitung.

utilizing TextAnalysis

preprocess_text(textual content) = lowercase(strip(textual content))

train_data = [preprocess_text(review) for review in train_data]
test_data = [preprocess_text(review) for review in test_data]

Im obigen Codeausschnitt definieren wir a preprocess_text Funktion, die den Textual content in Kleinbuchstaben umwandelt und führende/nachgestellte Leerzeichen entfernt. Anschließend wenden wir diese Funktion auf jede Überprüfung in den Trainings- und Testdatensätzen an.

Um die Textdaten numerisch darzustellen, können wir das Bag-of-Phrases-Modell verwenden. Dieses Modell stellt jede Rezension als Vektor dar, wobei jedes Factor der Anzahl eines bestimmten Wortes in der Rezension entspricht. Wir werden das verwenden TextAnalysis Paket, um eine wortreiche Darstellung der Bewertungen zu erstellen.

bag_of_words_model = FreqVec(texttoken(StringDocument(train_data)))
train_features = textfeaturizer(bag_of_words_model, train_data)
test_features = textfeaturizer(bag_of_words_model, test_data)

Im obigen Codeausschnitt definieren wir a bag_of_words_model Verwendung der FreqVec Und texttoken Funktionen. Wir verwenden dann textfeaturizer um die Trainings- und Testdaten in die Bag-of-Phrases-Darstellung umzuwandeln.

Nachdem wir nun die Textdaten vorverarbeitet und Merkmale extrahiert haben, können wir mit der Erstellung unseres Stimmungsanalysemodells fortfahren. Wir werden ein einfaches logistisches Regressionsmodell aus dem verwenden MLJ Paket.

utilizing MLJ

mannequin = @load LogisticRegressor pkg="MLJLinearModels"

sentiment_classifier = machine(mannequin, train_features, train_labels)
match!(sentiment_classifier)

Im obigen Codeausschnitt laden wir die LogisticRegressor Modell mit der @load Makro aus dem MLJ Paket. Wir erstellen dann eine machine mit dem Modell, den Trainingsfunktionen und den Beschriftungen. Abschließend trainieren wir das Modell mit match! Funktion.

Um die Leistung unseres Stimmungsanalysemodells zu bewerten, können wir verschiedene Bewertungsmetriken wie Genauigkeit, Präzision, Rückruf und F1-Rating verwenden. Wir werden das verwenden MLJ Paket zur Berechnung dieser Metriken.

utilizing Statistics

predictions = predict(sentiment_classifier, test_features)
accuracy = sum(predictions .== test_labels) / size(test_labels)
precision = precision(predictions, test_labels, positive_label=1)
recall = recall(predictions, test_labels, positive_label=1)
f1score = f1score(predictions, test_labels, positive_label=1)

println("Accuracy: ", accuracy)
println("Precision: ", precision)
println("Recall: ", recall)
println("F1-Rating: ", f1score)

Im obigen Codeausschnitt verwenden wir die predict Funktion, um Vorhersagen zu den Testmerkmalen zu treffen. Anschließend berechnen wir die Genauigkeit, Präzision, den Rückruf und den F1-Rating mithilfe der von bereitgestellten Funktionen Statistics Paket.

In diesem Blogbeitrag haben wir untersucht, wie man mithilfe der Programmiersprache Julia eine Stimmungsanalyse für IMDb-Filmrezensionen durchführt. Wir haben gelernt, wie man den Datensatz lädt, den Textual content vorverarbeitet, Options extrahiert, ein Stimmungsanalysemodell erstellt und seine Leistung bewertet. Wenn Sie die bereitgestellten Codeausschnitte und Erklärungen befolgen, sollten Sie nun ein gutes Verständnis dafür haben, wie Sie die Stimmungsanalyse in Julia implementieren.

Bleib dran für mehr!

Ich freue mich immer, mit meinen Followern und Lesern auf LinkedIn in Kontakt zu treten. Wenn Sie Fragen haben oder einfach nur Hallo sagen möchten, zögern Sie bitte nicht, uns zu kontaktieren.

https://www.linkedin.com/in/sharmasaravanan/

Viel Spaß beim Lernen!

Adios, ich gusta!! 🤗🤗



Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here