python3---情感分析(基于词典中文)

article/2025/3/15 13:38:02

写在前面:
现有的情感分析比较常用的有两种,分别是基于词典的和机器学习,前者也属于非监督学习,后者自然一般属于监督学习。

刚开始学情感分析,下面先从**【基于词典的情感分析】**开始进行:

  • 词典:我东搜西找找到了一些感觉是常用的字典,主要有(台湾大学NTUSD简体中文情感词典,清华大学李军中文褒贬义词典,BosonNLP_sentiment_score,知网hownet2007)

  • 词典下载传送门
    (积fen少的学生党可以评论留言【年级+邮箱】,看到会发送滴)

  • 因为刚学,所以设计了一些比较基础的规则(基于文本预处理之后生成了关于每一个文档的【词列表向量】)
    在这里插入图片描述
    代码实现:

  • 加载词典(我主要用的是NTUSD的中文情感极性词典):

#定义一个函数加载词典
def dict_load(path):dict=[]with open(path, encoding='utf-8-sig') as f:for line in f:if line.strip() !='':#养成去空好习惯dict.append(line.strip())return(dict)#开始加载情感词典列表
neg_dict = [] #消极情感词典
pos_dict = [] #积极情感词典
no_dict = [] #否定词词典
dict_file_path='XXXXXX\\'#词典位置,根据需要修改,注意转义符啥的!!!
pos_dict=dict_load(dict_file_path+'台湾大学NTUSD简体中文情感词典/ntusd-positive.txt')
#print(pos_dict)
print("==pos_dict loaded successfully==")
neg_dict=dict_load(dict_file_path+'台湾大学NTUSD简体中文情感词典/ntusd-negative.txt')
#print(neg_dict)
print("==neg_dict loaded successfully==")
no_dict=dict_load(dict_file_path+'否定词典\\否定.txt')
#print(no_dict)
print("==no_dict loaded successfully==")
#加载情感词典结束'''
  • 把之前的规则码出来【确定以下想要的输入的格式,以下输入的单个文档的分词列表】
#定义一个函数来判断句子中积极词、消极词词频
#===============#sent是分好词的列表格式或者序列格式====================
def sent_count(sent, negdict, posdict, nodict):pos = 0neg = 0for i in range(len(sent)):if sent[i] in negdict:if i==1 and sent[i-1] in nodict:pos=pos+1        #否定-消极elif i==1 and sent[i-1] not in nodict:neg=neg+1        #其他-消极elif i>1 and sent[i-1] in nodict:if sent[i-2] in nodict:neg=neg+1   #否定-否定-消极else: pos=pos+1      #其他-否定-消极elif i>1 and sent[i-1] not in nodict:if sent[i-2] in nodict:pos =pos+1  #否定-其他-消极else:neg =neg+1  #其他-其他-消极elif sent[i] in posdict:if i==1 and sent[i-1] in nodict:neg=neg+1        #否定-积极elif i==1 and sent[i-1] not in nodict:pos=pos+1        #其他-积极elif i>1 and sent[i-1] in nodict:if sent[i-2] in nodict:pos=pos+1   #否定-否定-积极else: neg=neg+1      #其他-否定-积极elif i>1 and sent[i-1] not in nodict:if sent[i-2] in nodict:neg =neg+1  #否定-其他-积极else:pos =pos+1  #其他-其他-积极return pos, neg
  • 如果想要更加快速的分析整个文本数据(有多个文档组成),可以用下面的,多加了一层循环:
#==sents是list of list,sent 是分好词的列表格式或者序列格式=============
#判断句子中积极词、消极词词频
def sent_count(sents, negdict, posdict, nodict):pos_list = []neg_list = []for sent in sents:pos=0neg=0for i in range(len(sent)):if sent[i] in negdict:if i==1 and sent[i-1] in nodict:pos=pos+1        #否定-消极elif i==1 and sent[i-1] not in nodict:neg=neg+1        #其他-消极elif i>1 and sent[i-1] in nodict:if sent[i-2] in nodict:neg=neg+1   #否定-否定-消极else: pos=pos+1      #其他-否定-消极elif i>1 and sent[i-1] not in nodict:if sent[i-2] in nodict:pos =pos+1  #否定-其他-消极else:neg =neg+1  #其他-其他-消极elif sent[i] in posdict:if i==1 and sent[i-1] in nodict:neg=neg+1        #否定-积极elif i==1 and sent[i-1] not in nodict:pos=pos+1        #其他-积极elif i>1 and sent[i-1] in nodict:if sent[i-2] in nodict:pos=pos+1   #否定-否定-积极else: neg=neg+1      #其他-否定-积极elif i>1 and sent[i-1] not in nodict:if sent[i-2] in nodict:neg =neg+1  #否定-其他-积极else:pos =pos+1  #其他-其他-积极pos_list.append(pos)neg_list.append(neg)return pos_list, neg_list
  • 然后调用这个函数就阔以啦~~

写在后面:
刚开始学,如有不当,请好言劝我呀~~
~~欢迎 批评 指教~
有更好的方法和规则期待分享,提前感谢!

文章来源:https://blog.csdn.net/weixin_46863267/article/details/107215120
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://chatgpt.dhexx.cn/article/bnvBwD0U.shtml

相关文章

如何利用情感词典做中文文本的情感分析?

如何利用情感词典做中文文本的情感分析? 这是本学期在大数据哲学与社会科学实验室做的第四次分享了。 第一次分享的是:如何利用“wordcloudjieba”制作中文词云? 第二次分享的是:如何爬取知乎中问题的回答以及评论的数据&#…

基于情感词典的文本情感分析(一个最简单的举例能直接运行)

1. 使用情感词典进行情感分析的思路为 1) 将Web文本进行分句,使其以句子为单位进行处理;2) 从分句中抽取连词和否定词,并标记相应连词与否定词位置;3) 访问情感词汇本体,确定词汇极性…

Python利用情感词典做情感分析

情感分析是大数据时代常见的一种分析方法,多用于对产品评论的情感挖掘,以探究顾客的满意度程度。在做情感分析时,有两种途径:一种是基于情感词典的分析方法,一种是基于机器学习的方法,两者各有利弊。 在此&…

共现分析

一、共现分析概念 “共现”指文献的特征项描述的信息共同出现的现象,这里的特征项包括文献的外部和内部特征,如题名、作者、关键词、机构等。 而“共现分析”是对共现现象的定量研究, 以揭示信息的内容关联和特征项所隐含的知识。 二、共…

python基于情感词典的情感分析

今天给大家分享的是通过情感词典来对文本进行情感分析最后计算出情感得分 通过情感得分来判断正负调性 主要步骤: 数据准备 本次情感词典采用的是BosonNLP的情感词典,来源于社交媒体文本,所以词典适用于处理社交媒体的情感分析 本次分析准备的…

python 热词分析_Python笔记:热词分析2020-01-01

热词分析在公众趋势分析、舆情分析有很宽广的应用,我们来看看怎么从一个TXT文件中分析出文章的热词出来,我们采用流行的第三方“结巴”包来实现。 首先安装第三方包(matplotlib,jieba,wordcloud,numpy)mmatplotlib主要…

【共词聚类分析】基于CNKI和WOS的小样本稳健性检验

很久之前的一篇文章,最近终于收到了Reviewers的回复(一把心酸…其中有一个Comments如下,意思是我们原先的文章没法证明共词聚类方法的结论是合理的…于是打算新增加一个稳健型检验(robust analysis),由于上…

python共词矩阵分析结果一步到位

import os import re import pandas as pd from PyPDF2 import PdfFileReader import string import yakeif __name__ __main__:# 运行第一部分代码pdf_files_path C:/Users/win10/Documents/美国智库/pdf_files# 定义一个函数,用于读取PDF文件并将其转化成文本de…

共词分析

一、共现分析概念及主要类型 “共现”指文献的特征项描述的信息共同出现的现象,这里的特征项包括文献的外部和内部特征,如题名、作者、关键词、机构等。而“共现分析”是对共现现象的定量研究,以揭示信息的内容关联和特征项所隐含的知识。常…

AD09由英文改中文菜单步骤

1:打开AD09,点击DXP,选择Preferences 2:在对话框的左边一竖列选择General 3:选择左边竖列后,在右边找到Localization选项 4:点击应用,再点击OK。 5:然后关闭AD09&#xf…

AD软件的常用基本设置

AD软件的基本设置 前言 工欲善其事,必先利其器;最近学弟一直在忙着画板子,但是效率非常低,在看过他的软件基本设置,以及对软件快捷键掌握程度后(新手小白),我决定将常AD的常用基本…

STM32定时器做时钟源输出基于CubeMx

目录 前言 CubeMX配置 开始函数 改变频率 改占空比 结论 前言 调试使用的评估板:https://item.taobao.com/item.htm?spma230r.1.14.17.432b1562F8z658&id612002664117&ns1&abbucket14#detail 作者再调试AD5933过程中,需要输出100Hz…

Evaluation Board User Guide UG-364 文档 BUG

最近作者使用这个芯片;在进行硬件性能对比测试中发现ADI文档中的一个小问题; 相位角计算的过程中,就是下图 结合下面的代码,验证了上面文档应该是手误导致的。

2019年全国大学生电子设计竞赛D题简易电路特性测试仪试题

题目要求部分 我负责的部分就是测量阻抗的部分,这一次我使用的是AD5933 AD5933介绍 我这一篇主要是讲使用5933计算那个待测电路的阻抗值,首先就是在概括处已经说明是我们读取的数据其实是一个实部和一个虚部。 然后我们要记住的是向寄存器0x94&#xf…

电赛专题 |国一作品_线路负载及故障检测装置

有幸邀请到了在2019大学生电子设计大赛的获奖优秀队员为本公众号投稿,将分几次推文为大家介绍几只优秀队伍的作品。 本次推文为大家分享西安电子科技大学微电子学院的团队的作品,团队成员为:蒋昊宇 冯郑 张岳琦(排名不分先后&…

智能电导率系统电路设计详解

电导率是一个衡量水溶液导电能力的电学物理量, 电阻率的倒数为电导率,用希腊字母κ表示,κ1/ρ。一般意义上,电导率的测量温度是标准温度(25℃)。在液体中,水的电导率是衡量水质的一个重要指标。…

AD5934阻抗变换模块实验电路板

■ 前言 本文讨论了基于AD5934构建阻抗变换模块。并对于它测试相应的阻抗进行实验。 01电路设计 1.原理图设计1 ▲ 实验电路板 原理图 2.PCB版图 ▲ 实验电路板PCB 电路板输出接口从右到左,前四个的功能定义如下表。后面四个是用于调试使用。 管脚(从右到左)符号功…

使用AD5933测量元器件的谐振特性

■ 前言 元器件的谐振特性 使用 使用AD5933测量电子器件复阻抗 测量元器件的谐振特性。这里记录了一些相应的的电子实验的数据。以备之后进行复习和参考。 01测量电路 在 使用AD5933测量电子器件复阻抗 中给出了直接测量一些元器件(电阻、电容)的结果。…

AD5933测量容性负载时的神秘振荡信号

■ 问题简介 在博文 使用AD5933测量电子器件复阻抗 中,对于电容负载进行测量的时候,发现测量的结果与理论值严重不符。 除了出现了增大的测量输出值(与前面电阻相对比),还有一些非常不规则的输出结果。 计时在小信号…

使用AD5933分析复阻抗的时钟频率设置

作者:卓晴博士,清华大学自动化系 更新时间:2020-07-29 Wednesday ■ 前言 使用 AD5933分析复数阻抗 时,由于受到内部离散傅里叶变换(DFT)所带来的以下限制: 由于采集信号可能带来的频率 频率混叠 现象由…