使用机器学习,通过文本分析,轻松实现原本复杂的情感分析

01、案例说明

本期分享案例是:文字分析-情感分析,内容是关于某部电影评论好坏的分析,使用大量的已知数据,通过监督学习的方法,可以对于未知的评论进行判断其为正面还是负面的评价。

对于数据分析,原来都是处理数值型的问题。直到最近才将数据分析的能力延伸到文本分析的领域之内。通过这个案例我们可以了解对于文字,也同样的可以利用一些聪明的方式,做成数值方式的表现而进行文字分析,如下图所示:

图片

02、数据资料

首先我们看到导入的数据,与之前所经历的数值数据是非常不同,基本在Text的属性里面,是非结构性的文字,其内容与长度都有所不同。这个部分RM是作为文本的方式来处理,也请特别注意,如果是使用EXCEL 等其他外部的数据导入,最好还是使用 Import Guru的功能,避免其辨识为其他种类的属性。

03、操作流程

Step1读入数据

导入数据之后,将目标值设定为情绪反应(Set Role),以及第三个算子(NominalToText)再一次确保其数据是文本而不是多项式的种类。

最主要的核心在第四个操作(Process Document)元之内,这是RM一个特殊的算子,其参数包括设定如何将令牌(Token)输出成为文字向量(Vector),打开其中我们可以看到有几个标准的操作。如下图所示:

图片

第一个算子(Tokenize)将文字首先转换为令牌,使用的方式是只要不是文字,就作为一个令牌,所以所有的空白/标点/特殊符号都会去除掉。

第二个算子(Transform Cases)将所有的英文字转为小写的字体,避免因为大小写而变成不同的令牌。

第三个算子(Filter Stopwords)是使用一个在RM中预先建立的字典,将所有没有意义的字词去除掉。

做完这些之后,其输出的形态变成一个超大的矩阵,如下图所示:

图片

其中一共有200个数据,但是属性却达到13418个属性。而其中的数值(小于1的数值)是其对应令牌在这个数据中的TF-IDF 的数值。

在这里我们就完成了最关键的步骤,也就是将文本的资料转换为实数的数值。通过这个方法,我们之前所学习的所有机器学习模型,都可以应用在这个巨大的矩阵之上。 

Step2 模型建立

有了这个了解,我们就可以用之前我们熟悉的交叉检验的算子对这个数据进行模型的建立。因为属性的庞大,通常我们会使用的是支持向量机(SVM),但是其原理和之前是完全相同的,包括对于精准度的验证,可以直接打开这个(Cross Validation)算子进行观察。

Step3: 测试数据

这个步骤(Create Document),我们自行在系统之内创建了一个测试的数据,然后通过使用这个模型来判断这个数据它的情绪反应为何种。但是请注意,这个所创建的测试数据它们的种类是文本而不是其他的任何一种数据。

第2个步骤是使用之前相同的文本处理的算子,对数据进行令牌建立和向量输出。但是特别注意,因为这个算子它并不能自行创建令牌,必须使用原来模型所使用的令牌,所以需要将在第一个步骤所产生的文本处理的算子,其wor端口必须直接相连,才能够确保这两个算子所使用的令牌是一致的,如下图所示:

图片

Step4: 模型使用

这个步骤就如我们之前所了解的一样,使用已经建立好的模型,对于未知的数据进行判断,并且将其结果输出。

04、结果说明

对于我们所建立的测试数据,系统的判断如下,对于结果其信心度有0.587。但是考量模型本身的精确度仅有63.5%+/-6.26%,再配合我们的信心程度很难确定的说这个判断是否准确,仅能作为参考。而如果细读文字的本身,事实上对于人脑也是一个较为难以立判好坏的数据,所以无法因此证明系统的无效性,如下图所示:

图片

对于电脑要发展到与人脑有类似的功能,仅仅使用这种简单的文档分析的方式,远远不能达到可接受的程度。事实上,这个已经是需要进入神经网络和自然语言处理的全新领域。但是简单的使用这种操作,仍然可以产生出很有趣的结果。

当然另外一个问题,就是对于中文的处理。这个案例里面使用的全部都是英文,其中的文档处理的(Process Document)算子,必须要重新调整使用我们在之前所提到的Jieba的Python程序码才有办法处理中文。相关的案例,如果有兴趣的话可以与我们联络,可以共同讨论。


关于 Altair RapidMiner

Altair RapidMiner 数据分析与人工智能平台,是数据分析领域中最早实现将自动化数据科学、文本分析、自动特征工程和深度学习等多种功能同时集成的企业级一站式数据科学平台,帮助用户解决从数据清洗、准备、数据科学建模到模型管理和部署的全流程需求,同时支持数据和流数据的实时分析可视化,适用于从学术研究到企业级应用的广泛场景。

欲了解更多信息,欢迎关注公众号:Altair 澳汰尔

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

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

相关文章

深⼊理解分布式锁常用方案,研究过Redisson和Curator框架的源码

分布式锁是分布式系统中确保多个节点对共享资源进行同步访问的关键技术。以下是对分布式锁常用方案以及Redisson和Curator框架源码的一些深入理解: ### 分布式锁常用方案 1. **基于数据库的乐观锁**: - 通过在数据表中添加版本号或时间戳字段&#…

Go语言学习:每日一练3

Go语言学习:每日一练3 目录 Go语言学习:每日一练3方法接口继承类型断言 方法 方法是一类有接收者参数的函数。 接收者的类型定义和方法的声明必须在一个包里 type MyInt intfunc (m MyInt) Add(add int) int {return int(m) add } //OR func (m *MyInt)…

巴图制自动化Profinet协议转Modbus协议模块连接PLC和电表通信

1、免编写Modbus轮询程序实现PLC与电表通信的方法 在智能化时代,工业自动控制中的PLC和电表之间的通信是一个常见的需求。传统上,为了使PLC与电表通信,通常需要编写Modbus查询程序来读取和控制数据。然而,使用 巴图制自动化Prof…

235、二叉搜索树的最近公共祖先

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自…

用 AI 生成绘本,含大量 prompt

画图过程,为了保证绘本输出的风格统一,角色连贯,画面内容与故事保持一致 1、画风统一的解决办法:固定一个插画师的风格,可以输入插画师的名字,或者垫图,即上传你需要借鉴风格的图片 2、角色连贯…

Spring Security6.3.0版本出现无法解析符号

Spring Security 6.3.0版本出现“无法解析的符号”错误通常意味着项目中缺少了必要的类或者资源,或者可能是因为项目的依赖关系配置不正确。 解决方法: 确认依赖:检查pom.xml或build.gradle文件中是否正确添加了Spring Security的依赖&…

Redis中测试Stream的例子

当你想要测试 Redis 中的 Stream 功能时,可以通过 Redis 的命令行客户端或者使用任何支持 Redis 的编程语言来操作。下面我会给出一个简单的例子,使用 Redis 的命令行客户端 redis-cli 来测试 Stream 的基本功能。 准备工作 确保你已经安装并启动了 Re…

聚焦西安应博会|2024西安城市安全应急产业展9月精彩呈现

2024西安城市安全应急产业博览会 时间:2024年9月12日-14日 地点:西安国际会展中心 运营:西安西部文化产业博览会有限公司 【展会简介】 为推动安全应急装备向智能化、成套化、专业化方向发展,迎接新质生产力在应急产业新技术…

应广PMS150C系列 应广8位OTP IO单片机

1、特性 不建议使用于AC 阻容降压供电或有高EFT 要求的应用。应广不对使用于此类应用而不达安规要求负责 工作温度范围:-20C~70C 2、系统特性 1KW OTP 程序内存 64字节数据存储器 硬件 16位定时器 1个8位硬件PWM生成器 1个通用比较器 快速唤醒功能 …

nccl-test多机多卡测试

ssh免密登录 ubuntu默认安装有SSH client,还需要安装 SSH server sudo apt install openssh-server本机生成公私钥 cd ~/.ssh ssh-keygen -t rsa在.ssh/目录下,会生成两个文件:id_rsa和id_rsa.pub 注意:正确配置.ssh目录以及其…

linux下Java11无jre文件夹的问题

项目升级需要更高级的Java版本,于是下载了jdk-11.0.22_linux-x64_bin.tar.gz,解压后jdk-11.0.22下没有jre,导致eclipse下“build path”无法加载jre。 Java11以上版本不在提供jre,Java11安装后,需要如下处理&#xff1…

贝叶斯优化算法(Bayesian Optimization)及其Python 和 MATLAB 实现

贝叶斯优化算法(Bayesian Optimization)是一种基于贝叶斯统计理论的优化方法,通常用于在复杂搜索空间中寻找最优解。该算法能够有效地在未知黑盒函数上进行优化,并在相对较少的迭代次数内找到较优解,因此在许多领域如超…

ElementUI中的el-table解决宽度问题 - 根据内容自动撑开

在使用element-ui中,会发现表格组件el-table在未指定宽度情况下,会自动计算并给表格宽度赋值。但实际开发中,有时需要根据内容实际长度自动撑开显示,由内容的多少而决定表格的宽度,而不是默认宽度为100%。在默认情况下…

监控平台zabbix对接grafana

目录 1.安装grafana并启动 2.浏览器访问 3.导入zabbix数据,对接grafana 4.如何导入模板 5.使用zabbix监控nginx并发量连接数 5.1 修改nginx配置 5.2 编写监控数据脚本 5.3 设置键值 5.4 在zabbix web端完成自定义监控项 5.5 连接到grafana 以上一篇博客&l…

使用CubeIDE调试项目现stm32 no source available for “main() at 0x800337c:

使用CubeIDE调试项目现stm32 no source available for "main() at 0x800337c: 问题描述 使用CubeIDE编译工程代码和下载都没有任何问题,点击Debug调试工程时,出现stm32 no source available for "main() at 0x800337c 原因分析&a…

聊聊C++20的三向比较运算符 `<=>`

C20标准引入了许多新特性&#xff0c;其中之一是三向比较运算符 <>&#xff0c;也被称为太空船运算符。这个新运算符为C程序员提供了一种全新的比较对象的方式&#xff0c;它能有效简化比较逻辑&#xff0c;避免编写多个比较运算符重载的情况。 为什么需要三向比较运算符…

VirtualBox Ubuntu Sever配置双网卡

Ubuntu 版本&#xff1a;Ubuntu Server 2404 vitrualBox 网卡配置&#xff1a; 如上配置后&#xff0c;ifconfig 只能看到 网卡1 应用了。要应用 网卡2 需要更改文件 /etc/netplan/50-cloud-init.yaml&#xff08;不同的ubuntu版本这个文件名可能不同&#xff09; 首先 ifcon…

6.BeanFactory处理器Bean处理器

BeanFactoryPostProcessor BeanFactoryProcessor是Bean工厂处理器&#xff0c;对beanFactory的进行扩展&#xff0c;可以解析Configuration Bean注解。 主要功能是对BeanFactory的补充。 //获取所有bean工厂的处理器<Bean名字&#xff0c;bean工厂处理器>Map<Strin…

Simulink中的S函数深入解析

Simulink中的S函数深入解析 在Simulink环境中&#xff0c;S函数&#xff08;Simulink Functions&#xff09;扮演着至关重要的角色&#xff0c;它们允许用户将自定义算法和行为集成到Simulink模型中。本文将详细探讨S函数的定义、应用和编写方法&#xff0c;以及在模型中如何利…

Android设备信息(DevInfo)

软件介绍 设备信息&#xff08;DevInfo&#xff09;一款评分非常不错的手机硬件及各种信息检测应用&#xff0c;安卓设备硬件检测工具。可以全面查看手机的各种信息、包括&#xff1a;Android系统版本的详细信息、芯片CPU处理器的详细信息、全球卫星定位、测试功能、硬件温度、…