情緒辨識或辨識是一個人或一個物體感知環境中表現出的特定情緒並將其放入多種情緒類別之一的能力.
Python 中的情感分類是傳統情感分析技術的可行替代方案,傳統情感分析技術將單字或句子標記為積極或消極並分配它們相應地具有極性分數。
這個演算法背後的基本思想是模仿人類思考過程,它試圖從文本中分割出描繪情感的單字。使用訓練資料集執行分析,其中一組預設資訊被輸入到系統中,作為分類的基礎。
這是基於 NLTK 庫 中的WordNet 同義詞集和加拿大國家研究委員會(NRC) 的情感詞典的軟體包,該詞典已超過 27,000 個術語。
圖書館使用以下類別來衡量和分類單字的情緒效果 -
恐懼
憤怒
期待
信任
驚喜
積極
負片
悲傷
厭惡
喜悅
第 1 步 - 在終端機中使用 pip install 指令安裝 NRC 模組。
pip install NRCLex
在 jupyter 中安裝
筆記本和命令提示字元通常遵循相同的步驟。在 MacO 中安裝也遵循相同的命令。直接使用終端。
第 2 步 - 另外安裝 textblob 和 nrclex 以避免遇到 MissingCorpusError
pip install textblob
第 3 步 - 從 textblob 下載語料庫
python -m textblob.download_corpora
安裝後,我們可以繼續匯入庫並建立文字物件。
1.原始文字到過濾後的文字(為了獲得最佳結果,「文字」應該是 unicode)。
text_object.load_raw_text(text: str)
2.將標記化的單字清單轉換為標記清單
#text_object.load_token_list(list_of_tokens: list)
3.傳回單字清單。
text_object.words
4。返回句子列表。
text_object.sentences
5。返回影響列表。
text_object.affect_list
6。返回影響字典。
text_object.affect_dict
7.傳回原始情緒數。
text_object.raw_emotion_scores
8。回最高的情緒。
text_object.top_emotions
9。返回頻率。
Text_object.frequencies
在這裡,我們使用 top_emotions 函數根據情緒對單字清單進行分類。
第 1 步 - 導入 nrclex 導入 nrclex
步驟 2 - 從 nrclex 匯入 NRCLex
第 3 步 - 初始化您想要分類的字串單字清單
步驟 4 - 對於範圍 len(text) 內的 i
第 4 步 -情緒 = NRCLex(text[i]) #為每個文字建立一個物件
第 5 步 -情緒.top_emotions #對情緒進行分類
# Import module import nrclex from nrclex import NRCLex text = ['happy', 'beautiful', 'exciting', 'depressed'] # Iterate through list for i in range(len(text)): # call by object creation emotion = NRCLex(text[i]) # Classify emotion print('\n', text[i], ': ', emotion.top_emotions)
innocent : [('trust', 0.5), ('positive', 0.5)] hate : [('fear', 0.2), ('anger', 0.2), ('negative', 0.2), ('sadness', 0.2), ('disgust', 0.2)] irritating : [('anger', 0.3333333333333333), ('negative', 0.3333333333333333), ('disgust', 0.3333333333333333)] annoying : [('anger', 0.5), ('negative', 0.5)]
第 1 步 - 導入 nrclex
#步驟 2 - 從 nrclex 匯入 NRCLex
第 3 步 - 初始化您想要分類的字串單字清單
步驟 4 - 對於範圍 len(text) 內的 i
第 4 步 -情緒 = NRCLex(text[i]) #為每個文字建立一個物件
第 5 步 -情緒.top_emotions #對情緒進行分類
import nrclex from nrclex import NRCLex # Assign list of strings text = ['innocent','hate', 'irritating','annoying'] # Iterate through list for i in range(len(text)): # Create object emotion = NRCLex(text[i]) # Classify emotion print('\n\n', text[i], ': ', emotion.top_emotions)
innocent : [('trust', 0.5), ('positive', 0.5)] hate : [('fear', 0.2), ('anger', 0.2), ('negative', 0.2), ('sadness', 0.2), ('disgust', 0.2)] irritating : [('anger', 0.3333333333333333), ('negative', 0.3333333333333333), ('disgust', 0.3333333333333333)] annoying : [('anger', 0.5), ('negative', 0.5)]
NRC 情緒字典廣泛應用於研究和工業領域的情緒分析和情緒分類任務。這意味著有大量的用戶和資源社群可用於支援和進一步開發。 NRCLex 還借助谷歌翻譯,為全球 100 多種語言提供穩定的產出,成功打破了語言障礙。這在醫療保健領域有多種應用,可以幫助理解流行病應對措施。實際應用包括心理學和行為科學、假新聞檢測和增強人機互動。
以上是使用Python中的NRC字典進行情感分類的詳細內容。更多資訊請關注PHP中文網其他相關文章!