ホームページ  >  記事  >  バックエンド開発  >  Python での自然言語処理の例: 感情分析

Python での自然言語処理の例: 感情分析

王林
王林オリジナル
2023-06-11 08:26:121794ブラウズ

Python による自然言語処理の例: 感情分析

人工知能の発展に伴い、自然言語処理 (NLP) はさまざまな分野でますます注目を集めています。中でも感情分析は NLP 応用の重要な方向性です。センチメント分析を使用すると、製品、サービス、イベントに対するユーザーの感情的傾向を分析でき、企業が消費者のニーズをより深く理解し、マーケティング戦略の策定を促進するのに役立ちます。この記事ではPythonで感情分析を行った例を紹介します。

  1. 必要なライブラリをインストールする

Python で感情分析を実行するには、サードパーティ ライブラリの Natural Language Toolkit (NLTK) と TwitterAPI を使用する必要があります。 pip を使用して、次の 2 つのライブラリをインストールできます。

pip install nltk
pip install TwitterAPI
  1. データの前処理

センチメント分析を実行する前に、テキストを前処理する必要があります。テキストを一律に小文字に変換し、句読点、数字、ストップワードなどの無関係な情報を削除できます。前処理コードは次のとおりです。

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. 感情分析モデル

次に、感情分析モデルを構築する必要があります。感情分析は教師あり学習であるため (つまり、ラベル付きデータが必要です)、モデルの構築にはラベル付きトレーニング データが必要です。ここでは、NLTK の映画レビュー データセットが使用されています。このデータセットには、肯定的または否定的な感情的傾向を持つ 1000 件のレビューが含まれています。これらのコメントにはフラグが付けられています。

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)

トレーニング データを取得した後、nltk の NaiveBayesClassifier を使用して単純ベイズ分類器を構築できます。コードは次のとおりです。

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)

この分類器はナイーブ ベイズ アルゴリズムに基づいており、分類にトレーニング データの特性を使用します。この例では、語形を特徴付ける「contains (word)」関数が使用されています。この関数は、文書に単語が含まれているかどうかをチェックします。

  1. 感情分析アプリケーション

モデルの確立が完了したら、それを使用して感情分析を実行できます。この例では、Twitter API を使用して Twitter からツイートを取得し、そのツイートに対してセンチメント分析を実行します。

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

このコード スニペットは TwitterAPI を使用して、キーワード「トランプ」を含む最新の 10 件のツイートを取得します。そして、各ツイートに対して感情分析を行い、感情傾向を出力します。

Twitter に加えて、このモデルは他のテキスト データの感情分析にも使用できます。

結論

この記事では、Python での感情分析の例を紹介します。この例では、トレーニングされたナイーブ ベイズ分類器を使用してテキストを分類し、テキストの感情的傾向を判断するために使用できます。感情分析は、マーケティングやソーシャル メディアの監視などの分野で広く使用できます。

以上がPython での自然言語処理の例: 感情分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。