python实现情感分析

一、python实现情感分析

自然语言处理中一个很重要的研究方向是语义的情感分析(SentimentAnalysis),情感分析是指通过对给定文本的词性分析,判断该文本是消极的还是积极的过程。当然,在某些特定场景中,也会加入“中性”这个选项。

情感分析的应用场最也非常广泛,在购物网站或者微博中,人们会发表评论,淡论集商品、事件或人物。商家可以利用情感分析工具知道用户对自己的产品的使用体验和评价。当需要大规模的情感分析时,肉眼的处理能力就变得十分有限了。情感分析的本质就是根据已知的文字和情感符号.推测文字是正面的还是负面的。处理好情感分析,可以大大提高人们对于事物的理解效率,也可以利用情感分析的结论为其他人或事物服务。例如,不少基金公司利用人们对于某家公司、某个行业、某件事情的看法态度来预测未来股票的涨跌。

下面将使用NLTK模块中的朴素贝叶斯分类器来进行情感分析,实现文档的分类。在特征提取函数中,我们提取了所有的词。但是,NLTK分类器的输入数据格式为字典格式,因此,我们要先创建字典格式的数据,以便NLTK分类器可以使用这些数据。同时,在创建完字典型数据后,我们要将数据分成训练数据集和测试数据集.目的是使用训练数据训练我们的分类器,以便分类器可以将数据分类为积极与消极。当我们查看哪些单词包含的信息量最大,也就是最能体现其情感的单词的时候,会发现有些单词表示积极情感(如out-standing),有些单词表示消极 情感(如isutin .这是非常有意义的信息。

二、使用步骤

1.引入库

代码如下():

import random
import numpy as np
import csv
import jieba
import re
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.pipeline import Pipeline
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split

2.读入数据

代码如下:

import random
import numpy as np
import csv
import jieba
import re
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.pipeline import Pipeline
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split
jieba.setLogLevel(jieba.logging.INFO)# 电影评论数据集
file_path = 'review.csv'
# 用户自定义字典
userdict = "userdict.txt"
# 停用词
stopword_path = 'stopwords.txt'
# 加载用户自定义字典
jieba.load_userdict(userdict)# 加载语料库
def load_file_to_list(file_path):with open(file_path,'r',encoding='utf8') as f:reader = csv.reader(f)rows = [row for row in reader]# 将语料库转换为listreview_data = np.array(rows).tolist()# 对语料库执行洗牌操作random.seed(100)random.shuffle(review_data)# 定义评论列表review_list = []# 定义情感标签列表sentiment_label_list = []# 填充评论列表和情感标签列表for words in review_data:review_list.append(words[1])sentiment_label_list.append(words[0])# 返回评论列表和情感标签列表return review_list,sentiment_label_list
# 获取评论列表和情感标签列表
review_list,sentiment_label_list = load_file_to_list(file_path)
# 输出top10评论,输出top10情感标签
print('review_list[:10]:',review_list[:10])
print('sentiment_label_list[:10]:',sentiment_label_list[:10])
print('='*30)# 分割训练测试集
train_review_list,test_review_list,train_sentiment_label_list,test_sentiment_label_list=\train_test_split(review_list,sentiment_label_list,test_size=0.2,random_state=0)
# 输出训练集测试集的大小
print('Numbers of train sets:{}'.format(str(len(train_review_list))))
print('Numbers of test sets:{}'.format(str(len(test_review_list))))
print('='*30)# 加载停用词
def load_stopwords(file_path):stop_words = []with open(file_path,encoding='UTF-8') as words:stop_words.extend([i.strip() for i in words.readlines()])return stop_words
# 对评论进行分词
def review_to_text(review):stop_words = load_stopwords(stopword_path)# 移除英文字符review = re.sub("[^\u4e00-\u9fa5^a-z^A-Z]",'',review)# 使用jieba切分评论review = jieba.cut(review)# 移除停用词if stop_words:all_stop_words =set(stop_words)words = [w for w in review if w not in all_stop_words]# 返回分词结果return words
# 训练集评论
review_train = [''.join(review_to_text(review)) for review in train_review_list]
# 训练集标签
sentiment_label_train = train_sentiment_label_list
# 测试集评论
review_test = [''.join(review_to_text(review)) for review in test_review_list]
# 测试集标签
sentiment_label_test = test_sentiment_label_list
# 将分词转换成词频矩阵
count_vec = CountVectorizer(max_df=0.8,min_df=3)
# 定义管道
def bayes_Classifier():return Pipeline([('count_vec',CountVectorizer()),('mnb',MultinomialNB())])
# 实例化分类器
bayes_clf = bayes_Classifier()
# 训练模型
bayes_clf.fit(review_train,sentiment_label_train)
print('='*30)
# 测试集精度
print('test set accuracy:{}'.format(bayes_clf.score(review_test,sentiment_label_test)))strpre = '无论看多少遍,都不懂得欣赏。。'
strpre1 = '很好看的一部电影'
prelabel = bayes_clf.predict([''.join(review_to_text(strpre))])
prelabel1 = bayes_clf.predict([''.join(review_to_text(strpre1))])# 输出指定评论的情感分析结果
print(strpre,':',prelabel)
print(strpre,':',prelabel1)
print('='*30)

#运行结果
运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/20716.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中文情感分析

情感分析在NLP领域中是应用很广泛的技术,一般用深度学习来解决这一类的问题。其实我的理解就是情感分析就是一个分类问题。这里我爬取了京东小米9的用户评论,正面和负面的评价各1000条,爬虫和整体的代码我放在了 GitHub 。然后我把预训练的词…

基于情感词典进行情感态度分析

情感分析是指挖掘文本表达的观点,识别主体对某客体的评价是褒还是贬,褒贬根据进态度行倾向性研究。文本情感分析可以分为基于机器学习的情感分类方法和基于语义理解的情感分析。基于机器学习进行语义分析的话需要大量的训练集,同时需要人工对…

重新梳理一下我对ChatGPT的认识

不得不承认,信息差是广泛存在的,太多地方都存在信息不对称的情况。在我们研究ChatGPT怎么用,能帮我们做什么事儿的时候,有的人已经在用ChatGPT做项目赚钱了,有的人却还不知道ChatGPT怎么注册,还在四处搜索注…

【失业即将到来?】AI时代会带来失业潮吗?

文章目录 前言一、全面拥抱AIGC二、AI正在取代这类行业总结 前言 兄弟姐妹们啊,AI时代,说抛弃就抛弃,真的要失业了。 一、全面拥抱AIGC 蓝色光标全面暂停外包? 一份文件截图显示,中国知名4A广告公司,蓝色…

一键生成元宇宙 AI又杀疯了

人类十几年的进步水平,AI用几个月就能轻易实现。在展示了超强的文本对话能力和一键生图功能后,AI大模型不打算停下,开始挑战搭建3D空间这一更高难度的动作。 这次,Facebook母公司Meta想当一把主导者。几天前,它的首席…

MiX跨学科知识的一封介绍信,实现群体智能的开源社区Mixlab无界社区

如果有一天,所有在井底的青蛙因为某些缘故被迫送上了地面,这些青蛙有什么选择?背井离乡还是跳回井里?这时候系统说如果你选择了前者,系统会送一个ChatGPT给你,它能告诉你这个世界是什么样的,但是…

最容易和最难被GPT所代替的TOP25职业!程序员居首?

上一篇:腾讯,裁员7000人! OpenAI 研究人员曾发文称「约 80% 美国人的工作将被 AI 影响」。 文章的结论是,至少80%的美国劳动力会受到影响,他们的工作的10%会被GPT所替代。其中甚至有19%的美国劳动力的50%工作会被替代。…

巴比特 | 元宇宙每日必读:美国爆发“数据起义”,好莱坞、文学界、新闻界等集体反抗AI,人工智能公司们准备如何应对?...

摘要:据澎湃新闻报道,美国正在爆发一场“数据起义”,好莱坞、艺术家、作家、社交媒体公司和新闻机构都是反抗者。一切的矛头都指向ChatGPT和Stable Diffusion等生成式人工智能工具,它们被指在未经许可或提供补偿的前提下&#xff…

“我裁了 90% 的技术支持团队,都外包给了 AI”

整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 自 ChatGPT 爆火后,但凡 AI 领域有任何最新进展,人们总会习惯性调侃一句:“人类距离被 AI 取代已经不远了。”说者或许无心,但现在看来,“A…

元宇宙倒在日落黄昏处

来源:青投创新 编辑:Tian "XR赛道整体投入巨大,但回报周期过长是裁员乃至XR赛道不再被资本市场看好的主要原因。 十天前,字节跳动宣布旗下VR厂商PICO将进行人员优化,比例在20%上下,按照整个团队2000人…

决策树分类算法

#CSDN AI写作助手创作测评 目录 ID3算法 1.算法原理 2.代码实现 3.ID3算法的优缺点分析 C4.5算法 1.原理 2.优缺点 心得感受 决策树表示方法是应用最广泛的逻辑方法之一,它从一组无次序、无规则的事例中推理出决策树表示形式的分类规则。在决策树的内部…

selenium学习(二)

第八课–元素定位八种方式 要想操作Web界面上的元素,首先要定位到该元素,Selenium提供了定位元素的API,这些方法都被定义在WebDriver类中,浙西额方法都是以find开头。 方法名称描述可能带来的问题find_element_by_id通过id定位元…

免费ChatGDT插件《 WeTab 新标签页》

1、打开Microsoft Edge,选择右上角的三个点点,选择扩展 2、自动跳出这个小框框,选择管理扩展 3、往下拉、拉到最下边,找到如下图,并点击进去 4、进去之后再左侧搜索框中输入:WeTab 新标签 我这里是以及下载…

基于TF-IDF+Tensorflow+PyQt+孪生神经网络的智能聊天机器人(深度学习)含全部Python工程源码及模型+训练数据集

目录 前言总体设计系统整体结构图系统流程图孪生神经网络结构图 运行环境Python 环境TensorFlow 环境 模块实现1. 数据预处理2. 创建模型并编译3. 模型训练及保存4. 模型应用 系统测试1. 训练准确率2. 测试效果3. 模型生成 工程源代码下载其它资料下载 前言 本项目利用TF-IDF&…

喜羊羊贴吧顶帖软件实战教学

喜羊羊贴吧顶帖软件实战教学#贴吧顶帖#贴吧推广 大家好,欢迎来到百收网SEO这期视频,给大家更新一下百度贴最新的一个顶帖视频教程。首先我们今天用的顶帖软件是我们的喜羊羊173 的一个版本,软件的话在我们的群文件去下载,就是我们…

贴吧发布软件<神奇的>使用教程实战教学

贴吧发布软件<神奇的>使用教程实战教学.百度贴吧全自动发帖软件#贴吧发帖软件 各位同学大家好&#xff0c;欢迎回到百收SEO网络&#xff0c;这节课是我们百度贴软件自动发帖的一个实战教学的一个公开课&#xff0c;发帖软件还是我们用的一个喜羊羊的工具箱&#xff0c;然…

讯飞星火 VS 文心一言:谁是中文大语言模型的TOP1?

在百度发布文心一言一个多月后,科大讯飞也发布了自己的大模型“讯飞星火大模型”。本篇博客就测评一下这两个在中文圈最受好评的大语言模型,顺便辅以ChatGPT为参考。大家一起来看看到底谁是中文大语言模型的TOP1? 目录 体验网址 1、旅游攻略 2、数理逻辑题 3、故事创作…

大学生实践| 微软ATP“师徒制”AI实战项目收获满满!

ChatGPT在极短时间内掀起了一轮AI狂潮&#xff0c;AI数据、AI大模型、AIGC……对我们AI实践项目感兴趣的同学也越来越多&#xff01;微软(亚洲)互联网工程院下属的微软ATP为大学生们提供了丰富的企业级实践项目。 2个月内&#xff01;本期优秀的Chen同学在微软AI工程师团队带领…

1天训完45亿参数大模型!高校计算能力首次比肩科技巨头

衡宇 发自 凹非寺量子位 | 公众号 QbitAI “第一次&#xff0c;高校拥有了和科技巨头一样的计算能力。” 说这句话的人是中国工程院院士、阿里云创始人王坚。 他口中让高校计算能力倍增的&#xff0c;是复旦大学刚刚发布的云上科研智算平台。 名为CFFF&#xff08;Computing fo…

介绍一下IEEE PHM2012数据集

ChatGPT: IEEE PHM2012数据集是一个用于轴承剩余寿命预测的公共数据集&#xff0c;由IEEE联合无损检测协会组织。该数据集是通过对一种在机械系统中广泛使用的轴承进行可控实验得到的。 数据集包含四个通道的振动数据和一个温度信号&#xff0c;每个通道的采样率为20kHz&…