Python人工智能应用----文本情感分析

news2024/11/19 20:30:09

1.问题引入

接着前两节课的内容,今天我们要构建一个人工智能系统。

它的目的是像人类一样,区分评价的情感是正面还是负面的。

接下来,我们要对提取的文本进行感情色彩的分析,这个就是文本情感分析,我们要使用机器学习里面的--------监督学习

2.监督学习

监督学习是机器学习的一种,是指通过让机器去学习我们“标记好”的数据集,训练出一个模型,然后根据该模型对“未标记”的数据进行分类或预测。

举一个通俗的例子:在学习中,父母帮忙指正“对”和“错”。根据父母的指导,我们有了自己的判断。在下次碰到的时候,我们也能分辨出“对”和“错”。这就是我们在父母的帮助下“监督”学习。

在监督学习中,用于训练模型的数据都既有特征(feature)又有对应标签(label)。

我们将这样的数据集称为训练集(train set)。

通常,特征需要使用代码提取,标签则是人工直接标注在数据集上的。

原始的数据集在提取完文本和标签以后,就要被随机划分为2个部分,训练集和测试集;

这个随机的比例不是固定的,我们在自己的代码里面可以进行对应的设置,一般是大部分的用来训练找到对应的算法,少部分测试集用来测试这个算法是否准确;

3.提取数据集中的文本特征和对应的标签

这个其实我们昨天已经实现了,我们昨天的就是提取词频数大于15的,但是我们想要用机器学习实现分类器模型的构造,我们就必须提取所有的评论,而不是评价的次数大于15的词语了,所以我们要把原来的max_features=15去掉:

为了训练分类器模型,我们需要将文本特征从稀疏矩阵转换为一个二维的NumPy数组。

这是因为每条评价都对应多个特征,通过二维数组的行和列,可以清晰定位出某一个词语在某条评价里出现的次数。同时,不论之后选择哪一种机器学习的算法,都可以直接传入NumPy数组进行训练,非常方便。

我们只需对X使用toarray()函数,就可以将其转换为二维数组了。

我们已经获得了数据集,接下来就要提取数据集的标签:

# 创建一个空列表y,用于存储标签
y = []
# TODO 使用for循环遍历data,将遍历的数据存储到allInfo变量中
for allInfo in data:

    # TODO 提取allInfo中的标签数据,并存储在变量label中
    label = allInfo[1]
    
    # TODO 使用append()函数,将标签逐一添加到列表y中
    y.append(label)
    
# 输出列表y进行查看
print(y)

4.将数据集划分为训练集和测试集

我们可以借助sklearn.model_selection这个模块,它包含了划分数据的相关功能。

该模块中有一个train_test_split类,其中的train_test_split()函数,可按照用户设定的比例,将数据集随机划分为训练集和测试集。

# TODO 从sklearn.model_selection中导入train_test_split
from sklearn.model_selection import train_test_split

# TODO 划分数据集,将数据分为训练集和测试集
result = train_test_split(X, y, train_size=0.8, random_state=1)

# 输出result进行查看
print(result)

X:将需要进行划分的数据集的文本特征(简单来说就是前面的评价部分);

y:简单来说就是后面的标签(好评还是差评);

train_size=0.8:我们从数据集里面选择80%的作为训练集(就是通过这个80%)的出一种算法,让剩下的20%测试这个算法;

random_state=1:随机种子,让每次的数据划分一致。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Cisco路由器配置IPv6 Manual隧道

Cisco路由器配置IPv6 Manual隧道 IPv6与IPv4共存的方式 IPv6与IPv4共存方式大致有三种: 双栈:要求网络中所有设备均同时支持IPv4和IPv6转换:转换这种方式将IPv6协议的报头转换成IPv4协议报头。隧道:假定两个IPv6节点要使用IPv6…

6:算法基础--6.1:线性结构 ,6.2:查找算法

转上一节: http://t.csdnimg.cn/ql5Cdhttp://t.csdnimg.cn/ql5Cd 课程内容提要: 6:知识点考点详解 6.1:线性结构 通常分析时间复杂度的方法是从算法中选取-种对于所研究的问题来说是基本运算的操作,以 该操作重…

从多模态生物图数据中学习Gene的编码-MuSeGNN

由于数据的异质性,在不同的生物医学背景下发现具有相似功能的基因对基因表示学习提出了重大挑战。在本研究中,作者通过引入一种称为多模态相似性学习图神经网络的新模型来解决这个问题,该模型结合了多模态机器学习和深度图神经网络&#xff0…

2012年认证杯SPSSPRO杯数学建模C题(第二阶段)碎片化趋势下的奥运会商业模式全过程文档及程序

2012年认证杯SPSSPRO杯数学建模 C题 碎片化趋势下的奥运会商业模式 原题再现: 从 1984 年的美国洛杉矶奥运会开始,奥运会就不在成为一个“非卖品”,它在向观众诠释更高更快更强的体育精神的同时,也在攫取着巨大的商业价值&#…

(React组件基础)前端八股文修炼Day6

一 类组件与函数组件有什么异同 在React中,类组件和函数组件是创建组件的两种主要方式。随着React的发展,尤其是自Hooks在React 16.8中引入以来,函数组件的功能变得更加强大,使得它们能够更加方便地与类组件相竞争。下面是类组件…

打造专业运营团队,武汉星起航引领全球跨境电商未来趋势

近年来,随着全球经济的不断发展,跨境电商作为国际贸易的一种新模式,已然成为推动全球经济增长的新引擎。在这个浩荡的潮流中,武汉星起航以亚马逊自营店铺为依托,凭借丰富的实战运营经验和专业的团队,正积极…

蓝桥杯-dfs搜索模板题(一)

蓝桥杯-dfs搜索模板题&#xff08;一&#xff09; P2089 烤鸡P1088 火星人P1149 火柴棒等式P2036 PERKETP1135 奇怪的电梯结语 P2089 烤鸡 对于每个位置枚举数字 #include<bits/stdc.h>using namespace std;const int N1010;int n;int arr[N];//临时方案 int res0;//方案…

雪球acw_sc__v2 加密参数构造解析

打开雪球网站:https://xueqiu.com/today 首先打开Edge浏览器,清除应用程序里面的cookie 接着,跳转到源代码,刷新网页,进行调试,首先进入debugger模式,需要反debug调试。 输入相关代码,解除subug模式 点击保留日志,这里显示有两次请求,分别分析下。 第一个today返…

回归(maskrcnn)

一、写在前面 虽然粉丝量很少 但是这是一个很好的平台 记录自己的历程 我看了一个很好的讲解视频 我记录一下操作过程4-maskrcnn源码修改方法哔哩哔哩bilibili 作者已经注销帐号了 但内容很好 二、maskrcnn介绍 Mask R-CNN&#xff08;Mask Region-based Convolutional Neur…

经济学 博弈论 行为经济学

四种市场结构&#xff1a; 划分依据&#xff1a;生产者的数量&#xff0c;对价格的控制力&#xff0c;进入市场的难度&#xff08;新的商家进入市场的困难难度&#xff09; 1.完全竞争市场&#xff08;大多数农业产品&#xff1a;草莓&#xff09; 个体商家对价格没有控制力&a…

短视频素材在哪里找?八大平台解决你的创作需求

大家好&#xff01;在短视频创作的过程中&#xff0c;寻找优质的素材网站是非常重要的。那么&#xff0c;短视频素材在哪里找呢&#xff1f;推荐八个主流的视频素材分享网站&#xff0c;话不多说直接上干货。 蛙学网&#xff08;waxue.com&#xff09;——中国 首先要推荐的是…

Mybatis——鉴别器映射

鉴别器映射 有时一个单独的数据库查询会返回很多种不同数据类型的结果集。 discriminator鉴别器元素可以用来处理这种情况 数据库表结构 创建实体类、映射接口和映射文件 实体类employee package org.example.demo2;import lombok.Data;Data public class Employee {priv…

好菜每回味道不同--建造者模式

1.1 炒菜没放盐 中餐&#xff0c;老板需要每次炒菜&#xff0c;每次炒出来的味道都有可能不同。麦当劳、肯德基这些不过百年的洋快餐却能在有千年饮食文化的中国发展的那么好呢&#xff1f;是因为你不管何时何地在哪里吃味道都一样&#xff0c;而鱼香肉丝在我们中餐却可以吃出上…

C语言数据结构专题--顺序表(1基础)

前言 我们在对C语言有一定的了解之后&#xff0c;我们就可以开始数据结构的学习了&#xff0c;数据结构多用指针、结构体、动态内存开辟等知识&#xff0c;若对这些知识还不太了解的朋友&#xff0c;就需要加深其理解了&#xff0c;那么废话不多说&#xff0c;我们正式开始本节…

【C++学习】哈希的应用—位图与布隆过滤器

目录 1.位图1.1位图的概念1.2位图的实现3.位图的应用 2.布隆过滤器2.1 布隆过滤器提出2.2布隆过滤器概念2.3如何选择哈希函数个数和布隆过滤器长度2.4布隆过滤器的实现2.4.1布隆过滤器插入操作2.4.2布隆过滤器查找操作2.4.3 布隆过滤器删除 2.5 布隆过滤器优点2.6布隆过滤器缺陷…

小程序实现微信 【我的】界面

小程序实现仿微信 【我的】界面 一、简介 小程序实现仿微信 【我的】界面 采用 uni-app 实现&#xff0c;可以适用微信小程序、其他各种小程序以及 APP、Web等多个平台 具体实现步骤如下&#xff1a; 下载开发者工具 HbuilderX进入 【Dcloud 插件市场】 搜索 【小程序实现…

HTML基础知识详解(上)(如何想知道html的全部基础知识点,那么只看这一篇就足够了!)

前言&#xff1a;在学习前端基础时&#xff0c;必不可少的就是三大件&#xff08;html、css、javascript &#xff09;&#xff0c;而HTML&#xff08;超文本标记语言——HyperText Markup Language&#xff09;是构成 Web 世界的一砖一瓦&#xff0c;它定义了网页内容的含义和…

SwiftUI 中无法对添加模糊(blur)效果视图截图的初步解决

概览 在 万物皆可截图:SwiftUI 中任意视图(包括List和ScrollView)截图的通用实现 这篇博文里,我们讨论了在 SwiftUI 中对任意视图截图的一般方法。 不过,经码友反应这些方法对添加模糊(blur)效果的视图好像不太灵了。这里,就让我们看看一些可能的应变(Workaround)之…

Vue3:组件间通信-各种通信方式的用法总结

Vue3组件通信和Vue2的区别&#xff1a; 移出事件总线&#xff0c;使用mitt代替。vuex换成了pinia。把.sync优化到了v-model里面了。把$listeners所有的东西&#xff0c;合并到$attrs中了。$children被砍掉了。

用顺序表实现通讯录

前言 这次的通讯录是基于上一篇的动态顺序表的基础上实现的&#xff0c;如果对动态顺序表不熟悉&#xff0c;可以打开这个链接阅读http://t.csdnimg.cn/9zJ5g&#xff0c;这里我们会调用动态顺序表的函数。 如果想看静态顺序表实现通讯录&#xff0c;可以打开这个链接阅读http:…