三、NLP中的句子关系判断

句子关系判断是指判断句子是否相似,是否包含,是否是问答关系等,常应用在文本去重、检索(用户输入和文档的相关性)、推荐(和用户喜好文章是否相似)等场景中。

3.0、文本相似度计算

3.0.0 传统机器学习判断句子相似度

首先,将句子对转换成向量,参考第零章节给出的方法。

其次,计算句子间的距离,计算距离的常用方式:

(1)欧式距离:

(2)曼哈顿距离:

(3)切比雪夫距离

(4)余弦相似度

(5)Jaccard系数(词袋模型适用)

(6)皮尔逊相关系数

以下是计算示例

两个向量:X = [80, 85, 90, 75, 95]
Y = [70, 75, 85, 60, 90]
平均分:
meanX = (80 + 85 + 90 + 75 + 95) / 5 = 85
meanY = (70 + 75 + 85 + 60 + 90) / 5 = 76
协方差:
Cov(X, Y) = [(80-85)*(70-76) + (85-85)*(75-76) + (90-85)*(85-76) + (75-85)*(60-76) + (95-85)*(90-76)] / 5
= (-5 * -6 + 0 * -1 + 5 * 9 + -10 * -16 + 10 * 14) / 5 = 75
标准差:
σX = √[((80-85)^2 + (85-85)^2 + (90-85)^2 + (75-85)^2 + (95-85)^2) / 5]
= √[(25 + 0 + 25 + 100 + 100) / 5]
= √[50] ≈ 7.07
σY = √[((70-76)^2 + (75-76)^2 + (85-76)^2 + (60-76)^2 + (90-76)^2) / 5]
= √[(36 + 1 + 81 + 256 + 196) / 5]
= √[114] ≈ 10.68
皮尔逊相关系数:
r = Cov(X, Y) / (σX * σY) = 75 / (7.07 * 10.68) ≈ 1.06

(7)汉(海)明距离(需要基于one-hot编码)

就是对两个向量中每一位进行异或(xor)运算,并计算出异或运算结果中1的个数。例如[1,1,0]和[0,1,1]这两个向量,对它们进行异或运算,其结果是110⊕011=101,海明距离即为2

(8)编辑距离

Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑(加词、减词、移词)操作次数,如果它们的距离越大,说明它们越是不同。RD最常见的算法题之一。

(9)SimHash

一种搜索常用的相似度算法【深度好文】simhash文本去重流程

3.0.1 深度模型判断句子相似度

总的可以分为单塔和双塔模型。

单塔模型:先将输入文本合并,然后输入到单一的神经网络模型。在单塔模型下,我们需要把两句文本通过[SEP]进行拼接,将拼接好的数据喂给模型,通过output中的[CLS] token做一个二分类任务。准确率高,计算慢。因为有多少对相似的句子,就需要拼接多少次。

双塔模型:对输入文本分别进行编码成固定长度的向量,通过文本的表示向量进行交互计算(计算方式可参考少一节(1)中的内容)得到文本之间的关系,也可训练自己的分类器,如LR/GBDT/SVM等等进行进一步的分类。图中的brt可以换成ernie等其他模型,计算的快,工业界常用的方式,但准确率不如单塔。

其余方法,可参考:21个经典深度学习句间关系模型

3.1 语义关系推理

任务描述:从前提句中推理得到假设句子,通常推理包括蕴含、中立和矛盾。

常用方法:单塔和双塔模型,和相似度判断类似,可参考3.0的内容,只需将相似的二分类判断改为三分类即可。

3.2 问答对判断等

方法与句子关系判断类似。

相关推荐

  1. 句子最多单词数

    2024-03-14 16:20:05       39 阅读
  2. NLP和chatGpt关系

    2024-03-14 16:20:05       9 阅读
  3. PTA:输出句子每个单词长度

    2024-03-14 16:20:05       37 阅读
  4. NLP嵌入层

    2024-03-14 16:20:05       39 阅读
  5. Leetcode14-判断句子是否为全字母句(1832)

    2024-03-14 16:20:05       46 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 16:20:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 16:20:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 16:20:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 16:20:05       18 阅读

热门阅读

  1. uni-app网络请求封装及发送

    2024-03-14 16:20:05       22 阅读
  2. HTML本地离线缓存?

    2024-03-14 16:20:05       19 阅读
  3. Android apk 打包及签名

    2024-03-14 16:20:05       23 阅读
  4. 有效的正方形(LeetCode 593)

    2024-03-14 16:20:05       24 阅读
  5. leetcode 2864.最大二进制奇数

    2024-03-14 16:20:05       22 阅读
  6. 力扣爆刷第94天之hot100五连刷56-60

    2024-03-14 16:20:05       22 阅读
  7. 如何将服务器数据迁移到另一台服务器?

    2024-03-14 16:20:05       19 阅读
  8. ECMAScript 语法

    2024-03-14 16:20:05       22 阅读
  9. 安装antv

    2024-03-14 16:20:05       18 阅读
  10. C#处理文件

    2024-03-14 16:20:05       18 阅读
  11. el-menu + el-badge 菜单加红点标识el-badge

    2024-03-14 16:20:05       22 阅读
  12. 精读《寻找框架设计的平衡点》

    2024-03-14 16:20:05       20 阅读
  13. SpringBoot有哪些优缺点呢

    2024-03-14 16:20:05       18 阅读
  14. Compound Words(UVA 10391)

    2024-03-14 16:20:05       22 阅读