日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python评论情感分析nltk_基于 Python 和 NLTK 的推特情感分析

發布時間:2023/12/20 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python评论情感分析nltk_基于 Python 和 NLTK 的推特情感分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于 Python 和 NLTK 的推特情感分析

作者:宋彤彤

1. 導讀

NLTK 是 Python 的一個自然語言處理模塊,其中實現了樸素貝葉斯分類算法。這次 Mo 來教大家如何通過 python 和 nltk 模塊實現對推文按照正面情緒(positive)和負面情緒(negative)進行歸類。

在項目內部有可運行的代碼教程 naive_code.ipynb 和 經過整理方便進行部署的部署文件 Deploy.ipynb,大家可以結合之前發布的Mo平臺部署介紹一文學習如何部署屬于自己的應用。大家也可以打開下方項目地址,對部署好的應用進行一下測試,比如簡單輸入 ‘My house is great.’ 和 ‘My house is not great.’ 來判斷它們分別是 positve 還是 negative。

2. 準備工作

2.1 導入工具包

首先,導入我們用到的工具包 nltk。

import nltk

# 如果沒有這個包,可以根據下面的代碼進行操作

# pip install nltk

# import nltk

# nltk.download() # 對依賴資源進行下載,一般下載 nltk.download('popular') 即可

2.2 準備數據

訓練模型需要大量的標記數據才能有比較好的效果。這里我們先用少量的數據來幫助我們了解整個的流程和原理,如果需要更好的實驗結果,可以加大訓練數據的數量。

因為該模型是一個二分類模型,我們需要兩類數據,分別標記為 'positive' 和 'negative'。初步訓練好的模型需要測試數據來檢驗效果。

# 標記為 positive 的數據

pos_tweets = [('I love this car', 'positive'),

('This view is amazing', 'positive'),

('I feel great this morning', 'positive'),

('I am so excited about the concert', 'positive'),

('He is my best friend', 'positive')]

# 標記為 negative 的數據

neg_tweets = [('I do not like this car', 'negative'),

('This view is horrible', 'negative'),

('I feel tired this morning', 'negative'),

('I am not looking forward to the concert', 'negative'),

('He is my enemy', 'negative')]

#測試數據,備用

test_tweets = [('I feel happy this morning', 'positive'),

('Larry is my friend', 'positive'),

('I do not like that man', 'negative'),

('My house is not great', 'negative'),

('Your song is annoying', 'negative')]

2.3 特征提取

我們需要從訓練數據中提取有效的特征對模型進行訓練。這里的特征是標簽即其對應的推特中的有效單詞。那么,怎么提取這些有效單詞呢?

首先,分詞并將所有單詞變成小寫,取長度大于 2 的單詞,得到的列表代表一條 tweet;然后,將訓練數據所有 tweet 包含的單詞進行整合。

# 數據整合及劃分成詞,刪除長度小于2的單詞

tweets = []

for (words, sentiment) in pos_tweets + neg_tweets:

words_filtered = [e.lower() for e in words.split() if len(e) >= 3]

tweets.append((words_filtered, sentiment))

print(tweets)

# 提取訓練數據中所有單詞,單詞特征列表從推特內容中提取出的單詞來表示

def get_words_in_tweets(tweets):

all_words = []

for (words, sentiment) in tweets:

all_words.extend(words)

return all_words

words_in_tweets = get_words_in_tweets(tweets)

print(words_in_tweets)

為了訓練分類器,我們需要一個統一的特征,那就是是否包含我們詞庫中的單詞,下面的特征提取器可以對輸入的 tweet 單詞列表進行特征提取。

# 對一條 tweet 提取特征,得到的字典表示 tweet 包含哪幾個單詞

def extract_features(document):

document_words = set(document)

features = { }

for word in word_features:

features['contains({})'.format(word)] = (word in document_words)

return features

print(extract_features(['love', 'this', 'car']))

2.4 制作訓練集并訓練分類器

利用 nltk 的 classify 模塊的 apply_features 方法制作訓練集。

# 利用 apply_features 方法制作訓練集

training_set = nltk.classify.apply_features(extract_features, tweets)

print(training_set)

訓練樸素貝葉斯分類器。

# 訓練樸素貝葉斯分類器

classifier = nltk.NaiveBayesClassifier.train(training_set)

到此,我們的分類器初步訓練完成,可以使用了。

3. 測試工作

我們的分類器效果如何呢?先用我們事先準備好的測試集檢驗一下。可以得到 0.8 的正確率。

count = 0

for (tweet, sentiment) in test_tweets:

if classifier.classify(extract_features(tweet.split())) == sentiment:

print('Yes, it is '+sentiment+' - '+tweet)

count = count + 1

else:

print('No, it is '+sentiment+' - '+tweet)

rate = count/len(test_tweets)

print('Our correct rate is:', rate)

關于 'Your song is annoying' 這一句分類錯誤的原因,是我們的詞庫里沒有關于 'annoying' 一詞的任何信息。這也說明了數據集的重要性。

4. 分析總結

分類器的 _label_probdist 是標簽的先驗概率。 在我們的例子中,標記為 positive 和 negtive 標簽的概率都是 0.5。

分類器的 _feature_probdist 是 特征/值概率詞典。它與 _label_probdist 一起用于創建分類器。特征/值概率詞典將預期似然估計與特征和標簽相關聯。我們可以看到,當輸入包含 'best' 一詞時,輸入值被標記為 negative 的概率為 0.833。

我們可以通過 show_most_informative_features() 方法來顯示分類器中最有信息價值的特征。我們可以看到,如果輸入中不包含 'not',那么標記為 positive 的可能性是 negative 的 1.6 倍;不包含 'best',標記為 negative 的可能性是 positive 的1.2倍。

print(classifier._label_probdist.prob('positive'))

print(classifier._label_probdist.prob('negative'))

print(classifier._feature_probdist)

print(classifier._feature_probdist[('negative', 'contains(best)')].prob(True))

print(classifier.show_most_informative_features())

5. 參考資料

關于我們

Mo(網址:https://momodel.cn) 是一個支持 Python的人工智能在線建模平臺,能幫助你快速開發、訓練并部署模型。

近期 Mo 也在持續進行機器學習相關的入門課程和論文分享活動,歡迎大家關注我們的公眾號獲取最新資訊!

總結

以上是生活随笔為你收集整理的python评论情感分析nltk_基于 Python 和 NLTK 的推特情感分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲欧美日韩精品 | 丰满人妻一区二区三区在线 | 亚洲美女视频网 | 日本一二三不卡视频 | 91九色蝌蚪91por成人 | 理论在线视频 | 人妻少妇一区二区三区 | 一级精品视频 | 天海翼av在线播放 | 特级西西444www | 国产999精品| 特种兵之深入敌后高清全集免费观看 | 亚洲性猛交xxxx乱大交 | 中文字幕一区二区三区乱码不卡 | 俺去操 | 成人在线亚洲 | 人妖天堂狠狠ts人妖天堂狠狠 | 国产主播中文字幕 | 免费视频国产 | 婷婷激情五月综合 | 日本成人免费 | 香蕉久久夜色精品国产使用方法 | 日韩福利视频在线观看 | 久久中文字幕在线 | 色视频一区二区 | 亚洲欧美日韩精品久久 | 超碰色偷偷 | 夜夜嗨av一区二区三区四区 | chinese中国性按摩hd | 日韩欧美国产亚洲 | 超碰97av在线 | 亚洲a v网站 | 国产精品96久久久久久 | 四虎永久网站 | 韩国伦理片在线播放 | 亚洲理论视频 | 色哟哟网站 | 神马老子午夜 | 欧美色图国产精品 | 国产对白刺激视频 | 人妻熟女一区二区三区 | 熊猫电影yy8y全部免费观看 | 久久伊人一区二区 | 国产精品一卡二卡 | 亚洲v在线观看 | 毛片aaa| 国产精品福利片 | 欧美精品久久久久 | 激情欧美一区二区免费视频 | 亚洲精品色午夜无码专区日韩 | 欧美超碰在线 | 欧美激情三级 | 成人自拍网 | 中文字幕在线观看二区 | 91亚洲精华 | 国产一二三区免费视频 | aaa国产精品 | 九九热视频在线 | 永久黄网站色视频免费观看w | 首尔之春在线观看 | 亚洲AV成人无码久久精品巨臀 | 粉嫩久久99精品久久久久久夜 | 色av吧| 午夜精品一区二区三区免费视频 | 久久国产传媒 | 久久性感美女视频 | wwwxxx黄色 | 97超碰人人模人人人爽人人爱 | 亚洲制服无码 | 色婷婷综合网 | 丝袜 亚洲 另类 欧美 重口 | 国产三级视频在线 | 亚洲一本二本 | 亚洲淫片 | 女人扒开屁股让男人桶 | 日本午夜网站 | 国产黄视频在线观看 | 婷婷成人综合 | 污污视频网站免费观看 | 伊人久久国产精品 | 欧美性受xxxxxx黑人xyx性爽 | 一本色道久久88亚洲精品综合 | 欧美亚洲日本在线 | 亚洲高清在线观看 | 年代下乡啪啪h文 | 精品视频一区二区三区在线观看 | 黄色成人毛片 | 久久人妻精品白浆国产 | 色狠狠久久av大岛优香 | 日本高清www免费视频 | 国产1区在线 | 黄色一级免费看 | av资源天堂 | 亚洲第一黄色 | 国产第三区 | 黄色片在线免费 | 日韩精品一区二区三区色欲av | 亚洲国产成人精品一区二区三区 | av资源网在线观看 |