论文笔记--SentEval: An Evaluation Toolkit for Universal Sentence Representations

论文笔记--SentEval: An Evaluation Toolkit for Universal Sentence Representations

  • 1. 文章简介
  • 2. 文章概括
  • 3 文章重点技术
    • 3.1 evaluation pipeline
    • 3.2 使用
  • 4. 代码
    • 4.1 数据下载
    • 4.2 句子嵌入
    • 4.3 句子嵌入评估
  • 5. 文章亮点
  • 6. 原文传送门
  • 7. References

1. 文章简介

  • 标题:SentEval: An Evaluation Toolkit for Universal Sentence Representations
  • 作者:Alexis Conneau, Douwe Kiela
  • 日期:2018
  • 期刊:arxiv preprint

2. 文章概括

  文章给出了一个可以自动评估NLP句子嵌入向量的开源工具SentEval,思想简单,操作便捷。由于很多当前的语言模型在评估下游任务的时候直接采用该工具包,所以笔者今天来学习一下原论文(也很精简)

3 文章重点技术

3.1 evaluation pipeline

  文章尝试将句子嵌入评估封装为一套简单清晰的pipeline。原文的SentEval支持一下NLP任务的评估

  • 二分类/多分类:包括情感分类(MR, SST)、问答类分类(TREC))、产品评论分类(CR)、主观客观分类(SUBJ)、倾向性分类(MPQA)。文章会将句子嵌入的顶层增加一个Logistic Regression/MLP(Multiple Perceptron)分类器,然后通过10-fold交叉验证评估句子嵌入的性能。
  • 句子蕴含和语义相关性分析:文章选用SICK-E数据集来评估句子蕴含类任务,和上述分类方法一致;针对语义相关性任务,文章使用SICK-R和STS数据集进行评估:数据集包含0~5之间的分值表示两个句子的相似度,文章采用[1]中的句子相关性分析方法来计算句子相关性得分,最后给出采用当前句子嵌入得到的相关性得分和真实得分之间的Pearson/Spearman相关系数作为评估标准。
  • STS语义相似度:文章在SemEval数据集(包括新闻、评论、图像视频描述、标题、新闻对话)上进行相似度评估,该数据集每个句子对应一个0-5之间的相似度得分,文章会计算给定句子嵌入之间的cosine相似度,然后得到cosine相似度和真实相似度之间的Pearson/Spearman相关系数作为评估标准
  • 段落检测:文章采用MRPC数据集用于评估段落检测类NLP任务,该数据集包含句子对及标签,标签反应句子是否为同义/同段落
  • 标题图像检索
    当前SentEval支持的下游任务可在github上查看:
    在这里插入图片描述

3.2 使用

  工具的使用非常简单,开发人员只需要自定义preparebatcher函数,分别用于句子与处理和句子嵌入生成即可。此外开发人员可通过修改params来控制参数

4. 代码

  下面为实际使用SentEval的代码/命令行

4.1 数据下载

  SentEval可通过运行get_transfer_data.bash自动下载全部数据集,读者可以自行注释掉无关的数据集以提升效率/节约存储。下载成功之后数据集会自动存储到data/downstream/文件夹下。

4.2 句子嵌入

  现在我们要评估句子嵌入的表现。假设我们要评估fastText向量(读者可以替换为自己训练的向量),首先通过curl -Lo crawl-300d-2M.vec.zip https://dl.fbaipublicfiles.com/fasttext/vectors-english/crawl-300d-2M.vec.zip下载fasttext/crawl-300d-2M.vec向量,要保证下载路径和bow.py中的PATH_TO_VEC一致,然后将文件解压即可。

4.3 句子嵌入评估

  以bow向量(fastText)为例,SentEval给出了bow.py示例,开发人员可以类似地构造自己的句子嵌入类。首先要构造函数prepare(params, dataset),后续传入评估pipeline中的do_prepare。这里只需要包含必要的预处理即可。
  然后构造函数batcher(params, batch),对传入的句子batch进行嵌入表示,返回嵌入数组,传入评估pipeline中的run()
  最后只需要运行python bow.py即可,可在main方法中将不需要的tasks注释掉。注意如果没有cuda,需要在classifier.py中和cuda相关的注释掉或者改成cpu
  笔者这里只试验了一小部分Vec和一小部分TREC数据,最终可以得到如下评估结果。使用还是非常简单的。
TREC-bow

5. 文章亮点

  文章给出了一种自动评估NLP下游任务/probing任务的工具,可以自动下载多种NLP任务的数据,且将预处理、句子嵌入生成和评估集成为一套pipeline,使用非常便捷,为NLP模型发展提供了便利性,实现NLP学术研究成果评估的一致性。

6. 原文传送门

SentEval: An Evaluation Toolkit for Universal Sentence Representations

7. References

[1] Improved semantic representations from tree-structured long short-term memory networks
[2]

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

96、基于STM32单片机的温湿度DHT11 烟雾火灾报警器蓝牙物联网APP远程控制设计(程序+原理图+任务书+参考论文+开题报告+流程图+元器件清单等)

单片机及温湿度、烟雾传感器是烟雾报警器系统的两大核心。单片机好比一个桥梁,联系着传感器和报警电路设备。近几年来,单片机已逐步深入应用到工农业生产各部门及人们生活的各个方面。各种类型的单片机也根据社会的需求而开发出来。单片机是器件级计算机…

Redis - 附近商铺、用户签到、UV统计

文章目录 附近商铺、用户签到、UV统计一、附近商铺1.1 GEO数据结构1.2 导入店铺数据到GEO1.3 实现附近商户功能 二、用户签到2.1 BitMap2.2 签到功能2.3 统计连续签到2.3.1 分析2.3.2 代码实现 三、UV统计3.1 HyperLogLog用法3.2 测试百万数据的统计 附近商铺、用户签到、UV统计…

LRU 缓存

题目链接 LRU 缓存 题目描述 注意点 如果插入操作导致关键字数量超过 capacity ,则应该 逐出 最久未使用的关键字函数 get 和 put 必须以 O(1) 的平均时间复杂度运行 解答思路 如果想以O(1)的速度进行get,则需要将对应的key、value存到map中如果想…

李子转债上市价格预测

李子转债 基本信息 转债名称:李子转债,评级:AA,发行规模:6.0亿元。 正股名称:李子园,今日收盘价:18.06元,转股价格:19.47元。 当前转股价值 转债面值 / 转股…

RabbitMQ笔记--消息中间件,rabbitmq安装及简单使用

1.消息中间件 消息:指在应用间传送的数据。 消息队列中间件:指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,可以在分布式环境下扩展进程间的通…

Elasticsearch【全文检索、倒排索引、应用场景、对比Solr、数据结构】(一)-全面详解(学习总结---从入门到深化)

目录 Elasticsearch介绍_全文检索 Elasticsearch介绍_倒排索引 Elasticsearch介绍_Elasticsearch的出现 Elasticsearch介绍_Elasticsearch应用场景 Elasticsearch介绍_Elasticsearch对比Solr Elasticsearch介绍_Elasticsearch数据结构 Elasticsearch介绍_全文检索 Elasti…

UILabel左上角对齐

设计有个需求,需要文字两行显示,一行的时候左上角对齐,比较常见的需求。 老的办法一般来说是根据宽计算好frame大小,然后重新设置frame。不过感觉这种方式比较麻烦,想了想能不能通过约束来完成这个事情呢。 本着这个思…

(论文翻译)PRUNING FILTER IN FILTER《滤波器中的剪枝滤波器》

公式不清楚的地方请对照英文原文进行查看:原文链接 ABSTRACT 剪枝已成为现代神经网络压缩和加速的一种非常有效的技术。现有的剪枝方法可分为两大类:滤波器剪枝(FP)和权重剪枝(WP)。与WP相比,FP在硬件兼容性方面胜出,但在压缩比方面失败。为了…

springboot开发PC端桌面应用

一、需求描述: 1、要求桌面能在window、Linux和macos系统上运行 2、用户自定义数据筛选策略,策略可通过excel导入导出 3、选择多个excel文件通过策略过滤生成新的excel 二、技术选型及集成环境配置: 1、PC端跨平台直接选用javafx来作为桌…

SpringBoot + Vue前后端分离项目实战 || 四:用户管理功能实现

系列文章: SpringBoot Vue前后端分离项目实战 || 一:Vue前端设计 SpringBoot Vue前后端分离项目实战 || 二:Spring Boot后端与数据库连接 SpringBoot Vue前后端分离项目实战 || 三:Spring Boot后端与Vue前端连接 SpringBoot V…

从零开始制作一个Web蜜罐扫描器(5)

从零开始制作一个Web蜜罐扫描器(3)_luozhonghua2000的博客-CSDN博客 打开一个蜜罐: 查看源码: 这个./js/portraitjs非常引人注入,点进去看一下 很明显是被混淆过了,结合语义来理解,这是portrait=画像,那么可以大胆猜测这段ison是黑客画像用的.猜测了就要进行验证,这里在…

Kafka request.log中RequestQueueTimeMs、LocalTimeMs、RemoteTimeMs、ThrottleTimeMs、含义

Kafka request.log中RequestQueueTimeMs、LocalTimeMs、RemoteTimeMs、ThrottleTimeMs、含义 要理解各个延时项的含义,必须从Kafka收到TCP请求、处理请求到返回TCP包整个流程开始梳理 RequestQueueTimeMs Processor 执行processNewResponses() 方法,不…

软件工程师,学习下JavaScript ES6新特性吧

概述 作为一名软件工程师,不管你是不是前端开发的岗位,工作中或多或少都会用到一点JavaScript。JavaScript是大家所了解的语言名称,但是这个语言名称是Oracle公司注册的商标。JavaScript的正式名称是ECMAScript。1996年11月,JavaS…

RT-Thread 互补滤波器 (STM32 + 6 轴 IMU)

作者:wuhanstudio 原文链接:https://zhuanlan.zhihu.com/p/611568999 最近在看无人驾驶的 Prediction 部分,可以利用 EKF (Extended Kalman Filter) 融合不同传感器的数据,例如 IMU, Lidar 和 GNSS,从而给出更加准确的…

Go语言github.com/gorilla/websocket框架websocket协议通信实战

websocket是实际开发中比较常用的应用层协议,本文利用github.com/gorilla/websocket框架进行websocket通信实战。 目录 1.下载github.com/gorilla/websocket 2.websocket服务端 3.websocket Go客户端 4.websocket 网页客户端 5.运行结果展示 1.下载github.com…

Red Hat Subscription 开发者订阅与激活订阅

目录 前言 进入开发者页面 创建红帽账户 阅读Red Hat订阅; 激活订阅 查看订阅状态 前言 使用命令时会出现以提示,命令不可正常使用。 根据提示信息,我们可以知道,需要通过Red Hat Subscription,开发者订阅。 …

图像分类——图像增强方法

目录 常用的图像增强方法tf.image进行图像增强翻转和裁剪颜色变换 使用ImageDataGenerator(进行图像增强) 常用的图像增强方法 tf.image进行图像增强 离线实现 import tensorflow as tf import matplotlib.pyplot as plt import numpy as npcatplt.imread(./cat.jpg) plt.ims…

Scala中的集合

水善利万物而不争,处众人之所恶,故几于道💦 目录 一、集合简介 二、集合关系继承图 一、集合简介 Java中的集合: Scala中的集合: Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合…

单片机基于stm32单片机的数字温度计设计_kaic

摘 要 古往今来,陶瓷在我们的生活中一直都是不可或缺的物品,而随着当今社会经济的快速发展,人们对于这些高档陶瓷产品的使用性能和产品质量上的要求也愈加严格。那么在陶瓷品的生产过程中,想要提高陶瓷品的品质和合格率,能够随时监测温度的温度计是必不可少的。 本课题的研究是…

MySQL单表查询练习题

目录 第一题 第二题 第三题 第一题 1.创建数据表pet,并对表进行插入、更新与删除操作,pet表结构如表8.3所示。 (1)首先创建数据表pet,使用不同的方法将表8.4中的记录插入到pet表中。 mysql> create table pet( name varchar(…