使用Python中的NRC字典進行情感分類

WBOY
發布: 2023-09-12 08:13:02
轉載
914 人瀏覽過

使用Python中的NRC字典進行情感分類

情緒辨識辨識是一個人或一個物體感知環境中表現出的特定情緒並將其放入多種情緒類別之一的能力.

Python 中的

情感分類是傳統情感分析技術的可行替代方案,傳統情感分析技術將單字或句子標記為積極消極並分配它們相應地具有極性分數

這個演算法背後的基本思想是模仿人類思考過程,它試圖從文本中分割出描繪情感的單字。使用訓練資料集執行分析,其中一組預設資訊被輸入到系統中,作為分類的基礎。

這是基於 NLTK 庫 中的WordNet 同義詞集和加拿大國家研究委員會(NRC) 的情感詞典的軟體包,該詞典已超過 27,000 個術語

圖書館使用以下類別來衡量和分類單字的情緒效果 -

  • 恐懼

  • 憤怒

  • 期待

  • 信任

  • 驚喜

  • 積極

  • 負片

  • 悲傷

  • 厭惡

  • 喜悅

#安裝步驟

  • 第 1 步 - 在終端機中使用 pip install 指令安裝 NRC 模組。

#
pip install NRCLex
登入後複製
如果您使用的是 Windows,

在 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中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板