词典法——词典法情感分析数词操作并输出结果到csv文件中

准备工作

import jieba
import numpy as np
import pandas as pd
  1. 定义读取情感词典到列表中的函数
#读取情感词典到列表中的函数
def read_dic(dic_type):
    with open(dic_type+'_extended.txt',encoding="utf-8") as f:
        positive_extended = f.readlines()
    temp=[]
    for row in positive_extended:
        temp.append(row.split()) 
    pos_dic = []
    for row in temp:
        for column in row:
            pos_dic.append(column)
    return pos_dic
  1. 定义判断文档中的词语有多少在情感词典中,并计数的函数
#判断文档中的词语有多少在情感词典中,并计数
def count_words(file,dictionary):
    count = 0
    for word in file:
        if word in dictionary:
            count+=1
    return count
  1. 定义返回文档中情感词出现的次数列表的函数,此函数用到了上面count_words()函数
#返回文档从情感词出现的次数列表
#cutWords_list:此形参应该传入已经分好词并去除停用词的嵌套列表(见上),type_list应该传入不同的情感词列表
def count_list(cutWords_list,type_list):   #type_list形参传入不同的情感词列表
    negative_count=[]
    for each_file in cutWords_list:
        negative_count.append(count_words(each_file,type_list))
    return negative_count

主函数

函数定义的准备工作完成,进入主函数:

with open('cutWords_list.txt',encoding="utf-8") as file:  #读入了已经分词并去停用词的文件
    cutWords_list = [k.split() for k in file.readlines()]

这里我没有进行分词并去停用词的操作,直接读取了已经分词后的结果。

#1.首先生成六个词典。
positive_list=read_dic("positive")
negative_list=read_dic("negative")
modalstrong_list=read_dic("modalstrong")
modalweak_list=read_dic("modalweak")
uncertainty_list=read_dic("uncertainty")
litigious_list=read_dic("litigious")

#2.然后生成六个结果列表。
positive_count=count_list(cutWords_list,positive_list)
negative_count=count_list(cutWords_list,negative_list)
modalstrong_count=count_list(cutWords_list,modalstrong_list)
modalweak_count=count_list(cutWords_list,modalweak_list)
uncertainty_count=count_list(cutWords_list,uncertainty_list)
litigious_count=count_list(cutWords_list,litigious_list)

#3.最后将结果输出到csv文件中
dataframe = pd.DataFrame({'positive_count':positive_count,
                          'negative_count':negative_count,
                          'modalstrong_count':modalstrong_count,
                          'modalweak_count':modalweak_count,
                          'uncertainty_count':uncertainty_count,
                          'litigious_count':litigious_count
                         })
#将DataFrame存储为csv,index表示是否显示行名,default=True
dataframe.to_csv("emotion_count.csv",index=False,sep=',')       #写入文件并保存

然后就可以打开这个emotion_count.csv的文件了。
截图示例如下:
在这里插入图片描述

下文是整体过程:
写在前面:文档指的是一条记录,占一行。
下文是对情感法进行简单情感分析的过程博客,并不涉及对词语的加权、对程度副词加权和对否定词取反的操作,仅仅对词典中的词语进行计数。
输入:待计数文档,已有的六个情感词典。
输出:对六个词典中出现的词语进行计数得到的六列数据。
顺序见下:

分词并去停用词返回嵌套列表并保存到本地
https://blog.csdn.net/weixin_43919570/article/details/104316316
从母词及其扩充的情感词典txt文件读取到列表list中
https://blog.csdn.net/weixin_43919570/article/details/104311270
判断文档中的词语有多少在情感词典中并计数
https://blog.csdn.net/weixin_43919570/article/details/104312714
批量输出情感词计数结果到列表中
https://blog.csdn.net/weixin_43919570/article/details/104315090
其实4是对3加了一个循环得到的,应该将3和4看成一体,作用是输出计数列表。
词典法情感分析数词操作并输出结果到csv文件中
https://blog.csdn.net/weixin_43919570/article/details/104316043
第5篇文章是对以上四篇文章的汇总使用。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
情感分析是一种将自然语言处理技术应用于文本的方,旨在确定文本情感倾向和情感极性。利用情感词典CSV文件的公司年报进行情感分析,可以帮助我们了解年报所述的内容对公司的情绪影响。 首先,将CSV文件导入Python编程环境,并使用适当的库进行数据处理和情感分析。接着,选择一种可靠的情感词典,如“情感词典A”或“情感词典B”。 情感词典通常包含一系列词汇,每个词汇都标记有情感极性(如积极、性或消极)。我们可以根据情感词典的词汇,在年报进行情感分析。将每个词与情感词典进行比对,并计算得分。 对于每一段文字,我们可以计算其情感得分。这可以通过统计文字出现的积极和消极词汇的数目以及其情感极性来完成。可以使用统计方,如加权平均或简单计数。 最后,根据情感得分,可以对公司年报的情感进行综合评估。如果得分为正,意味着年报情感倾向更积极;如果得分为负,表示情感倾向更消极。 值得注意的是,情感分析并非绝对准确,可能受到词义歧义、语境和复杂的句子结构等因素的影响。因此,在执行情感分析时,需要考虑更多的因素,并运用其他NLP技术和机器学习方进行更精确的情感分析。 总之,利用情感词典CSV文件公司年报进行情感分析可以帮助我们了解年报的情感倾向,对公司的发展和经营状况进行评估,以便更准确地做出决策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值