Rumah >pembangunan bahagian belakang >Tutorial Python >Contoh Pemprosesan Bahasa Semulajadi dalam Python: Analisis Sentimen
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.
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
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
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.
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!