如何用KNIME进行情感分析 | 下

简介:

如何能够让机器“读懂”人的情感?情感分析提供了解决的一个思路。这也使得它成为自然语言分析(Natural Language Processing)中最令人神往的山对面的“风景”。

什么是情感分类(sentiment classification)

简单说,就是对于一句或一段话,判断说话者的情感,是正向(积极)的,还是负向(消极)的。这种情感分类任务可以看作一个二分类问题。

完成情感分类的核心问题

决定分类准确率的关键在于特征的选取与语料的质量。其中特征问题解决的是:用什么样的特征来抽取,得到的文本才足够原始呢?每个词看似已经是文本的足够底层的特征,但其实也是经过高度抽象的。这也会给深度学习在自然语言领域的应用带来一些困难。同样,这也是提高模型准确度的一个有效的方法。

在上一篇情感分析的讲解中,我们已经知道如何使用KNIME构造一个情感分析模型。这一篇中,我们将使用N元语法(N-gram),借助KNIME来探究如何选取词语特征,获得的模型能够实现更准确地分类。

N元语法

在计算语言学中,n-gram指的是文本中连续的n个item。n-gram中如果n=1则为unigram,n=2则为bigram,n=3则为trigram。n>4后,则直接用数字指称,如4-gram,5gram。(Wikipedia)

以 I would like to go to Beijing. 这句话为例。

bigram为:

  • I would
  • would like
  • like to
  • to go
  • go to
  • to Beijing

如何用KNIME进行情感分析 | 下
结点概览

1.读取CSV格式文件

使用CSV reader结点读取一个CSV格式文件,该文件写入了1500条载于IMBD上的影评,并且给出了情感向量即POS(positive)和NEG(negative)。

如何用KNIME进行情感分析 | 下

2.字符串转化为文档格式

接下来将字符串转化为文档格式,继而使用“过滤”节点删除无关列,使文件只留下储存文档对象的一列。

如何用KNIME进行情感分析 | 下
以上结点内属于Document creation元结点

3.数据预处理

首先计算特征词语需要在文档中出现最小次数N。利用java语句计算:out_MinDF = (Number_Rows / 100) * Min_Percentage

如何用KNIME进行情感分析 | 下

继而进行删除标点,删除数字,删除文档中出现次数小于N的词汇,将大写转化为小写,提取词语主干(stemmed)和删除停用词(stop word)。至此我们可以完成预处理。但是由于我们想探索的是双词分类与单词分类的效果差异,所以这里花开两朵各表一枝,双词分类的这一支不需要做主干提取和停用词删除的工作。

如何用KNIME进行情感分析 | 下

(stemmed意指将词的变形归类,使得机器在处理文本时减少需要跟踪的独特词汇,这会加快“标签化”处理的过程。停用词是人类语言中没有实际意义或功用的词语,如助词,限定词等)

4.通过单词或双词建立文本特征向量

想象在一个巨大的文档集合,里面一共有M个文档,而文档里面的所有单词提取出来后,一起构成一个包含N个单词的词典,利用词袋(Bag-of-words)模型,每个文档都可以被表示成为一个N维向量(将每篇文档表示为一个向量,每一维度代表一个词语,其数值代表词语在该文档中的出现次数)。这样,就可以利用计算机来完成海量文档的分类过程。

一般来说,太多的特征会降低分类的准确度,所以需要使用一定的方法,来“选择”出信息量最丰富的特征,再使用这些特征来分类。

特征选择遵循如下步骤:

  • 1. 计算出整个语料里面每个词的信息量
  • 2. 根据信息量进行倒序排序,选择排名靠前的信息量的词
  • 3. 把这些词作为特征

如何用KNIME进行情感分析 | 下

5.构建模型

通过决策树算法构建模型在上一篇已经讲过,需要注意的是本篇需要对1-gram特征和1-gram 2-gram集合特征分别构建模型,以进行比较。这里不再赘述。

如何用KNIME进行情感分析 | 下

6.ROC曲线对比

在文档向量集创建后,词汇的情感分类已经被提取出来,系统自动创建了两种预测模型并打分。一个模型基于一个单独词汇的特征建立,第二个模型基于1-gram和2gram集合的特征。接着通过ROC接收器操作特性曲线(receiver operating characteristic curve)对这两个进行比较。

如何用KNIME进行情感分析 | 下

可以看出,在分析影评这一文本的情感态度时,使用N元语法构建出来的情感分类模型,诊断准确度更高,为85.05%。这样有助于我们针对“何种情感分类模型对NLP分析更为有效”这一问题时做出决策。


本文作者:邵海涵 周亚楠

来源:51CTO

相关文章
|
JSON 安全 数据安全/隐私保护
Refresh Token的使用场景以及如何与JWT交互
在这篇文章中,我们将探索由OAuth2定义的Refresh Token的概念。我们将会明白为什么他们会这样做,以及他们如何与其他类型的Token进行比较。我们也将通过一个简单的例子来学习如何使用它们。
18762 0
|
10月前
|
机器学习/深度学习 资源调度 数据可视化
RT-DETR改进策略【损失函数篇】| 将激活函数替换为带有注意力机制的激活函数 ARelu
RT-DETR改进策略【损失函数篇】| 将激活函数替换为带有注意力机制的激活函数 ARelu
281 2
RT-DETR改进策略【损失函数篇】| 将激活函数替换为带有注意力机制的激活函数 ARelu
|
9月前
|
Prometheus 监控 JavaScript
Node.js连接池配置的五个隐形陷阱与防御体系:从创业公司血泪史说起
文章以创业公司血泪史为例,详细阐述了 Node.js 连接池配置的五个隐形陷阱及防御体系。包括连接泄漏、配置参数算术错误、异步异常导致崩溃、跨连接事务问题、监控缺失,并介绍了相应的解决办法和终极防御手段,强调在确定性与不确定性中寻找平衡,建立自适应机制。
456 13
|
算法 数据可视化 图形学
网络通信系统的voronoi图显示与能耗分析matlab仿真
在MATLAB2022a中,该程序模拟了两层基站网络,使用泊松分布随机生成Macro和Micro基站,并构建Voronoi图。它计算每个用户的信号强度,选择最强连接,并分析SINR和数据速率。程序还涉及能耗计算,包括传输、接收、处理和空闲能耗的分析。Voronoi图帮助可视化网络连接和优化能源效率。
|
9月前
|
存储 NoSQL 关系型数据库
微服务——MongoDB的应用场景
随着Web2.0时代的到来,传统关系型数据库(如MySQL)在高并发读写、海量数据存储及高可扩展性需求方面逐渐力不从心。而MongoDB凭借其灵活的文档结构和高效性能,在社交、游戏、物流、物联网和视频直播等场景中表现出色。这些场景通常具有数据量大、写入频繁且对事务要求不高的特点。选择MongoDB适合以下情况:应用无需复杂事务与join支持、需求不确定需快速迭代、需处理高QPS读写或超大规模数据存储、追求高可用性和快速水平扩展能力。相比MySQL,MongoDB能以更低的学习、开发和运维成本满足现代应用需求。
334 0
|
11月前
|
机器学习/深度学习 人工智能 计算机视觉
NeurIPS 2024:无需训练,一个框架搞定开放式目标检测、实例分割
在NeurIPS 2024会议上,论文提出了一种名为VL-SAM的框架,旨在解决开放式目标检测和实例分割任务。该框架结合了视觉语言模型(VLM)和Segment-Anything模型(SAM),利用注意力图作为提示,在无需额外训练的情况下实现未知物体的检测与分割。实验结果显示,VL-SAM在长尾实例分割数据集(LVIS)和角落情况目标检测数据集(CODA)上均表现出色,展示了其在现实世界应用中的潜力。然而,注意力图质量和计算复杂性仍是潜在挑战。
490 19
|
Rust Ubuntu Linux
【一起学Rust | 进阶篇 | RMQTT库】RMQTT消息服务器——安装与集群配置
【一起学Rust | 进阶篇 | RMQTT库】RMQTT消息服务器——安装与集群配置
957 0
|
PyTorch 测试技术 算法框架/工具
Python中Thop库的常见用法和代码示例
肆十二在B站分享了关于THOP(Torch-OpCounter)的实战教学视频。THOP是一个用于计算PyTorch模型操作数和计算量的工具,帮助开发者评估模型复杂度和性能。本文介绍了THOP的安装、使用方法及基本用例,包括如何计算模型的FLOPs和参数量。
1361 0
|
NoSQL Java MongoDB
Java一分钟之-Spring Data MongoDB:MongoDB集成
【6月更文挑战第11天】Spring Data MongoDB简化Java应用与MongoDB集成,提供模板和Repository模型。本文介绍其基本用法、常见问题及解决策略。包括时间字段的UTC转换、异常处理和索引创建。通过添加相关依赖、配置MongoDB连接、定义Repository接口及使用示例,帮助开发者高效集成MongoDB到Spring Boot应用。注意避免时间差、异常处理不充分和忽视索引的问题。
455 0
|
JavaScript 前端开发 测试技术
Vue.js开发的10大最佳实践
Vue.js开发的10大最佳实践
433 0