Faster 情感分析

一、数据预处理:

  • FastText分类模型:

    • 其他文本分类模型最大的不同之处在于其计算了输入句子的n-gram

      • n-gram: 将文本里面的内容按照字节进行大小为n的滑动窗口操作,形成了长度是n的字节片段序列,其中每一个字节片段称为gram
    • 将n-gram作为一种附加特征来获取局部词序特征信息添加至标记化列表的末尾

    • TorchText ‘Field’ 中有一个preprocessing参数

      TEXT = data.Field(tokenize = 'spacy',tokenizer_language = 'en_core_web_sm',preprocessing = generate_bigrams)
      
    • 构建vocab并加载预训练好的此嵌入:

      MAX_VOCAB_SIZE = 25_000TEXT.build_vocab(train_data, max_size = MAX_VOCAB_SIZE, vectors = "glove.6B.100d", unk_init = torch.Tensor.normal_)LABEL.build_vocab(train_data)
      
    • BATCH_SIZE = 64device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')train_iterator, valid_iterator, test_iterator = data.BucketIterator.splits((train_data, valid_data, test_data), batch_size = BATCH_SIZE, device = device)
      

二、构建模型:

  • FastText:

    • 通过将Embedding层单词映射到稠密空间,然后将句子中所有单词在Embedding空间中进行平均,进而完成分类。所以这个模型参数量相较于上一章中的模型会减少很多。
  • 创建FastText类实例:

  • 查看模型中的参数数量:

    def count_parameters(model):return sum(p.numel() for p in model.parameters() if p.requires_grad)print(f'The model has {count_parameters(model):,} trainable parameters')
    
  • 预训练好的向量复制到嵌入层:

  • 将未知tokens和填充tokens的初始权重归零:

三、训练模型:

四、验证模型:

import spacy
nlp = spacy.load('en_core_web_sm')def predict_sentiment(model, sentence):model.eval()tokenized = generate_bigrams([tok.text for tok in nlp.tokenizer(sentence)])indexed = [TEXT.vocab.stoi[t] for t in tokenized]tensor = torch.LongTensor(indexed).to(device)tensor = tensor.unsqueeze(1)prediction = torch.sigmoid(model(tensor))return prediction.item()predict_sentiment(model, "This film is terrible")predict_sentiment(model, "This film is great")

本文参考:Updated情感分析-task2_GoAI的博客-CSDN博客

NLP情感分析笔记(三):Faster 情感分析相关推荐

  1. motan学习笔记 三 motan Demo 分析

    motan学习笔记 一 微博轻量级RPC框架Motan motan学习笔记 二 motan架构分析 motan学习笔记 三 motan Demo 分析 motan学习笔记 四 motan Demo 之 ...

  2. 物联网初步之电阻性电路分析 第三部分 电路分析方法和电路原理

    目录 电阻性电路分析 第三章 电路分析方法 3-1 支路电流法 3-2 网孔电流法 3-3 节点电位法 3-4本章总结 第四章 电路定理 4-1 叠加定理 戴维南定理和诺顿定理 电阻性电路分析 声明: ...

  3. linux内核启动分析 三,Linux内核分析 实验三:跟踪分析Linux内核的启动过程

    贺邦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一. 实验过程 ...

  4. 2018-3-23论文一种新型智能算法--狼群算法(笔记三)实验分析单峰,多峰,可分和不可分函数

    表中 "U"表示此函数为单峰函数(Unimodal):也就是函数在定义域中只有一个全局最优解,没有局部最优解(局部极值) "M"为多峰函数(Multimodal ...

  5. LR学习笔记三 之 界面分析

    第三讲 LR界面分析 Controller 可以使用LR Controller来管理和维护方案 LR使您可以从一个单一的控制点简单有效地控制所有的Vuser 启动:LR->Application ...

  6. 微信逆向分析(三)——逆向分析的实现思路

    前言 找到偏移之后,就是写辅助工具了.这一篇聊聊写辅助工具的原理.具体的代码细节,等到实战会展开细说. 明确一下 逆向两个目的 1.调用功能 2.获取数据 对应的实现方法 1.调用功能 找到偏移,直接 ...

  7. linux内核分析实验三,linux内核分析第三次实验

    WIN10 CMD 启动虚拟WIFI 1.以管理员身份运行命令提示符: 快捷键win+R→输入cmd→回车 2.启用并设定虚拟WiFi网卡: 运行命令:netsh wlan set hostednet ...

  8. motan学习笔记 二 motan架构分析

    motan学习笔记 一 微博轻量级RPC框架Motan motan学习笔记 二 motan架构分析 motan学习笔记 三 motan Demo 分析 motan学习笔记 四 motan Demo 之 ...

  9. 【编译原理】 实验三 LL(1)分析法(LL1分析表的自动生成)

    写在前面 由于代码较长,csdn对文章总长度有字数限制,想只看完整代码的请移步另一篇博客. https://blog.csdn.net/qq_46640863/article/details/1257 ...

  10. 数据分析常用五个方法三个模型(逻辑分析、多维度拆解、对比分析、假设验证、相关性分析、RFM模型、漏斗分析模型、AARRR模型)

    目录 一.逻辑树分析法 二.多维度拆解分析法 三.对比分析法 四.假设检验法/归因分析法 五. 相关性分析法 六. RFM分析模型 七. 漏斗分析模型 八. AARRR模型 一.逻辑树分析法 定义:将 ...

最新文章

  1. Discuz!X3.1数据库的操作(三)
  2. c++ 多重背包状态转移方程_串讲:控制理论:全状态反馈控制(FSFB)
  3. 不同品牌的内存条可以混用吗_混用不同品牌护肤品的技巧
  4. python字典查询多个值_python – 在Pandas Dataframe中查找多个字典键并返回多个匹配值...
  5. 编译原理(五)自底向上分析之算符优先分析法
  6. 虚拟机续集:自动创建虚拟机virt-install、自动创建快照、kickstart自动安装虚拟机
  7. 无心插柳,再次浅谈.net资源的回收
  8. matlab中text 函数在显示字符串时的使用方法
  9. 个人收集的资源(0th) IDM绿化版(免费免积分)
  10. 父与子一起学python3_父与子的编程之旅:与小卡特一起学python
  11. Everything搜索工具不能搜索硬盘文件夹问题解决
  12. johnson算法c语言,Johnson-Trotter(JT)算法生成排列
  13. deepin系统linux:Firefox火狐浏览器关闭更新提示
  14. vue3大屏电子数字滚动显示动效
  15. 第五讲 交错级数、绝对收敛和条件收敛
  16. 【数据结构与算法分析】证logXX 对所有的X0成立
  17. php下雨效果源码,ps下雨效果制作步骤
  18. 【渝粤题库】国家开放大学2021春1253C语言程序设计答案
  19. [转]关于使用多表做update的语法
  20. 京东内网遭开源的“顶级”SpringCloud实战手册,GitHub列为首推

热门文章

  1. caffe使用预训练的模型进行finetune
  2. C# 连接 Exchange 发送邮件
  3. Shadow DOM系列1-简介
  4. Android 选项菜单
  5. Varnish 503错误
  6. 今晚的比赛(2011.12.4)
  7. 【剑指Offer,JS版本】二维数组中的查找
  8. Go 系列教程 —— 26. 结构体取代类
  9. Linux 基本命令(二)--cd 常用命令
  10. C# Programming Study #2