[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
螃蟹_crab的沙龍
169會員
322內容數
本業是影像辨識軟體開發,閒暇時間進修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
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
★科學證實,臉部會「無意識」顯露內心真正的想法!
Thumbnail
★科學證實,臉部會「無意識」顯露內心真正的想法!
Thumbnail
你有聽過「情緒顆粒度」這個詞嗎? 你知道,「語言能力」會影響情緒管理能力嗎?
Thumbnail
你有聽過「情緒顆粒度」這個詞嗎? 你知道,「語言能力」會影響情緒管理能力嗎?
Thumbnail
行為暗示是一種強大的心理學工具,它可以影響我們的思考、感覺和行為。瞭解行為暗示的工作原理,可以幫助我們更好地理解自己和他人,並使我們能夠更有效地應對生活中的挑戰。
Thumbnail
行為暗示是一種強大的心理學工具,它可以影響我們的思考、感覺和行為。瞭解行為暗示的工作原理,可以幫助我們更好地理解自己和他人,並使我們能夠更有效地應對生活中的挑戰。
Thumbnail
★心理學證實,滔滔不絕令人反感,話少更能贏得人心。
Thumbnail
★心理學證實,滔滔不絕令人反感,話少更能贏得人心。
Thumbnail
#心理摩擦力#三采#大衛尚塔爾#洛蘭諾格倫#抗拒 #改變 #人性#阻力 #習慣#比較基礎#誘餌效應 #慣性 #生存本能 #未知 #恐懼 #小倉鼠 #社畜逃脫筆記 #自我成長 #財務自由 #PODCASTS #說書 #思考 #筆記
Thumbnail
#心理摩擦力#三采#大衛尚塔爾#洛蘭諾格倫#抗拒 #改變 #人性#阻力 #習慣#比較基礎#誘餌效應 #慣性 #生存本能 #未知 #恐懼 #小倉鼠 #社畜逃脫筆記 #自我成長 #財務自由 #PODCASTS #說書 #思考 #筆記
Thumbnail
從小我就是個情緒感受力很卓越的人,很容易感知到別人的情緒,有時候還很容易讀到別人的念頭,並將別人的情緒不論好壞一概接收。而具有這樣特質的人,人生中有一個很重要的課題,就是學會分別自己與他人的情緒以及學會為自己與他人之間設下健康的界線。
Thumbnail
從小我就是個情緒感受力很卓越的人,很容易感知到別人的情緒,有時候還很容易讀到別人的念頭,並將別人的情緒不論好壞一概接收。而具有這樣特質的人,人生中有一個很重要的課題,就是學會分別自己與他人的情緒以及學會為自己與他人之間設下健康的界線。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
本文探討了情緒對人際關係和溝通的重要性,並提出了對話時應注意的要點,以及在不同情境下應如何適當表達。作者提出了情緒導向的溝通新觀念,希望讀者可以在與他人的交流中更加注重情感的表達。
Thumbnail
本文探討了情緒對人際關係和溝通的重要性,並提出了對話時應注意的要點,以及在不同情境下應如何適當表達。作者提出了情緒導向的溝通新觀念,希望讀者可以在與他人的交流中更加注重情感的表達。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News