【NLTK系列02】NLTK库应用:使用 NLTK 进行情绪分析

使用 NLTK 进行情绪分析

上篇:【NLTK系列】:nltk库介绍(01)_无水先生的博客-CSDN博客

一、说明

        上篇《NLTK库介绍》介绍了NLTK的基本用法,本篇介绍NLTK的一个具体应用:“使用 NLTK 进行情绪分析”,本文示范如何应用NLTK完成一个独立小项目。

二、什么是情绪分析?

        情绪分析(也称为观点挖掘)是一种自然语言处理 (NLP) 方法,用于确定数据是正面、负面还是中立。对文本数据的情感分析经常用于帮助组织监控消费者反馈中的品牌和产品情绪并了解客户需求。

        NLTK的意思是自然语言处理工具包是python中的一个软件包,专门用于基于文本的分析。这些是所需的步骤:

1.导入必要的模块
2.导入数据集
3.数据预处理与可视化
4.模型构建
5.预测

三. 导入必要的模块:

在这里,我们将根据您的数据导入所需的所有基本导入模块。

import nltk
import random
import pandas as pd
import time
from bs4 import BeautifulSoup
import refrom nltk.corpus import stopwords
from nltk.sentiment import SentimentIntensityAnalyzerfrom nltk.tokenize import word_tokenize
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score

四. 导入数据集:

        现在,您可以使用熊猫导入数据集

df = pd.read_csv('your_data_here.csv')
or
dataset = pd.read_csv('your_data_here.csv')

五. 数据预处理和可视化:

        数据预处理将数据更改为可以在数据挖掘、机器学习和其他数据科学任务中更轻松、更高效地处理的格式。

        访问数据后,我们对其进行了清理。我们可以通过使用“isnull().sum()”技术快速确定数据集中缺失值的总数。

dataset.isnull().sum()

        然后我们可以替换 null 值或删除包含 null 值的相应行,以删除我们使用

dataset = data.dropna()

        有关数据可视化的更多信息,请点击此处

六. 模型构建:

        在开始开发模型之前,我们需要先做一个快速任务。我们知道,为了让我们正确理解然后对评论进行分类,人类需要冠词、行列式、连词、标点符号等。但对于机器来说,情况并非如此。因此,他们并不真正需要这些来对情绪进行分类;相反,如果他们在场,他们就会变得困惑。因此,需要“nltk”库才能完成此任务,就像任何其他情绪分析一样。

        “自然语言处理工具包”是首字母缩略词NLTK所代表的。这是执行情绪分析或任何基于文本的 ML 项目的基本库之一。因此,借助此库,您可以从删除标点符号开始,然后删除不会为文本添加任何有意义的单词。首先使用名为“punc_clean”的函数从每个审阅中删除所有标点符号。以下代码将实现相同的内容:

import nltk
def punc_clean(text):import string as sta=[w for w in text if w not in st.punctuation]return ''.join(a)
dataset['review'] = dataset['review'].apply(punc_clean)
dataset.head(2)

因此,标点符号被上面的代码删除。接下来,我们必须删除任何不会为语句添加含义的术语。这些术语被称为“停用词”,但我们希望保留“not”一词,因此我们使用此代码。

def remove_stopword(text):stopword=nltk.corpus.stopwords.words('english')stopword.remove('not')a=[w for w in nltk.word_tokenize(text) if w not in stopword]return ' '.join(a)
data['review'] = data['review'].apply(remove_stopword)

因此,我们目前只落后模型构建一步。下一个目标是为每个评论中的每个单词分配一个情绪分数。为了实现它,我们必须使用“sklearn”模块中的“TfidVectorizer”库,该库包含在“feature_extraction.text”中。应仔细阅读“TfidVectorizer”文档,以彻底掌握该库。

from sklearn.feature_extraction.text import TfidfVectorizer
vectr = TfidfVectorizer(ngram_range=(1,2),min_df=1)
vectr.fit(data['review'])
vect_X = vectr.transform(data['review'])

现在是构建模型的时候了。由于情绪分析是二元分类,因此“1”表示正面评价,“0”表示负面评价。

from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
clf=model.fit(vect_X,data['sentiment'])
clf.score(vect_X,data['sentiment'])*100

七. 预测:

        因此,为了澄清模型的性能,我使用了两个简单的句子“我爱面包”和“我讨厌面包”,它们清楚地指的是积极和消极的情绪。

参考资料更多在这里: https://www.analyticsvidhya.com/blog/2021/06/sentiment-analysis-using-nltk-a-practical-approach/

玛丽亚姆·阿布巴卡尔

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

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

相关文章

基于SpringBoot的桂林旅游景点导游平台

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 景点类型管理 景点信息管理 线路推荐管理 用户注册 线路推荐 论坛交流 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实…

阶段六-Day02-Maven

一、学习Maven 使用Maven创建Web项目,并部署到服务器。 二、Maven介绍及加载原理 1. 介绍 Maven是使用Java语言编写的基于项目对象模型(POM)的项目管理工具。开发者可以通过一小段描述信息来管理项目的构建、报告和文档。 使用Maven可以…

记录在搭建Jenkins时,所遇到的坑,以及解决方案

项目场景: 记录在搭建Jenkins时,所遇到的坑,以及解决方案.问题描述1 在使用Jenkins构建时,报错如下: cp: cannot stat /project/xx/xxxx/dist/: No such file or directory Build step Execute shell marked build as failure Finished: FAILURE解决方…

【网络豆送书第五期】Kali Linux高级渗透测试

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号:网络豆云计算学堂 座右铭:低头赶路,敬事如仪 个人主页: 网络豆的主页​​​​​ 本期好书推荐:《Kali Linux高级渗透测试…

MySQ 学习笔记

1.MySQL(老版)基础 开启MySQL服务: net start mysql mysql为安装时的名称 关闭MySQL服务: net stop mysql 注: 需管理员模式下运行Dos命令 . 打开服务窗口命令 services.msc 登录MySQL服务: mysql [-h localhost -P 3306] -u root -p****** Navicat常用快捷键 键动作CTRLG设…

Sentinel入门

文章目录 初始Sentinel雪崩问题服务保护技术对比认识Sentinel微服务整合Sentinel 限流规则快速入门流控模式关联模式链路模式 流控效果warm up排队等待 热点参数限流全局参数限流热点参数限流 隔离和降级FeignClient整合Sentinel线程隔离熔断降级慢调用异常比例、异常数 授权规…

dockerfile lnmp 搭建wordpress、docker-compose搭建wordpress

-----------------安装 Docker--------------------------- 目前 Docker 只能支持 64 位系统。systemctl stop firewalld.service setenforce 0#安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2 --------------------------------------------------…

软考高级架构师下篇-18

目录 1. 引言2. 传统数据处理系统的问题1.传统数据库的数据过载问题2.大数据的特点3.大数据利用过程4.大数据处理系统架构分析3.典型的大数据架构1. Lambda架构2.Kappa架构3. Lambda架构与Kappa架构的对比4.大数据架构的实践1.大规模视频网络2.广告平台3.公司智能决策大数据系统…

网络安全(骇客)—技术学习

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟入…

企业视频直播画面时移看点的用法

企业视频直播画面时移时移功能,可以让客户在观看直播的时,实时回看直播内容;看点功能,可以将视频内容分段标记,能让客户明确内容结构,快速定位目标信息,提升观看体验,跟我一起来体验…

十五、异常(7)

本章概要 其他可选方式 历史观点把异常传递给控制台把“检查的异常”转换为“不检查的异常” 异常指南 其他可选方式 异常处理系统就像一个活门(trap door),使你能放弃程序的正常执行序列。当“异常情形”发生的时候,正常的执行…

黑马店评-04缓存更新策略,保证MySQL数据库中的数据和Redis中缓存的数据一致性

缓存更新策略(数据一致) 更新策略 缓存更新是Redis为了节约内存而设计出来的机制,当我们向Redis插入太多数据时就会导致缓存中的数据过多,所以Redis会对部分数据进行更新即淘汰 低一致性需求(数据长久不发生变化): 使用内存淘汰机制,例如店铺类型信息的查询缓存,因为这部分…

Maven介绍

Maven 翻译为"专家"、"内行",是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。 Maven 是一个项…

2024年元旦怎么放假?元旦放假时间安排表记录到待办APP

结束了为其8天的中秋国庆长假,已经有不少网友开始期待下一个重要节日的到来了,它就是2024年的元旦。那么2024年元旦怎么放假?元旦放假时间安排表你知道吗?其实2024年1月1日是星期一,所以元旦放假时间是2023年12月30日—…

深入理解强化学习——强化学习的目标和数据

分类目录:《深入理解强化学习》总目录 强化学习的目标 在动态环境下,智能体和环境每次进行交互时,环境会产生相应的奖励信号,其往往由实数标量来表示。这个奖励信号一般是诠释当前状态或动作的好坏的及时反馈信号,好比…

电子沙盘数字沙盘大数据人工智能开发教程第16课

电子沙盘数字沙盘大数据可视化GIS系统开发教程第16课:新增加属性在MTGIS3d控件 public bool ShowFLGrid;//是否显 示方里网格。 public bool Atmosphere;//是否显示大气圈。(因为WPF不支持shader功能,所以效果嘛。。。) 在SDK中为…

LongLoRA:超长上下文,大语言模型高效微调方法

麻省理工学院和香港中文大学联合发布了LongLoRA,这是一种全新的微调方法,可以增强大语言模型的上下文能力,而无需消耗大量算力资源。 通常,想增加大语言模型的上下文处理能力,需要更多的算力支持。例如,将…

2023 NewStarCTF --- wp

文章目录 前言Week1MiscCyberChefs Secret机密图片流量!鲨鱼!压缩包们空白格隐秘的眼睛 Web泄露的秘密Begin of UploadErrorFlaskBegin of HTTPBegin of PHPR!C!E!EasyLogin CryptobrainfuckCaesars SecertfenceVigenrebabyrsaSmall dbabyxorbabyencodin…

docker 基本操作

一、docker 概述 Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。 Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。 Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自…

【数据结构与算法】之“堆”介绍

目录 堆的基本存储 一、概念及其介绍 二、适用说明 三、结构图示 堆的 shift up 堆的 shift down 基础堆排序 一、概念及其介绍 二、适用说明 三、过程图示 优化堆排序 索引堆及其优化 一、概念及其介绍 二、适用说明 三、结构图示 堆的基本存储 一、概念及其介…