首頁  >  文章  >  後端開發  >  使用Python中的NRC字典進行情感分類

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

WBOY
WBOY轉載
2023-09-12 08:13:02824瀏覽

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

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

Python 中的

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

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

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

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

  • 恐懼

  • 憤怒

  • 期待

  • 信任

  • 驚喜

  • 積極

  • 負片

  • 悲傷

  • 厭惡

  • 喜悅

#安裝步驟

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

#
pip install NRCLex
如果您使用的是 Windows,

在 jupyter 中安裝

筆記本命令提示字元通常遵循相同的步驟。

在 MacO 中安裝也遵循相同的命令。直接使用終端。

  • 第 2 步 - 另外安裝 textblob 和 nrclex 以避免遇到 MissingCorpusError

  • ul>#
    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刪除