BERT文本相似度实战

Bert 文本相似度实战(使用详解)

大家好!其实 BERT 的实战代码已经很多了,也被诸多大佬引用和实验过。这篇主要用来记录自己在使用与处理时注意到的点,私以为比较适合BERT小白快速上手。

当修改模型后,并没有跑通,或查看完整代码,欢迎大家查看我的github (lixuanhng)

参考资料

这篇笔记主要参考了一个智能客服的项目,项目地址请点击这里。其中主要借鉴了该项目的子项目chatbot_retrieval中的文本相似度计算代码。

另外还想说明的是在本篇笔记中,我不打算再详细说明如何下载代码和预训练模型了,请随机找一篇讲述bert的博客,就能找到这部分内容。总结来说,对于将要使用bert模型的使用者,首先应该下载bert代码,其中主要包含了

modeling.py
optimization.py
tokenization.py
run_classifier.py

等代码。当我们做文本相似度模型时,主要改造的是 run_classifier.py

同时,我们还应当下载bert中文预训练模型, chinese_L-12_H-768_A-12.zip 解压后可以看到

bert_config.json 是BERT在训练时可选调整参数
bert_model.ckpt.meta 开头的文件是负责模型变量载入的
bert_model.ckpt.data-00000-of-00001
bert_model.ckpt.index
vocab.txt 中文词表文件

至此,我们的准备工作就算是完成了。

代码准备

能够完整的跑完bert的代码,需要准备以下几个文件。

数据

首先,我们需要准备一份数据。对于文本相似度的任务,数据格式为每行是一组句子对,并使用0或1标注句子对中两个句子是否相似,0表示不相似,1表示相似。

如果在自己场景下的数据并没有那么多,可以寻找一些开源的数据集。这里我们以蚂蚁金服的智能客服对话数据集作为测试数据集。数据结构为句子1,句子2,标签,三项之间由制表符隔开。例如:

为什么我申请额度输入密码就一直是那个页面 为什么要输入支付密码来验证 0

数据相关检查与下载,请移步github (lixuanhng)

参数配置文件

在跑通代码之前,我们需要对代码的超参数进行配置。这里选择新建一个python文件,将超参数全部指定在该文件中。在 run_classifier.py 中只要将超参数python文件导入进去即可。在超参数python文件中,我们主要关注的是以下几个方面的参数值。

bert_config_file bert配置文件bert_config.json的路径
vocab_file 词表文件vocab.txt的路径
data_dir 数据路径,要分成train, test, dev三个文件,类型为csv
out_put 模型输出地址
init_checkpoint 预训练模型bert_model.ckpt的路径
task_name 任务名称为 sim

其余参数不变,完整的参数设置代码可见下图(使用时需修改自己的各文件路径):

class Config():

    def __init__(self):
        self.bert_config_file = '/bert_dir/bert_config.json'
        self.vocab_file = 'bert_dir/vocab.txt'
        self.data_dir = os.path.join(basedir2, 'data/bert_sim/')
        self.output_dir = basedir2 + '/Bert_sim/results'
        self.predict_file = basedir2 + '/data/bert_sim/dev.txt'
        self.test_file = basedir2 + '/data/bert_sim/test.txt'
        self.init_checkpoint = '/bert_dir/bert_model.ckpt'
        self.train_checkpoint = basedir2 + '/Bert_sim/results'

        self.do_lower_case = True
        self.verbose_logging = False
        self.master = None
        self.version_2_with_negative = False
        self.null_score_diff_threshold = 0.0
        self.use_tpu = False
        self.tpu_name = None
        self.tpu_zone = 
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值