NLP_Sentiment_Analysis

2025-12-10 0 160

NLP:情感分析


关于人或事件(政治,社交等)的产品,服务,电影或文本评论对于清楚地了解最终用户/一般公众的思考,即了解如何满足或不满意产品或服务的原因,即喜欢或不喜欢给定的电影或个人的原因,以及在上面的理解(关键方面/功能)。

Sentiment analysis可以通过破译人们喜欢/不喜欢,他们想要的东西以及他们的主要关注点来帮助我们收集有关评论/文本的见解信息

主要有两种方法可以从给定的评论/文本中提取情感,并将结果归类为正面或负面:

  • 基于词典的方法
  • 机器学习方法

→在此存储库笔记本中,我们将解决machine learning approach

机器根本无法以原始形式处理文本数据。他们需要我们将文本分解为数值格式,该格式很容易被机器读取。这是下面描述的技术/模型发挥作用的地方。

1- Bag of Words (Bow)和TF-IDF

  • BOW和TF-IDF是帮助我们将文本句子转换为数字向量的技术。
  • BOW只是创建了一组载体,其中包含文档中单词出现的数量(评论),而TF-IDF技术则创建了一个归一化的计数,其中每个单词计数除以该单词出现的文档数量,它捕获了文档中单词的相关性和频率。
  • 对于BOW和TF-IDF而言,每个单词都是独立的方式捕获的,因此未捕获其发生的局部上下文(掩盖单词) ,因此他们俩都不考虑单词之间的语义关系

上下文可以从两种不同的角度看待,我们以后将解决

2- Word2VecGlove

  • Word2Vec是一个两层神经网,通过矢量化单词来处理文本。它的输入是文本语料库,其输出是一组向量:代表该语料库中单词的特征向量。
  • Word2Vec考虑相邻的单词以捕获单词的局部上下文,同时减少数据的大小。
  • 当使用Word2Vec时,如果我们认为我们有足够的数据,可以进行自定义矢量化,因为它将非常具体,或者可以使用经过预告片的单词嵌入在非常大的语料库中训练的单词嵌入(Gopgle News)(Gopgle News)
  • Word2Vec和手套的训练方式有所不同。 Glove通过计算全局单词单词共发生矩阵来扩展Word2Vec在文本语料库中捕获全局上下文信息的工作。如上所述,Word2Vec仅在训练过程中捕获单词的局部上下文,它仅考虑相邻的单词以捕获上下文。手套考虑了整个语料库,并创建一个大型矩阵,可以捕获整个语料库中单词的同时出现。
  • 这两个嵌入的验证模型易于使用,并且易于将其整合到Python代码中。

3- BERT

  • 虽然Word2Vec和Glove Word嵌入是独立的,但在某种意义上,这些模型仅输出每个单词的一个向量(嵌入),将单词的所有不同感官组合到一个向量中,Bert可以为同一单词生成不同的单词嵌入,以捕获单词上下文– 这是句子中的位置
  • Word2Vec和Glove在训练中不考虑单词顺序,而Bert会考虑单词顺序(Bert使用Transformer – 一种基于注意的位置编码的基于注意力的模型来表示单词位置)
    • 例如,对于以下句子,“他用手机去了监狱牢房,从囚犯那里提取血细胞样本”,伯特将为牢房生成三个不同的向量。第一个“牢房”(监狱案例)将更接近诸如监禁,犯罪等的词,而第二个“牢房”(电话案例)将更接近iPhone,Android等单词,第三个“细胞”(血细胞案例)将更接近诸如Platelets,hemoglobin,flicid,etce等,例如诸如诸如iPhone,Android等单词。
  • 上面提到的差异的一个实际含义是,我们可以将Word2Vec和手套向量直接用于下游任务,我们需要的只是单词的向量,不需要模型本身来训练这些向量。但是,在伯特(Bert)的情况下,由于它与上下文有关,因此我们需要用于训练向量的模型,因为这些模型基于上下文生成了一个单词的向量

4- Doc2Vec

  • doc2vec是Word2Vec的扩展,该扩展应用于整个文档/评论而不是单个单词。该模型旨在创建文档/评论而不是单词的数值表示(Le&Mikolov,2014)。 DOC2VEC基于逻辑,即单词的含义还取决于其发生的文档
  • 这些标签只是Doc-Vectors Collection的键,它们没有语义含义

Sentiment Analysis of the Restaurant Reviews from YELP Dataset

→我们需要从Yelp数据集中找到的两个数据集(评论业务)可以在此处找到

→您可以在这里学习如何在Google Cloud Platform中创建由用户管理的笔记本实例

  • 笔记本中执行的任务 – 关键点

1-预处理(此任务的整个笔记本)

2-TF -IDF

2.1-首先,阅读预处理阶段后存储在存储桶中的清洁数据集

2.2-进行火车/测试拆分,保持关注的两列,并保留每个班级中相同比例的示例,如原始数据集中所观察到的

2.3-建立基准逻辑回归具有默认参数SVM模型,该参数将用作基线模型评估

  • 注意:使用GridSearchCV,我发现了bowtf-idf ngram_range (((1,1),(2,2),(3,3),(1,2),(2,2),(2,3),(1,3))的性能更好地使用所选分类器logistic回归

2.4-逻辑回归和带有超参数调整SVM分类器(使用GridSeachCV )。评估

3 -Word2Vec

  • 注意尽管数据集不是很大,但我使用word2vec而不使用验证的单词嵌入式,因为我认为我有足够的数据可以进行自定义矢量化,因为这对语料库的上下文非常特定

3.1-在培训数据上学习单词嵌入

3.2-创建一个函数以获取将为分类器提供的向量

3.3-建立基准测试逻辑回归具有默认参数SVM分类器模型,该模型将用作基线模型

3.3.1-使用逻辑回归评估

3.3.2-使用SVM评估

3.4-高参数调整和评估

3.4.1-使用GridSearchCV进行逻辑回归高参数调谐评估

3.4.2-使用GridSearchCV进行SVM的超级参与者调谐评估

4- doc2vec

5-使用Pytorch框架(整个COLAB笔记本) Bert 。用于交互式预览

5.1-预处理

5.2-安装transformers

5.3-定义我们将要使用的预训练模型: bert-base-uncased

5.4-加载bert令牌

5.5-决定最大句子长度

5.6-数据集分为火车(70%),验证(15%)和测试(15%)集

5.7-转换为列表每个集合

5.8-为每个评论创建一系列令牌ID (输入ID)

5.9-填充截断截断我们的序列,使它们的长度相同

5.10-创建注意力面具

5.11-将所有输入ID,标签和注意力面膜的所有列表转换为火炬张量

5.12-创建一个DataLoader加载我们的数据集

5.13-构建情感分类器BertForSequenceClassification

5.14-实例化我们的模型

5.15-我们的模型移至GPU

5.16-优化器,学习率调度程序,损失功能和时期数量

注意

  • 微调我们的BERT分类器,我们需要创建一个optimizer 。考虑到Bert上的原始论文,我们将使用AdamW优化器,因为它实现了梯度偏置校正以及重量衰减。我们还将使用没有热身步骤的线性调度程序

  • 作者有一些有关微调的建议

    • 批量尺寸:16,32
    • 学习率(ADAM):5E-5,3E-5,2E-5
    • 时期数:2、3或4

我们分别选择了16、3e -52

5.17-培训验证

  • 注意:我们可以存储培训验证损失准确性值,然后绘制制作一个表格,以测量每个时期完成后火车验证集的性能,以便我们更清楚地看到训练循环进度

5.18-预测测试集

5.19-将预测转换为张量

5.20-在预测上应用软磁

5.21-转换为numpy数组

5.22-测试数据的混淆矩阵的热图

5.23-分类报告

5.24-结论

下载源码

通过命令行克隆项目:

git clone https://github.com/jose-jpm-alves/NLP_Sentiment_Analysis.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 NLP_Sentiment_Analysis https://www.zuozi.net/33141.html

text classification
上一篇: text classification
Feather HTN
下一篇: Feather HTN
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务