一行代码使用BERT生成句向量,BERT做文本分类、文本相似度计算
Go to file
2019-01-30 10:39:56 +08:00
data 修改验证集 2019-01-30 10:39:56 +08:00
__init__.py 添加代码 2019-01-29 18:31:51 +08:00
.gitignore Create .gitignore 2019-01-29 19:01:04 +08:00
args.py 添加代码 2019-01-29 18:31:51 +08:00
extract_feature.py 添加代码 2019-01-29 18:31:51 +08:00
extract_features_or.py 添加代码 2019-01-29 18:31:51 +08:00
graph.py 添加代码 2019-01-29 18:31:51 +08:00
modeling.py 添加代码 2019-01-29 18:31:51 +08:00
optimization.py 添加代码 2019-01-29 18:31:51 +08:00
README.md 修改验证集 2019-01-30 10:39:56 +08:00
requirements.txt 添加代码 2019-01-29 18:31:51 +08:00
similarity.py 修改验证集 2019-01-30 10:39:56 +08:00
tokenization.py 添加代码 2019-01-29 18:31:51 +08:00

bert-utils

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

1、下载BERT中文模型

下载地址: https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip

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

3、句向量生成

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

from bert.extrac_feature import BertVector
bv = BertVector()
bv.encode(['你好'])

4、文本分类

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

训练:

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中自带了蚂蚁金服的测试数据供大家使用