【打卡】医学搜索Query相关性判断学习赛

news2024/5/18 19:29:29

入坑传送门

赛事介绍

文本匹配拥有广泛的应用场景,可以用于去除重复问题和文本相似度中。在本次学习中我们将学习:

  • 如何计算文本之间的统计距离
  • 如何训练词向量 & 无监督句子编码
  • BERT模型搭建和训练

上述步骤都是一个NLP算法工程师必备的基础,从2023.1.4~2023.2.1,我们将逐步从基础出发,逐步解决文本匹配问题。

背景介绍

文本语义匹配是自然语言处理中一个重要的基础问题,NLP 领域的很多任务都可以抽象为文本匹配任务。例如,信息检索可以归结为查询项和文档的匹配,问答系统可以归结为问题和候选答案的匹配,对话系统可以归结为对话和回复的匹配。语义匹配在搜索优化、推荐系统、快速检索排序、智能客服上都有广泛的应用。如何提升文本匹配的准确度,是自然语言处理领域的一个重要挑战。

信息检索:在信息检索领域的很多应用中,都需要根据原文本来检索与其相似的其他文本,使用场景非常普遍。
新闻推荐:通过用户刚刚浏览过的新闻标题,自动检索出其他的相似新闻,个性化地为用户做推荐,从而增强用户粘性,提升产品体验。
智能客服:用户输入一个问题后,自动为用户检索出相似的问题和答案,节约人工客服的成本,提高效率。

让我们来看一个简单的例子,比较各候选句子哪句和原句语义更相近:

原句:“车头如何放置车牌”
比较句1:“前牌照怎么装”
比较句2:“如何办理北京车牌”
比较句3:“后牌照怎么装”
比较结果:

  • 比较句1与原句,虽然句式和语序等存在较大差异,但是所表述的含义几乎相同
  • 比较句2与原句,虽然存在“如何” 、“车牌”等共现词,但是所表述的含义完全不同
  • 比较句3与原句,二者讨论的都是如何放置车牌的问题,只不过一个是前牌照,另一个是后牌照。二者间存在一定的语义相关性
    所以语义相关性,句1大于句3,句3大于句2,这就是语义匹配。

天池比赛🔗

数据集介绍

LCQMC数据集比释义语料库更通用,因为它侧重于意图匹配而不是释义。LCQMC数据集包含 260,068 个带有人工标注的问题对。

  • 包含 238,766 个问题对的训练集
  • 包含 8,802 个问题对的开发集
  • 包含 12,500 个问题对的测试集

LCQMC文本匹配数据集下载🔗

这个数据集的标签是0,1;也就是二分类,比天池的比赛要简单。

评价指标

使用准确率Accuracy来评估,即:

准确率 ( A c c u r a c y ) = 预测正确的条目数 / 预测总条目数 准确率(Accuracy)=预测正确的条目数 / 预测总条目数 准确率(Accuracy)=预测正确的条目数/预测总条目数

也可以使用文本相似度与标签的皮尔逊系数进行评估,不匹配的文本相似度应该更低。

TASK1:数据集读取

train = pd.read_csv('https://mirror.coggle.club/dataset/LCQMC.train.data.zip', 
            sep='\t', names=['query1', 'query2', 'label'])

valid = pd.read_csv('https://mirror.coggle.club/dataset/LCQMC.valid.data.zip', 
            sep='\t', names=['query1', 'query2', 'label'])

test = pd.read_csv('https://mirror.coggle.club/dataset/LCQMC.test.data.zip', 
            sep='\t', names=['query1', 'query2', 'label'])

在这里插入图片描述

TASK2:文本数据分析

步骤1:分析赛题文本长度,相似文本对与不相似文本对的文本长度是否存在差异?

① 从train_data取出标签为1的文本对:
在这里插入图片描述
② 从train_data取出标签为0的文本对:
在这里插入图片描述
③ 比较相似文本对与不相似文本对的长度差(的绝对值)【取的前30对】
在这里插入图片描述

通过上图可以看出大多数不相似文本对的字数差值都在2以上。

步骤2:分析赛题单词和字符个数,在所有文本中包含多少个单词(用jieba进行分析)和字符?

在这里插入图片描述
train_data里面有1386901个词(结巴分词之后的结果)

TASK3:文本相似度(统计特征)

步骤1:对query1和query2计算文本统计特征

【query1和query2文本长度差】
DONE✅

【query1和query2文本单词个数差】
在这里插入图片描述
【query1和query2文本单词差异】
相似文本对:
[[‘爱’], [‘手机’, ‘了’, ‘推荐’, ‘我想’, ‘买个’, ‘新手机’, ‘换个’, ‘想’, ‘求’, ‘我’, ‘丢’], [], [‘上’], [‘怎么’, ‘怎样’], [‘的’, ‘是’], [‘一’, ‘名’], [‘的’], [], [‘位’, ‘后位’, ‘是’], [‘能’], [‘呀’, ‘啊’], [], [‘了’], [‘最’, ‘呢’, ‘他’], [‘如何’, ‘能’, ‘怎样’], [‘的’, ‘现’], [‘里’], [‘一个’], [‘这个’, ‘这’], [‘怎么’, ‘怎样’], [‘这是’, ‘是’, ‘什么’, ‘这个’, ‘请问’], [], [‘问’, ‘关于’], [‘设置’, ‘来电’, ‘三星’, ‘安卓’], [‘您’, ‘你’], [‘怎么’], [‘的’, ‘有’, ‘是’], [], [‘叫’, ‘下’, ‘是’, ‘这个’, ‘这’]]

不相似文本对:
[[‘跑’, ‘男’, ‘她’], [‘孕妇’, ‘睡觉’, ‘晚上’, ‘带’, ‘什么’, ‘戴’, ‘着’, ‘有’, ‘害处’, ‘可以’], [‘上’, ‘把’, ‘的’, ‘无线’, ‘和’, ‘带’, ‘该’, ‘设置’, ‘怎样’, ‘到’], [‘的’, ‘胃’, ‘这’, ‘写’], [‘注销’, ‘的’, ‘后’, ‘建议您’, ‘成功’, ‘可以’], [‘还是’, ‘访客’, ‘了’, ‘呢’, ‘失败’, ‘您’, ‘状态’, ‘校验’, ‘您好’], [‘啊’, ‘是’], [‘课’, ‘练习’], [‘好’, ‘前’, ‘送’, ‘时候’], [‘的’, ‘钱’, ‘欲’, ‘指’, ‘买’], [‘都’, ‘啊’, ‘电视剧’, ‘号’, ‘是’, ‘好’, ‘什么’, ‘网站’, ‘电影’, ‘现在’, ‘最近’, ‘哪些’], [‘的’, ‘有’, ‘钻’, ‘帮’, ‘卖’, ‘刷’, ‘是’, ‘你’, ‘烟’], [‘上’, ‘有’, ‘男性’, ‘耳朵’, ‘上长’, ‘看’, ‘面相’, ‘这里’], [‘的’, ‘月初’, ‘延迟’, ‘和’, ‘是’, ‘因’, ‘周日’, ‘会’, ‘不’, ‘月末’, ‘出现’, ‘小’, ‘工作日’, ‘所以’, ‘二’, ‘一下’, ‘情况’, ‘这个’, ‘属于’, ‘周六’], [‘专门’, ‘中’, ‘为’, ‘国内’, ‘有没有’, ‘好’, ‘哪家’, ‘比较’, ‘行业’], [‘用’, ‘上网卡’, ‘和’, ‘上网’], [‘左’, ‘的’, ‘啊’, ‘女’, ‘右’], [‘怎么样’, ‘的’, ‘是’, ‘刘海’, ‘净化器’, ‘这个’, ‘有用吗’], [‘找回’, ‘重置’, ‘怎么’], [‘的’, ‘挂’, ‘才能’], [‘装修’, ‘福州’, ‘转运’], [‘淘’, ‘大限’, ‘微’], [‘几则’, ‘的’, ‘投资’, ‘名人’], [‘的’, ‘里’, ‘主题曲’], [‘宝盖头’, ‘像’, ‘河水’, ‘与’], [‘的’, ‘想’, ‘骨’, ‘我’, ‘什么’, ‘官场’, ‘找’, ‘叫’], [‘哪部’, ‘动漫’, ‘最’, ‘韩剧’, ‘多’, ‘爱情’, ‘日本’], [‘啊’, ‘塞班岛’, ‘在’, ‘辑’, ‘亲有’, ‘哪位’, ‘是’, ‘张图’, ‘哪里’, ‘这’], [‘账户’, ‘通’, ‘就’, ‘麻烦’, ‘我’, ‘银行卡’, ‘添加’, ‘链接’, ‘可以’, ‘看看’], [‘的’, ‘了’, ‘麻烦’, ‘这边’, ‘操作’, ‘是’, ‘新’, ‘商家’, ‘从’, ‘您好’, ‘在’, ‘使用’, ‘红包’, ‘吗’, ‘这个’, ‘可以’, ‘只能’, ‘一下’]]

【query1和query2文本最长公用字符串长度】
在这里插入图片描述
【query1和query2文本的TFIDF编码相似度】
在这里插入图片描述

步骤2:根据相似度标签,上述哪一个特征最有区分性?

答案是:文本的TFIDF编码相似度!
TFIDF编码越相似,越有可能是标签1;相似度越低,越可能是标签0~

任务4:文本相似度(词向量与句子编码)

步骤1:使用jieba分词,然后使用word2vec训练词向量

明天写🤪

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【GD32F427开发板试用】02-ADC规则组连续采样

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:Stark_GS ADC 简介及特点 器件中集成了一个 12 位 2.6 MSPS 多通道 ADC。 一共有19个多路复用通道:16个外部通道,1个…

office365删除错误发送的邮件

微软喜欢变,office365删个邮件真是不容易。 --管理员登录 Connect-IPPSSession -UserPrincipalName adminmydomain.onmicrosoft.com --创建一个 "deleteemail"的搜索项目,项目名可以任意起,这个名称后面在office365安全合规门户里…

libcurl简介及其编程应用

本文为学习笔记,整合课程内容以及下列文章: 其中,libcurl函数库常用字段解读部分: 参考博文:原文地址 作者:冬冬他哥哥 目录 libcurl简介 libcurl的使用 学会开源包使用的一般步骤 包的解读 重点是看…

Spark 核心编程

文章目录Spark 核心编程一、RDD1、分布式计算模拟(1) 搭建基础的架子(2) 客户端向服务器发送计算任务Spark 核心编程 Spark 计算框架为了能够进行高并发和高吞吐的数据处理,封装了三大数据结构,用于处理不同的应用场景。三大数据结构分别是:…

【数据结构与算法理论知识点】1.1基本概念

1.1基本概念 为什么要学习数据结构与算法? AlgorithmsData StructuresPrograms---- Niklaus Wirth ( Pascal程序设计语言之父、结构化程序设计首创者、图灵奖获得者) 计算机程序:使用计算机求解问题算法是求解问题的步骤的描述:从蛮力到策…

套接字编程(二)UDP服务端与客户端的通信模拟实现

目录 一、前言 二、UDP客户端流程信息 1、创建套接字 2、为套接字绑定地址信息(不推荐) 3、发送数据(将数据放入发送缓冲区中) 4、接收数据(从socket结构体接收缓冲区中取出数据) 5、关闭套接字 三…

机器学习基本概念及问题梳理

前言:整理西瓜书第一、二章中的基本概念 待办:第二章评估方法、性能度量及后续内容未整理 下图梳理机器学习中部分概念 模型评估与选择相关知识点: 错误率(error rate, E):如果在m个样本中有a个样本分类…

WordPress安全指南:19个步骤让您的WordPress安全防线坚如磐石

谈到WordPress安全性,您可以采取很多措施来锁定您的网站,以防止黑客和漏洞影响您的电子商务网站或博客。您最不想发生的事情是一天早上醒来发现您的网站一团糟。因此,今天我们将分享许多技巧、策略和技术,您可以使用这些技巧、策略…

WEBSHELL管理工具流量特征——基础篇

前言 前一阵子帮别人做取证题目,有很多关于WEBSHELL的流量要分析,想起来还有没好好分析过于是准备写篇文章总结一下帮助大家能够快速的辨别WEBSHELL流量,下面我们展开文章来讲。 中国菜刀 这个应该是大家最熟悉的WEBSHELL管理工具&#xf…

NeuRay学习笔记

Neural Rays for Occlusion-aware Image-based Rendering 主页:https://liuyuan-pal.github.io/NeuRay/ 论文:https://arxiv.org/abs/2107.13421 Code:https://github.com/liuyuan-pal/NeuRay 效果: desktop摘要 We present a ne…

一文读懂 UniProt 数据库(2023 最新版)

一、UniProt 数据库介绍 Uniprot (Universal Protein )是包含蛋白质序列,功能信息,研究论文索引的蛋白质数据库,整合了包括EBI( European Bioinformatics Institute),SIB&#xff0…

【面试题】前端最新面试题-浏览器 dom、bom篇

原文见:语雀(https://www.yuque.com/deepstates/interview/fsitlt) ● BOM ● window对象 ○ frames ■ iframe ■ 跨窗口通信 ■ 同源策略/跨域 ○ navigator ● DOM ○ DOM结构 ○ DOM操作 ○ DOM事件 ■ 表单事件 ● 浏览器渲染 ○ 进程、…

Vue组件化编程的组件通信

对于组件化编程,组件之间的通信技术无疑是非常重要的内容,需要将细节牢牢把握。 组件通信,就是子组件放置在父组件内之后,父组件如何向子组件传递参数以及子组件如何与外部组件进行互动。 这部分的知识很重要,需要展开…

基于Ubuntu20.04搭建OpenHarmony v3.0.6的qemu仿真环境

基于Ubuntu20.04搭建OpenHarmony v3.0.6的qemu仿真环境0. 前言1. 安装Ubuntu1.1 更换华为源1.2 安装必要工具2. 下载代码2.1 解压与目录设置3. 配置环境3.1 安装库和工具3.2 设置python版本3.3 安装编译工具hb3.4 切换dash为bash4. 编译4.1 hb构建4.2 启动qemu5. 第二种环境配置…

Java之日期与时间、JDK8新增日期类、包装类、正则表达式、Arrays类、常见算法和Lambda表达式

目录日期与时间DateSimpleDateFormatCalendar概述JDK8新增日期类概述、LocalTime /LocalDate / LocalDateTimeInstantDateTimeFormatterDuration/PeriodchronoUnit包装类正则表达式Arrays类Arrays类概述,常用功能演示Arrays类对于Comparator比较器的支持常见算法选择…

[论文翻译] GIKT: A Graph-based Interaction Model forKnowledge Tracing

摘要随着在线教育的快速发展,知识追踪(KT)已成为追踪学生知识状态并预测他们在新问题上的表现的基本问题。在线教育系统中的问题通常很多,并且总是与更少的技能相关联。然而,以往的文献未能将问题信息与高阶问题-技能相…

计网必会:电路交换和分组交换

电路交换和分组交换的概念和区别,为什么分组交换更有效? 电路交换:由于电路交换在通信之前要在通信双方之间建立一条被双方独占的物理通路(由通信双方之间的交换设备和链路逐段连接而成) 特点是源和目标点建立起名副其…

C语言中的void*是什么?

目录1.void *是什么2.void*的解引用3.void*类型的应用场景1.void *是什么 我们之前学过许多类型的指针变量,如整形指针,字符指针,甚至数组指针,函数指针等。 int a 10; int *pa &a;//整形指针pa接受一个整形变量a的地址但…

阻塞队列-BlockingQueue

一、BlockingQueue介绍BlockingQueue 继承了 Queue 接口,是队列的一种。Queue 和 BlockingQueue 都是在 Java 5 中加入的。阻塞队列(BlockingQueue)是一个在队列基础上又支持了两个附加操作的队列,常用解耦。两个附加操作:支持阻塞…

Win10 每天蓝屏多次,蓝屏代码0x3B:SYSTEM_SERVICE_EXCEPTION

环境: 联想E14笔记本 Win10 专业版 问题描述: Win10 每天发生蓝屏多次,蓝屏代码0x3B:SYSTEM_SERVICE_EXCEPTION 查看事件查看器,系统日志筛选ID1001的事件,蓝屏多次基本上都是3B这错误代码 解决方案: 1.禁用AMD显…