当前位置: 首页 > news >正文

任务十一 BERT

目录

如何运行tensorflow

Transformer

decode和encode

attention机制

Transformer总体结构 

​编辑

bert代码

读取数据集(预处理)

数据预处理模块

基于BERT的中文情感分析

修改传入参数(路径 相对路径)

修改数据读取的代码


如何运行tensorflow

Transformer

decode和encode

decode encode
decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb2312’),表示将gbk编码的字符串str1转换成unicode编码。encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode(‘gb2312’),表示将unicode编码的字符串str2转换成gbk编码。

attention机制

attention是一种能让模型对重要信息重点关注并充分学习吸收的技术,它不算是一个完整的模型,应当是一种技术,能够作用于任何序列模型中。

Transformer总体结构 

Transformer模型中也采用了 encoer-decoder 架构 

 每一个encoder和decoder的内部简版结构

对于encoder,包含两层,一个self-attention层和一个前馈神经网络,self-attention能帮助当前节点不仅仅只关注当前的词,从而能获取到上下文的语义。decoder也包含encoder提到的两层网络,但是在这两层中间还有一层attention层,帮助当前节点获取到当前需要关注的重点内容。

模型的内部细节。

首先,模型需要对输入的数据进行一个embedding操作,(也可以理解为类似w2c的操作),enmbedding结束之后,输入到encoder层,self-attention处理完数据后把数据送给前馈神经网络,前馈神经网络的计算可以并行,得到的输出会输入到下一个encoder。

bert代码

读取数据集(预处理)

如果是自定义的数据集还需要手动的修改代码

get_train_example(把数据一行一行读进来)

num_train_step 迭代次数

num_warmup_steps 还原学习率

数据预处理模块

把数据写成tfrecord文件

 核心函数 

 构建标签

切分词 wordpiece

 

添加分隔符 CLS SEP SEP 

 通过索引来找词

 方便写进tfrecord的操作(这一部分是在file_based_convert_examples_to_features函数里)

 写进tfrecord里

基于BERT的中文情感分析

修改传入参数(路径 相对路径)

修改数据读取的代码

class MyDataProcessor(DataProcessor  ):
  """Base class for data converters for sequence classification data sets."""

  def get_train_examples(self, data_dir):
    """Gets a collection of `InputExample`s for the train set."""
    file_path=os.path.join(data_dir,'train_sentiment.txt')
    f=open(file_path,'r',encoding='utf-8')
    train_data=[]
    index=0
    for line in f.readlines():
        guid="train-%d"%(index)
        line=line.replace('\n','').split('\t')
        text_a=tokenization.convert_to_unicode(str(line[1]))
        lable=str(line[2])
        train_data.append(
            InputExample(guid=guid,text_a=text_a,text_b=None,lable=lable)
        )
    return train_data

返回标签是 '0' '1' '2'

相关文章:

  • MyBatis实现多层级collection嵌套查询
  • Containerd【轻量级容器管理工具】
  • 计算机毕业设计ssm+vue基本微信小程序的图书馆座位管理系统
  • 腾讯核心高级架构师汇总Java全栈知识点笔记,“吃透”后成功上岸!
  • 169.多数元素
  • webpack拓展篇(六十七):webpack5 新特性解析
  • CF515E Drazil and Park【思维+线段树】
  • CodeForces 1717E【线性筛】
  • Java程序猿搬砖笔记(九)
  • ROS1云课→16机器人模型从urdf到xacro
  • 花好月圆│以代码寄相思,绘嫦娥之奔月
  • WiFi基础学习到实战(一)
  • Java 在Word文档中添加艺术字
  • 打印机打印数量和碳粉监视器 2.2--PrintLimit Print Tracking
  • 懒惰型性格分析,如何改变懒惰型性格?
  • C# 免费离线人脸识别 2.0 Demo
  • gf框架之分页模块(五) - 自定义分页
  • Linux快速复制或删除大量小文件
  • magento 货币换算
  • Markdown 语法简单说明
  • PAT A1050
  • Tornado学习笔记(1)
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 七牛云假注销小指南
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 小试R空间处理新库sf
  • 写给高年级小学生看的《Bash 指南》
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 再次简单明了总结flex布局,一看就懂...
  • 阿里云ACE认证之理解CDN技术
  • 昨天1024程序员节,我故意写了个死循环~
  • (TOJ2804)Even? Odd?
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (图)IntelliTrace Tools 跟踪云端程序
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转)EOS中账户、钱包和密钥的关系
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)Sublime Text3配置Lua运行环境
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .net core 6 集成和使用 mongodb
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • [MongoDB]------windos下的安装部署与基础使用
  • [NOI 2016]优秀的拆分
  • [OC]UILabel 文字长的截断方式
  • [Prism]Composite Application Guidance for WPF(9)——命令
  • [Qt]QMainWindow
  • [RK-Linux] RK3399支持M.2 NVMe SSD启动
  • [Rust学习:二]变量和传参