bert语义相似度计算

bert语义相似性计算,这个和上一块的文本分类模型有点类似,但是segment_ids稍微和文本分类不一样,数据集可以参照蚂蚁金服语义相似度计算的文本(可以搜索蚂蚁金服语义相似比赛数据可以多出下载到),两个句子之间通过[SEP]分割,[CLS]的向量作为分类的输入,标签是两个句子是否相似。可以作为排序算法,代码和上面的文本分类情况一样。

 

度max_length,第一句对应位置(包含[CLS],[SEP])全为0;第二句对应位置(包含结尾[SEP])全为1,padding为0.

 

举例下面两个句子使用【sep】隔开,总体长度设置为30,那么句segment_ids输入就是这个,其余代码和文本分类一样 :

[CLS] 能 不 能 开 花 呗 老 兄 [SEP] 花 呗 逾 期 了 还 能 开 通 [SEP]

0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0

 

tokens: [CLS] 为 何 我 无 法 申 请 开 通 花 呗 信 用 卡 收 款 [SEP] 支 付 宝 开 通 信 用 卡 花 呗 收 款 不 符 合 条 件 怎 么 回 事 [SEP]


input_ids: 101 711 862 2769 3187 3791 4509 6435 2458 6858 5709 1446 928 4500 1305 3119 3621 102 3118 802 2140 2458 6858 928 4500 1305 5709 1446 3119 3621 679 5016 1394 3340 816 2582 720 1726 752 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0



input_mask: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

segment_ids: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
使用pytorch实现BERT语义相似度计算可以分为以下几个步骤: 步骤1:准备数据 首先,需要导入必要的库和模型,如torch、torchvision、transformers等。然后,加载预训练的BERT模型和Tokenizer,如BertTokenizer和BertModel。接着,将输入的文本进行分词处理,并使用Tokenizer将分词后的文本转换为BERT模型可以接受的格式。 步骤2:数据预处理 在此步骤中,需要对输入的文本进行预处理。BERT模型的输入包括input_ids、attention_mask和token_type_ids。input_ids是文本的token序列,attention_mask用于标记哪些token是有效的,token_type_ids用于区分输入的文本句子对。 步骤3:加载BERT模型 使用transformers库加载预训练的BERT模型,如BertModel。然后,将预处理后的数据作为输入传入BERT模型,获取模型的输出。 步骤4:计算语义相似度 BERT模型的输出是一个包含表示文本语义信息的隐藏向量,可以使用这些向量计算语义相似度。常见的计算方式包括余弦相似度和欧氏距离等。 步骤5:评估语义相似度 为了评估语义相似度的性能,可以使用一些标准的评估指标,如Pearson相关系数、Spearman相关系数和Kendall相关系数等。 步骤6:模型训练和优化 可以使用已标注的语义相似度数据进行模型的训练,使用优化方法如反向传播算法和随机梯度下降等来优化模型的参数。 步骤7:模型应用 完成模型的训练后,可以将其应用于实际的语义相似度计算任务中。通过输入两个文本,经过预处理和BERT模型的计算,可以得到它们之间的语义相似度分数。 上述是使用pytorch实现BERT语义相似度计算的主要步骤,具体的实现细节可以根据具体情况和需求进行调整和完善。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值