[Python][自然語言]NLTK 實現電影評論情感分析

更新於 發佈於 閱讀時間約 5 分鐘

情感分析是一種自然語言處理技術,用於自動識別和分析文本中情感傾向,通常是正向負向中性

我們可以使用 NLTK 來實現一個基於單純貝斯分類器的情感分析模型。

以下是一個簡單的情感分析示例:

步驟一:準備訓練和測試數據

首先,我們需要一些帶有情感標籤的文本數據集來訓練我們的分類器。

這裡我們使用 NLTK 內置的電影評論數據集 movie_reviews,它包含了正面和負面的電影評論。

import nltk
from nltk.corpus import movie_reviews

# 準備訓練資料集
documents = [(list(movie_reviews.words(fileid)), category)
for category in movie_reviews.categories()
for fileid in movie_reviews.fileids(category)]

# 打亂資料順序以增加模型的泛化能力
import random
random.shuffle(documents)

# 準備特徵集
all_words = nltk.FreqDist(w.lower() for w in movie_reviews.words())
word_features = list(all_words.keys())[:2000] # 選取最常見的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[100:], featuresets[:100] # 分割訓練集和測試集

步驟二:訓練情感分析模型

接下來,我們使用單純貝氏分類器(Naive Bayes classifier)來訓練情感分析模型。

from nltk.classify import NaiveBayesClassifier

# 訓練分類器
classifier = NaiveBayesClassifier.train(train_set)

# 查看模型在測試集上的準確率
print('Accuracy:', nltk.classify.accuracy(classifier, test_set))

輸出

Accuracy: 0.78

步驟三:使用模型進行情感分析

最後,我們可以使用訓練好的模型來對新的文本進行情感分析。

def sentiment_analysis(text):
tokens = nltk.word_tokenize(text)
features = document_features(tokens)
return classifier.classify(features)

# 測試情感分析模型
review1 = "This movie is great and fantastic!"
review2 = "I disliked this film. It was boring."

print("Review 1:", sentiment_analysis(review1))
print("Review 2:", sentiment_analysis(review2))

輸出

Review 1: neg 
Review 2: neg

儲存模型

我們將使用 NLTK 提供的 pickle 模組來匯出訓練好的分類器模型。

import pickle

# 指定要保存模型的文件名
model_file = 'sentiment_classifier.pkl'

# 匯出模型
with open(model_file, 'wb') as f:
pickle.dump(classifier, f)

載入模型使用

import pickle

# 加載模型
with open(model_file, 'rb') as f:
loaded_classifier = pickle.load(f)

# 使用加載的模型進行情感分析
def sentiment_analysis(text):
tokens = nltk.word_tokenize(text)
features = document_features(tokens)
return loaded_classifier.classify(features)

# 測試加載的情感分析模型
review1 = "This movie is great and fantastic!"
review2 = "I disliked this film. It was boring."

print("Review 1:", sentiment_analysis(review1))
print("Review 2:", sentiment_analysis(review2))







留言
avatar-img
留言分享你的想法!
avatar-img
螃蟹_crab的沙龍
148會員
255內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
螃蟹_crab的沙龍的其他內容
2024/06/29
先前上一篇是使用NLT內置的電影評論數據集 movie_reviews,來訓練出情感分析模型,此篇文章介紹可以導入自己的訓練資料集來建立情感分析模組。 [Python][自然語言]NLTK 實現電影評論情感分析 所需套件 pip install pandas pip install sci
2024/06/29
先前上一篇是使用NLT內置的電影評論數據集 movie_reviews,來訓練出情感分析模型,此篇文章介紹可以導入自己的訓練資料集來建立情感分析模組。 [Python][自然語言]NLTK 實現電影評論情感分析 所需套件 pip install pandas pip install sci
2024/06/29
本文介紹了流行的Python套件NLTK(Natural Language Toolkit)的主要特點、功能和在中文和英文語料上的應用。從安裝到實際應用,深入介紹了分詞、停用詞去除、詞性標註、命名實體識別等NLP任務的具體實現和步驟,幫助讀者理解和應用NLTK。
Thumbnail
2024/06/29
本文介紹了流行的Python套件NLTK(Natural Language Toolkit)的主要特點、功能和在中文和英文語料上的應用。從安裝到實際應用,深入介紹了分詞、停用詞去除、詞性標註、命名實體識別等NLP任務的具體實現和步驟,幫助讀者理解和應用NLTK。
Thumbnail
2024/06/22
本文利用pyqt5,使用pyttsx3將QLineEdit(單行輸入框)的字串,轉成語音呈現出來。
Thumbnail
2024/06/22
本文利用pyqt5,使用pyttsx3將QLineEdit(單行輸入框)的字串,轉成語音呈現出來。
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
本文探討了情緒對人際關係和溝通的重要性,並提出了對話時應注意的要點,以及在不同情境下應如何適當表達。作者提出了情緒導向的溝通新觀念,希望讀者可以在與他人的交流中更加注重情感的表達。
Thumbnail
本文探討了情緒對人際關係和溝通的重要性,並提出了對話時應注意的要點,以及在不同情境下應如何適當表達。作者提出了情緒導向的溝通新觀念,希望讀者可以在與他人的交流中更加注重情感的表達。
Thumbnail
#心理摩擦力#三采#大衛尚塔爾#洛蘭諾格倫#抗拒 #改變 #人性#阻力 #習慣#比較基礎#誘餌效應 #慣性 #生存本能 #未知 #恐懼 #小倉鼠 #社畜逃脫筆記 #自我成長 #財務自由 #PODCASTS #說書 #思考 #筆記
Thumbnail
#心理摩擦力#三采#大衛尚塔爾#洛蘭諾格倫#抗拒 #改變 #人性#阻力 #習慣#比較基礎#誘餌效應 #慣性 #生存本能 #未知 #恐懼 #小倉鼠 #社畜逃脫筆記 #自我成長 #財務自由 #PODCASTS #說書 #思考 #筆記
Thumbnail
你有聽過「情緒顆粒度」這個詞嗎? 你知道,「語言能力」會影響情緒管理能力嗎?
Thumbnail
你有聽過「情緒顆粒度」這個詞嗎? 你知道,「語言能力」會影響情緒管理能力嗎?
Thumbnail
★心理學證實,滔滔不絕令人反感,話少更能贏得人心。
Thumbnail
★心理學證實,滔滔不絕令人反感,話少更能贏得人心。
Thumbnail
★科學證實,臉部會「無意識」顯露內心真正的想法!
Thumbnail
★科學證實,臉部會「無意識」顯露內心真正的想法!
Thumbnail
行為暗示是一種強大的心理學工具,它可以影響我們的思考、感覺和行為。瞭解行為暗示的工作原理,可以幫助我們更好地理解自己和他人,並使我們能夠更有效地應對生活中的挑戰。
Thumbnail
行為暗示是一種強大的心理學工具,它可以影響我們的思考、感覺和行為。瞭解行為暗示的工作原理,可以幫助我們更好地理解自己和他人,並使我們能夠更有效地應對生活中的挑戰。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News