美文网首页
bert的使用

bert的使用

作者: 你说你要一场 | 来源:发表于2019-05-23 17:24 被阅读0次

1.预测词
很容易实现,预测定理性的词语效果比较好,预测句子中间的词语效果比较好。
当预测其他领域的语句和句子末尾的词的时候,效果比较差。
实现如下:

import sys
import codecs
import numpy as np
from keras_bert import load_trained_model_from_checkpoint, Tokenizer

config_path, checkpoint_path, dict_path ='/home/h/models/chinese_L-12_H-768_A-12/bert_config.json',\
'/home/h/models/chinese_L-12_H-768_A-12/bert_model.ckpt','/home/h/models/chinese_L-12_H-768_A-12/vocab.txt'

model = load_trained_model_from_checkpoint(config_path, checkpoint_path, training=True)

token_dict = {}
with codecs.open(dict_path, 'r', 'utf8') as reader:
    for line in reader:
        token = line.strip()
        token_dict[token] = len(token_dict)
token_dict_inv = {v: k for k, v in token_dict.items()}

tokenizer = Tokenizer(token_dict)

text = '怎么添加农历初一、十五的提醒'
test_str="提醒"
pos = text.index(test_str)
index=[_+pos+1 for _ in range(len(test_str))]
print("index:",index)

tokens = tokenizer.tokenize(text)
for s in index:
    tokens[s]='[MASK]'



indices = np.array([[token_dict[token] for token in tokens] + [0] * (512 - len(tokens))])
segments = np.array([[0] * len(tokens) + [0] * (512 - len(tokens))])
masks = np.array([[0]*index[0]+[1, 1] + [0] * (512 - index[0]-2)])

predicts = model.predict([indices, segments, masks])[0].argmax(axis=-1).tolist()
print('Fill with: ', list(map(lambda x: token_dict_inv[x], predicts[0][index[0]:index[0]+len(test_str)])))

第二段中,不断修改第一二行,就可以实现各种预测和对应结果。

  1. 预测下一个句子
    词语预测的都是不是特别好,预测句子更不靠谱。
    我不太明白为什么示例句子中都是先给好了要预测的句子,如果把这种信息传进去还谈什么预测呢。

3.生成句向量,供下游任务使用
我在判断句子相似度上使用bert生成的句向量,然后用余弦相似度计算相似性,替换每个词为近义词的句子,相似度为96%,无关的句子也有90%、91%。不知道是不是我的衡量方式不好,还是应该之选取最大的就可以了。
再试试其他衡量形似度的方法。

相关文章

  • Bert使用随笔

    Bert使用 使用Bert模型 其中bert_config是BertConfig类,bert内部是从json配置文...

  • BERT使用心得经验分享

    使用Bert有一段时间了,在项目中确实也能带来提升,这里总结下bert的使用心得。 1,资源的使用 Bert在训练...

  • tensorflow.python.framework.erro

    使用Bert生成句向量,使用github上的bert-utils项目使用方式为 报以下信息错误: 看到github...

  • BERT微调模型

    使用BERT和Pytorch构建BERT微调模型,当然这里使用Pytorch的原因是用来比赛是比较方便的。 部分代...

  • bert的使用

    1.预测词很容易实现,预测定理性的词语效果比较好,预测句子中间的词语效果比较好。当预测其他领域的语句和句子末尾的词...

  • 使用BERT进行fine-tuning

    Github上BERT的README里面已经给出了相当详细的使用说明,GOOGLE BERT地址。Fine-tun...

  • transformers中的bert用法

    1. Bert模型下载 这里直接使用huggingface提供的pre-trained的bert模型,直接去官网即...

  • Bert PyTorch 实现

    本文主要介绍如何使用PyTroch复现BERT。在此之前可以先阅读文章BERT详解(附带ELMo、GPT 介绍[h...

  • bert初步使用

    环境构建 pip install bert-serving-server pip install bert-ser...

  • feature-based 和 fine-tune

    Feature-based 以bert预训练语言模型为例,bert使用大规模无标注数据训练了一个transform...

网友评论

      本文标题:bert的使用

      本文链接:https://www.haomeiwen.com/subject/ovtbzqtx.html