句子相似度计算

##句子相似度计算的方法

  • 句子相似度指的是两个句子之间相似的程度。用于NLP中对话系统、文本分类、信息检索、语义分析等。
  • 句子相似度的计算方法主要分为基于统计的方法(莱文斯坦距离 | 编辑距离)和基于深度学习的方法。
    基于统计的方法:
    BM25
    TFIDF计算
    TextRank算法中的句子相似性
    基于深度学习的方法:
    基于Word2Vec的余弦相似度
    DSSM(Deep Structured Semantic Models)

sentence-similarity
GitHub:https://github.com/yanqiangmiffy/sentence-similarity
问题句子相似度计算,即给定客服里用户描述的两句话,用算法来判断是否表示了相同的语义。
https://github.com/yanqiangmiffy/sent_match

  • 比赛的列表:
    1. Quora Question Pairs 数据集:https://www.kaggle.com/c/quora-question-pairs,
    2. ATEC学习赛:NLP之问题相似度计算 数据集:无
    3. CCKS 2018 微众银行智能客服问句匹配大赛 数据集:无
    4. CHIP 2018-第四届中国健康信息处理会议(CHIP) 数据集:无
    5. 第三届魔镜杯大赛:https://ai.ppdai.com/mirror/goToMirrorDetail?mirrorId=1 数据集:无 方案:有

本文简介:
采用ALBERT和其他基于BERT的模型进行句子对分类任务。
使用PyTorch 实现利用 Hugging face transformers 和 datasets 库来下载预训练模型、实现快速研究实验、访问数据集和评估指标。
该任务是语义文本相似性问题的一部分。你有两对句子,你想对它们之间的文本交互进行建模。
使用的数据集是Microsoft Research Paraphrase Corpus (MRPC),它是 GLUE 基准测试的一部分:您有两个句子,您想预测一个句子是否是另一个句子的释义。评价指标为** F1** 和准确率


126.衡量分类器的好坏。

@我愛大泡泡,来源:答案解析

http://blog.csdn.net/woaidapaopao/article/details/77806273

这里首先要知道TP、FN(真的判成假的)、FP(假的判成真)、TN四种(可以画一个表格)。

几种常用的指标:
精度precision = TP/(TP+FP) = TP/~P (~p为预测为真的数量)
召回率 recall = TP/(TP+FN) = TP/ P
F1值:2/F1 = 1/recall + 1/precision -> F1 = 2* recall * precision /(recall+precision)
ROC曲线:ROC空间是一个以伪阳性率(FPR,false positive rate)为X轴,真阳性率(TPR, true positive rate)为Y轴的二维坐标系所代表的平面。其中真阳率TPR = TP / P = recall, 伪阳率FPR = FP / N


188.下面有关分类算法的准确率,召回率,F1 值的描述,错误的是?()

A. 准确率是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率

B. 召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率

C. 正确率、召回率和 F 值取值都在0和1之间,数值越接近0,查准率或查全率就越高

D. 为了解决准确率和召回率冲突问题,引入了F1分数

正确答案:(C)

解析:对于二类分类问题常用的评价指标是精准度(precision)与召回率(recall)。通常以关注的类为正类,其他类为负类,分类器在测试数据集上的预测或正确或不正确,4种情况出现的总数分别记作:

TP——将正类预测为正类数

FN——将正类预测为负类数

FP——将负类预测为正类数

TN——将负类预测为负类数

由此:

精准率定义为:P = TP / (TP + FP)

召回率定义为:R = TP / (TP + FN)

F1值定义为:F1 = 2 P R / (P + R)

精准率和召回率和F1取值都在0和1之间,精准率和召回率高,F1值也会高,不存在数值越接近0越高的说法,应该是数值越接近1越高。


NLP可以分为自然语言理解(NLU)和自然语言生成(NLG)。在NLU方面,我们拿时下最流行的GLUE(General Language Understanding Evaluation)排行榜举例,其上集合了九项NLU的任务,分别是CoLA、SST-2、MRPC、STS-B、QQP、MNLI、QNLI、RTE、WNLI。可以分为三类,分别是单句任务,相似性和释义任务:

  • 单句任务: CoLA, SST-2
    1. CoLA(The Corpus of Linguistic Acceptability):纽约大学发布的有关语法的数据集,该任务主要是对一个给定句子,判定其是否语法正确,因此CoLA属于单个句子的文本二分类任务;
    2. SST(The Stanford Sentiment Treebank),是斯坦福大学发布的一个情感分析数据集,主要针对电影评论来做情感分类,因此SST属于单个句子的文本分类任务(其中SST-2是二分类,SST-5是五分类,SST-5的情感极性区分的更细致);
  • 相似性任务: MRPC、STS=B、QQP
    3. MRPC(Microsoft Research Paraphrase Corpus),由微软发布,判断两个给定句子,是否具有相同的语义,属于句子对的文本二分类任务;
    4. STS-B(Semantic Textual Similarity Benchmark),主要是来自于历年SemEval中的一个任务(同时该数据集也包含在了SentEval),具体来说是用1到5的分数来表征两个句子的语义相似性,本质上是一个回归问题,但依然可以用分类的方法做,因此可以归类为句子对的文本五分类任务;
    5. QQP(Quora Question Pairs),是由Quora发布的两个句子是否语义一致的数据集,属于句子对的文本二分类任务;
  • 释义任务: MNLI、QNLI、RTE、WNLI
    6. MNLI(Multi-Genre Natural Language Inference),同样由纽约大学发布,是一个文本蕴含的任务,在给定前提(Premise)下,需要判断假设(Hypothesis)是否成立,其中因为MNLI主打卖点是集合了许多不同领域风格的文本,因此又分为matched和mismatched两个版本的MNLI数据集,前者指训练集和测试集的数据来源一致,而后者指来源不一致。该任务属于句子对的文本三分类问题。
    7. QNLI(Question Natural Language Inference),其前身是SQuAD 1.0数据集,给定一个问句,需要判断给定文本中是否包含该问句的正确答案。属于句子对的文本二分类任务;
    8. RTE(Recognizing Textual Entailment),和MNLI类似,也是一个文本蕴含任务,不同的是MNLI是三分类,RTE只需要判断两个句子是否能够推断或对齐,属于句子对的文本二分类任务;
    9. WNLI(Winograd Natural Language Inference),也是一个文本蕴含任务,不过似乎GLUE上这个数据集还有些问题;

中文语言理解测评基准(CLUE)
https://www.cluebenchmarks.com/classification.html
https://www.cluebenchmarks.com/
https://github.com/CLUEbenchmark/CLUE

kaggle U.S. Patent Phrase to Phrase Matching :https://www.kaggle.com/competitions/us-patent-phrase-to-phrase-matching/leaderboard

本文的主要特点是:

  • 端到端 ML 实施(训练、验证、预测、评估)
  • 轻松适应您自己的数据集
  • 促进其他基于 BERT 的模型(BERT、ALBERT、…)的快速实验
  • 使用有限的计算资源进行快速训练(混合精度、梯度累积……)
  • 多 GPU 执行
  • 分类决策的阈值选择(不一定是 0.5)
  • 冻结 BERT 层,只更新分类层权重或更新所有权重
  • 种子设置,可复现结果
安装库和导入
加载数据集
类和函数
参数
训练与验证
预测
评价
实验思路
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值