bert-base-chinese 判断上下句

利用BERT等模型来实现语义分割。BERT等模型在预训练的时候采用了NSP(next sentence prediction)的训练任务,因此BERT完全可以判断两个句子(段落)是否具有语义衔接关系。这里我们可以设置相似度阈值 MERGE_RATIO ,从前往后依次判断相邻两个段落的相似度分数是否大于MERGE_RATIO ,如果大于则合并,否则断开。

python 复制代码
import torch
from transformers import BertModel,BertTokenizer
#加载字典和分词工具,即tokenizer
tokenizer= BertTokenizer.from_pretrained('bert-base-chinese')  # 要跟预训练模型相匹配
#加载预训练模型
model= BertModel.from_pretrained('bert-base-chinese')
TEMPERATURE = 1 #温度函数 自定义
MERGE_RATIO = 0.9 #阈值分数 自定义

def is_nextsent(sent, next_sent):

        encoding = tokenizer(sent, next_sent, return_tensors="pt",truncation=True, padding=False)

        with torch.no_grad():
            outputs = model(**encoding, labels=torch.LongTensor([1]))
            logits = outputs.logits
            probs = torch.softmax(logits/TEMPERATURE, dim=1)
            next_sentence_prob = probs[:, 0].item()

        if next_sentence_prob <= MERGE_RATIO:

            return False
        else:
            return True
相关推荐
月疯4 天前
bert的架构解析
人工智能·深度学习·bert
Jialu.7 天前
模型压缩实战:BERT 量化从 390MB 到 146MB 的实践
人工智能·深度学习·bert
Kobebryant-Manba7 天前
学习Bert微调
人工智能·学习·bert
2601_962077717 天前
基于Python与NLP的新闻事件信息抽取实战:从NER到时空标准化
python·nlp·transformers·spacy·新闻事件抽取
LlmCraft|大模型工程实践8 天前
08 预训练语言模型:BERT 与 GPT
人工智能·深度学习·nlp
空堂与归9 天前
序列数据怎么喂给神经网络?用循环神经网络RNN拆开一个时间步
人工智能·rnn·神经网络·nlp
空堂与归9 天前
RNN记不住长序列怎么办?用 LSTM 三门一通道接旁路
人工智能·rnn·nlp·lstm
DevOpenClub10 天前
多语言内容审核如何避免误翻译:语种检测、纠错与情感分析编排
nlp
Jialu.11 天前
中文 BERT 多任务分类项目:从模型结构到训练细节
人工智能·pytorch·分类·微软·nlp·bert
AIGC大时代11 天前
知网 AIGC 检测在罚什么:均匀句长、低指代、零口癖,并不等于「用过 ChatGPT」
人工智能·chatgpt·nlp·aigc·论文·知网·学术规范