Rumah >pembangunan bahagian belakang >Tutorial Python >Contoh Pemprosesan Bahasa Semulajadi dalam Python: Analisis Sentimen

Contoh Pemprosesan Bahasa Semulajadi dalam Python: Analisis Sentimen

王林
王林asal
2023-06-11 08:26:121803semak imbas

Contoh Pemprosesan Bahasa Asli dalam Python: Analisis Sentimen

Dengan perkembangan kecerdasan buatan, pemprosesan bahasa semula jadi (NLP) telah menarik lebih banyak perhatian dalam pelbagai bidang. Antaranya, analisis sentimen merupakan hala tuju penting aplikasi NLP. Analisis sentimen boleh digunakan untuk menganalisis kecenderungan emosi pengguna terhadap produk, perkhidmatan atau acara, membantu syarikat memahami dengan lebih baik keperluan pengguna dan mempromosikan penggubalan strategi pemasaran. Artikel ini akan memperkenalkan contoh analisis sentimen dalam Python.

  1. Pasang perpustakaan yang diperlukan

Untuk melakukan analisis sentimen dalam Python, anda perlu menggunakan pustaka pihak ketiga Natural Language Toolkit (NLTK) dan TwitterAPI. Anda boleh menggunakan pip untuk memasang dua perpustakaan ini:

pip install nltk
pip install TwitterAPI
  1. Prapemprosesan Data

Sebelum melaksanakan analisis sentimen, teks perlu dipraproses. Ia boleh menukar teks secara seragam kepada huruf kecil dan mengalih keluar maklumat yang tidak berkaitan seperti tanda baca, nombor, perkataan henti, dsb. Kod prapemprosesan adalah seperti berikut:

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. Model Analisis Sentimen

Seterusnya, anda perlu membina model analisis sentimen. Memandangkan analisis sentimen ialah pembelajaran diselia (iaitu, ia memerlukan data berlabel), membina model memerlukan data latihan berlabel. Set data ulasan filem daripada NLTK digunakan di sini, yang mengandungi 1000 ulasan dengan kecenderungan sentimen positif atau negatif. Komen ini telah dibenderakan.

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)

Selepas mendapatkan data latihan, anda boleh membina pengelas Naive Bayes dengan menggunakan NaiveBayesClassifier dalam nltk. Kodnya adalah seperti berikut:

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)

Pengkelas ini berdasarkan algoritma Naive Bayes dan menggunakan ciri-ciri data latihan untuk mengelas. Dalam contoh ini, fungsi "mengandungi (perkataan)" yang mencirikan bentuk perkataan digunakan. Fungsi ini menyemak sama ada dokumen mengandungi perkataan.

  1. Aplikasi Analisis Sentimen

Selepas melengkapkan penubuhan model, anda boleh menggunakannya untuk melakukan analisis sentimen. Dalam contoh ini, API Twitter digunakan untuk mendapatkan tweet daripada Twitter, dan kemudian analisis sentimen dilakukan pada tweet tersebut.

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

Coretan kod ini menggunakan TwitterAPI untuk mendapatkan 10 tweet terkini yang mengandungi kata kunci "Trump". Kemudian, analisis sentimen dilakukan pada setiap tweet dan kecenderungan sentimen adalah output.

Selain Twitter, model ini juga boleh digunakan untuk melakukan analisis sentimen pada data teks lain.

Kesimpulan

Artikel ini memperkenalkan contoh analisis sentimen dalam Python. Contoh ini menggunakan pengelas Naive Bayes terlatih untuk mengklasifikasikan teks, yang boleh digunakan untuk menentukan kecenderungan emosi teks. Analisis sentimen boleh digunakan secara meluas dalam bidang seperti pemasaran dan pemantauan media sosial.

Atas ialah kandungan terperinci Contoh Pemprosesan Bahasa Semulajadi dalam Python: Analisis Sentimen. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn