IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 基于NRC词典的情感分析(含多种离散情绪)——python -> 正文阅读

[人工智能]基于NRC词典的情感分析(含多种离散情绪)——python

NRC词典简介:

NRC词典由加拿大国家研究委员会(简称NRC)的专家创建,目前已有多种语言版本,我们可以用其中文版本来进行情感分析。使用一系列单词来帮助识别情绪,情感,并分析标签,表情符号和单词颜色的关联。

词典中包含情绪的类别主要有以下几种:

我们可以用以下代码看词典中情感相关内容:

import pandas as pd
lexion_df = pd.read_excel('E:/JupyterProject/mybook-main/mybook-main/data/Textmining/NRC-Emotion-Lexicon-v0.92-In105Languages-Nov2017Translations.xlsx')
lexion_df.head()
lexion_df.columns.tolist()
chinese_df = lexion_df[['Chinese (Simplified) (zh-CN)','Positive','Negative','Anger','Anticipation','Disgust','Fear','Joy','Sadness','Surprise','Trust']]
chinese_df.head()

前几行数据如下:

?用如下代码构建词语列表:

Positive, Negative, Anger, Anticipation, Disgust, Fear, Joy, Sadness, Surprise, Trust= [[] for i in range(10)]
for idx, row in chinese_df.iterrows():
    if row['Positive']==1:
        Positive.append(row['Chinese (Simplified) (zh-CN)'])
    if row['Negative']==1:
        Negative.append(row['Chinese (Simplified) (zh-CN)'])
    if row['Anger']==1:
        Anger.append(row['Chinese (Simplified) (zh-CN)'])
    if row['Anticipation']==1:
        Anticipation.append(row['Chinese (Simplified) (zh-CN)'])
    if row['Disgust']==1:
        Disgust.append(row['Chinese (Simplified) (zh-CN)'])
    if row['Fear']==1:
        Fear.append(row['Chinese (Simplified) (zh-CN)'])
    if row['Joy']==1:
        Joy.append(row['Chinese (Simplified) (zh-CN)'])
    if row['Sadness']==1:
        Sadness.append(row['Chinese (Simplified) (zh-CN)'])
    if row['Surprise']==1:
        Surprise.append(row['Chinese (Simplified) (zh-CN)'])
    if row['Trust']==1:
        Trust.append(row['Chinese (Simplified) (zh-CN)'])

print('词语列表构建完成')

用下面的代码计算句子各种情感的词汇数量:

import jieba
import time


def emotion_caculate(text):
    positive, negative, anger, anticipation, disgust, fear, joy, sadness, surprise, trust = [0 for i in range(10)]
    line = processing(text)   #数据清洗
    wordlist = seg_depart(line)    #将句子分词并去除停用词(分词函数之前的文章有介绍)
    wordset = set(wordlist)   #将列表转化为集合(去重)
    wordfreq = []
    for word in wordset:
        freq = wordlist.count(word)
        if word in Positive:
            positive+=freq
        if word in Negative:
            negative+=freq
        if word in Anger:
            anger+=freq  
        if word in Anticipation:
            anticipation+=freq
        if word in Disgust:
            disgust+=freq
        if word in Fear:
            fear+=freq
        if word in Joy:
            joy+=freq
        if word in Sadness:
            sadness+=freq
        if word in Surprise:
            surprise+=freq
        if word in Trust:
            trust+=freq
            
    emotion_info = {
        'positive': positive,
        'negative': negative,
        'anger': anger,
        'anticipation': anticipation,
        'disgust': disgust,
        'fear':fear,
        'joy':joy,
        'sadness':sadness,
        'surprise':surprise,
        'trust':trust,
        'length':len(wordlist)
    }
    score_list = list(emotion_info.values())
    return score_list

计算文档中各个句子包含的情感强度(用词汇数量表示)并存到另一个文件中:

def emotion_analyse():
    filename = r'C:\test.csv'
    senti_count = []
    with open(filename, 'r', encoding='UTF-8') as csvfile:
        next(csvfile)
        reader = csv.reader(csvfile)
        for row in reader:
            score = emotion_caculate(row[1])
            senti_count.append(score)
        print(senti_count)
    name = [ 'positive', 'negative', 'anger', 'anticipation','disgust','fear','joy','sadness','surprise','trust','length']
    test = pd.DataFrame(columns=name, data=senti_count)
    test.to_csv(r"C:\test_result.csv")

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-06 15:15:13  更:2021-12-06 15:17:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 2:30:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码