Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiele für die Verarbeitung natürlicher Sprache in Python: Stimmungsanalyse

Beispiele für die Verarbeitung natürlicher Sprache in Python: Stimmungsanalyse

王林
王林Original
2023-06-11 08:26:121730Durchsuche

Beispiele für die Verarbeitung natürlicher Sprache in Python: Stimmungsanalyse

Mit der Entwicklung der künstlichen Intelligenz hat die Verarbeitung natürlicher Sprache (NLP) in verschiedenen Bereichen immer mehr Aufmerksamkeit erhalten. Unter diesen ist die Stimmungsanalyse eine wichtige Richtung der NLP-Anwendung. Mithilfe der Stimmungsanalyse können die emotionalen Tendenzen der Benutzer zu Produkten, Dienstleistungen oder Veranstaltungen analysiert werden. Dies hilft Unternehmen dabei, die Bedürfnisse der Verbraucher besser zu verstehen und die Formulierung von Marketingstrategien zu fördern. In diesem Artikel werden Beispiele für die Stimmungsanalyse in Python vorgestellt.

  1. Installieren Sie die erforderlichen Bibliotheken

Um eine Stimmungsanalyse in Python durchzuführen, müssen Sie die Drittanbieterbibliothek Natural Language Toolkit (NLTK) und TwitterAPI verwenden. Sie können pip verwenden, um diese beiden Bibliotheken zu installieren:

pip install nltk
pip install TwitterAPI
  1. Datenvorverarbeitung

Vor der Stimmungsanalyse muss der Text vorverarbeitet werden. Es kann Text einheitlich in Kleinbuchstaben umwandeln und irrelevante Informationen wie Satzzeichen, Zahlen, Stoppwörter usw. entfernen. Der Vorverarbeitungscode lautet wie folgt:

import re
from nltk.corpus import stopwords

def clean_text(text):
    text = text.lower() # 将文本转换成小写字母
    text = re.sub(r'[^ws]', '', text) # 去除标点符号
    text = re.sub(r'd+', '', text) # 去除数字
    stop_words = set(stopwords.words('english'))
    words = text.split()
    words = [w for w in words if w not in stop_words] # 去除停用词
    text = ' '.join(words)
    return text
  1. Stimmungsanalysemodell

Als nächstes müssen Sie ein Stimmungsanalysemodell erstellen. Da es sich bei der Stimmungsanalyse um überwachtes Lernen handelt (d. h. sie erfordert gekennzeichnete Daten), erfordert die Erstellung eines Modells gekennzeichnete Trainingsdaten. Hier wird der Filmrezensionsdatensatz von NLTK verwendet, der 1000 Rezensionen mit positiven oder negativen sentimentalen Tendenzen enthält. Diese Kommentare wurden markiert.

import nltk
from nltk.corpus import movie_reviews
import random

documents = [(list(movie_reviews.words(fileid)), category)
             for category in movie_reviews.categories()
             for fileid in movie_reviews.fileids(category)]

random.shuffle(documents)

Nachdem Sie die Trainingsdaten erhalten haben, können Sie einen Naive Bayes-Klassifikator erstellen, indem Sie den NaiveBayesClassifier in nltk verwenden. Der Code lautet wie folgt:

all_words = nltk.FreqDist(w.lower() for w in movie_reviews.words())
word_features = list(all_words.keys())[:2000]

def document_features(document):
    document_words = set(document)
    features = {}
    for word in word_features:
        features['contains({})'.format(word)] = (word in document_words)
    return features

featuresets = [(document_features(d), c) for (d,c) in documents]
train_set, test_set = featuresets[200:], featuresets[:200]
classifier = nltk.NaiveBayesClassifier.train(train_set)

Dieser Klassifikator basiert auf dem Naive Bayes-Algorithmus und verwendet die Eigenschaften der Trainingsdaten zur Klassifizierung. In diesem Beispiel wird die Funktion „enthält (Wort)“ verwendet, die Wortformen charakterisiert. Diese Funktion prüft, ob das Dokument das Wort enthält.

  1. Sentiment-Analyse-Anwendung

Nach Abschluss der Erstellung des Modells können Sie es zur Durchführung einer Sentiment-Analyse verwenden. In diesem Beispiel wird die Twitter-API verwendet, um Tweets von Twitter abzurufen, und anschließend wird eine Stimmungsanalyse der Tweets durchgeführt.

from TwitterAPI import TwitterAPI
import json

consumer_key = 'your consumer key'
consumer_secret = 'your consumer secret'
access_token_key = 'your access token key'
access_token_secret = 'your access token secret'

api = TwitterAPI(consumer_key,
                 consumer_secret,
                 access_token_key,
                 access_token_secret)

def analyze_tweet(tweet):
    tweet_text = tweet['text']
    tweet_clean = clean_text(tweet_text)
    tweet_features = document_features(tweet_clean.split())
    sentiment = classifier.classify(tweet_features)
    return sentiment

keywords = 'Trump'

for tweet in api.request('search/tweets', {'q': keywords, 'lang': 'en', 'count': 10}):
    sentiment = analyze_tweet(tweet)
    print(tweet['text'])
    print(sentiment)
    print('
')

Dieses Code-Snippet verwendet TwitterAPI, um die neuesten 10 Tweets abzurufen, die das Schlüsselwort „Trump“ enthalten. Anschließend wird für jeden Tweet eine Sentiment-Analyse durchgeführt und die Sentiment-Tendenz ausgegeben.

Zusätzlich zu Twitter können Sie dieses Modell auch verwenden, um eine Stimmungsanalyse für andere Textdaten durchzuführen.

Fazit

In diesem Artikel werden Beispiele für Stimmungsanalysen in Python vorgestellt. In diesem Beispiel wird der trainierte Naive Bayes-Klassifikator zur Klassifizierung von Text verwendet, der zur Bestimmung der emotionalen Tendenz des Textes verwendet werden kann. Die Stimmungsanalyse kann in Bereichen wie Marketing und Social-Media-Überwachung weit verbreitet eingesetzt werden.

Das obige ist der detaillierte Inhalt vonBeispiele für die Verarbeitung natürlicher Sprache in Python: Stimmungsanalyse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn