python文本分类 top1如何计算_BERT生成句向量,BERT做文本分类、文本相似度计算...

本文介绍如何基于BERT模型进行文本分类和句向量生成。通过下载预训练模型,使用extract_feature.py生成句向量,利用BertSim进行训练、验证和测试,实现文本分类任务。同时,提供了数据集的准备要求和使用说明。
摘要由CSDN通过智能技术生成

bert-utils

本文基于Google开源的BERT代码进行了进一步的简化,方便生成句向量与做文本分类

***** New July 1st, 2019 *****

修改句向量graph文件的生成方式,提升句向量启动速度。不再每次以临时文件的方式生成,首次执行extract_feature.py时会创建tmp/result/graph, 再次执行时直接读取该文件,如果args.py文件内容有修改,需要删除tmp/result/graph文件

修复同时启动两个进程生成句向量时代码报错的bug

修改文本匹配数据集为QA_corpus,该份数据相比于蚂蚁金服的数据更有权威性

1、下载BERT中文模型

2、把下载好的模型添加到当前目录下

3、句向量生成

生成句向量不需要做fine tune,使用预先训练好的模型即可,可参考extract_feature.py的main方法,注意参数必须是一个list。

首次生成句向量时需要加载graph,并在output_dir路径下生成一个新的graph文件,因此速度比较慢,再次调用速度会很快

from bert.extrac_feature import BertVector

bv = BertVector()

bv.encode(['今天天气不错'])

4、文本分类

文本分类需要做fine tune,首先把数据准备好存放在data目录下,训练集的名字必须为train.csv,验证集的名字必须为dev.csv,测试集的名字必须为test.csv, 必须先调用set_mode方法,可参考similarity.py的main方法,

训练:

from similarity import BertSim

import tensorflow as tf

bs = BertSim()

bs.set_mode(tf.estimator.ModeKeys.TRAIN)

bs.train()

验证:

from similarity import BertSim

import tensorflow as tf

bs = BertSim()

bs.set_mode(tf.estimator.ModeKeys.EVAL)

bs.eval()

测试:

from similarity import BertSim

import tensorflow as tf

bs = BertSim()

bs.set_mode(tf.estimator.ModeKeys.PREDICT)

bs.test()

5、DEMO中自带了QA_corpus数据集,这里给出地址, 该份数据的生成方式请参阅附件中的论文The BQ Corpus.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值