bert-utils/README.md

58 lines
1.7 KiB
Markdown
Raw Normal View History

2019-01-29 18:50:08 +08:00
# bert-utils
2019-01-29 18:31:51 +08:00
2019-01-30 10:39:56 +08:00
本文基于Google开源的[BERT](https://github.com/google-research/bert)代码进行了进一步的简化,方便生成句向量与做文本分类
2019-01-29 18:31:51 +08:00
2019-01-29 18:50:08 +08:00
1、下载BERT中文模型
2019-01-29 18:31:51 +08:00
2019-01-29 18:50:08 +08:00
下载地址: https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip
2019-01-29 18:31:51 +08:00
2019-01-29 18:50:08 +08:00
2、把下载好的模型添加到当前目录下
2019-01-29 18:31:51 +08:00
2019-01-29 18:50:08 +08:00
3、句向量生成
2019-01-30 11:12:18 +08:00
生成句向量不需要做fine tune使用预先训练好的模型即可可参考`extract_feature.py`的`main`方法注意参数必须是一个list。
2019-01-30 11:39:49 +08:00
首次生成句向量时需要加载graph并在output_dir路径下生成一个新的graph文件因此速度比较慢再次调用速度会很快
2019-01-29 18:31:51 +08:00
```
from bert.extrac_feature import BertVector
bv = BertVector()
2019-02-26 08:44:14 +08:00
bv.encode(['今天天气不错'])
2019-01-29 18:31:51 +08:00
```
2019-01-29 18:50:08 +08:00
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
2019-01-29 18:57:19 +08:00
```
2019-03-19 11:22:53 +08:00
5、DEMO中自带了蚂蚁金服的测试数据供大家使用但该份数据区分度不大建议使用QA_corpus数据集这里给出[地址](http://icrc.hitsz.edu.cn/info/1037/1162.htm)