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.
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
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
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.
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!