Maison  >  Article  >  développement back-end  >  Exemples de traitement du langage naturel en Python : analyse des sentiments

Exemples de traitement du langage naturel en Python : analyse des sentiments

王林
王林original
2023-06-11 08:26:121730parcourir

Exemples de traitement du langage naturel en Python : analyse des sentiments

Avec le développement de l'intelligence artificielle, le traitement du langage naturel (NLP) a attiré de plus en plus d'attention dans divers domaines. Parmi eux, l’analyse des sentiments est une direction importante de l’application de la PNL. L'analyse des sentiments peut être utilisée pour analyser les tendances émotionnelles des utilisateurs à l'égard de produits, de services ou d'événements, aidant ainsi les entreprises à mieux comprendre les besoins des consommateurs et à promouvoir la formulation de stratégies marketing. Cet article présentera des exemples d'analyse des sentiments en Python.

  1. Installez les bibliothèques nécessaires

Pour effectuer une analyse des sentiments en Python, vous devez utiliser la bibliothèque tierce Natural Language Toolkit (NLTK) et TwitterAPI. Vous pouvez utiliser pip pour installer ces deux bibliothèques :

pip install nltk
pip install TwitterAPI
  1. Prétraitement des données

Avant d'effectuer une analyse des sentiments, le texte doit être prétraité. Il peut convertir uniformément le texte en lettres minuscules et supprimer les informations non pertinentes telles que les signes de ponctuation, les chiffres, les mots vides, etc. Le code de prétraitement est le suivant :

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. Modèle d'analyse des sentiments

Ensuite, vous devez créer un modèle d'analyse des sentiments. Étant donné que l'analyse des sentiments est un apprentissage supervisé (c'est-à-dire qu'elle nécessite des données étiquetées), la construction d'un modèle nécessite des données de formation étiquetées. Un ensemble de données de critiques de films de NLTK est utilisé ici, qui contient 1 000 critiques avec des tendances sentimentales positives ou négatives. Ces commentaires ont été signalés.

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)

Après avoir obtenu les données d'entraînement, vous pouvez créer un classificateur Naive Bayes en utilisant le NaiveBayesClassifier dans nltk. Le code est le suivant :

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)

Ce classificateur est basé sur l'algorithme Naive Bayes et utilise les caractéristiques des données d'entraînement pour classer. Dans cet exemple, la fonction « contient (mot) » qui caractérise les formes de mots est utilisée. Cette fonction vérifie si le document contient le mot.

  1. Application d'analyse des sentiments

Après avoir terminé l'établissement du modèle, vous pouvez l'utiliser pour effectuer une analyse des sentiments. Dans cet exemple, l'API Twitter est utilisée pour obtenir des tweets de Twitter, puis une analyse des sentiments est effectuée sur les tweets.

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('
')

Cet extrait de code utilise TwitterAPI pour obtenir les 10 derniers tweets contenant le mot-clé « Trump ». Ensuite, une analyse des sentiments est effectuée sur chaque tweet et la tendance des sentiments est affichée.

En plus de Twitter, vous pouvez également utiliser ce modèle pour effectuer une analyse des sentiments sur d'autres données textuelles.

Conclusion

Cet article présente des exemples d'analyse des sentiments en Python. Cet exemple utilise un classificateur Naive Bayes formé pour classer le texte, qui peut être utilisé pour déterminer la tendance émotionnelle du texte. L'analyse des sentiments peut être largement utilisée dans des domaines tels que le marketing et la surveillance des médias sociaux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn