文本分类工具集
- 多模型,相对统一的数据输入,方便效果对比
- 可直接用于生产
- 使用相对简单
使用和fastText一样的数据输入
测试数据可以从fastText的代码中下载然后copy到./datasets/dbpedia
目录下
具体方法, 参照fatText的文档,运行其中的classification-example.sh
就能得到dbpedia.train
和dbpedia.test
注意:类别标签是从1开始的,因为在后面训练的时候需要做pad 0 的操作,为了避免混淆。
一个例子如下:
__label__7 , joseph purdy homestead
__label__13 , forever young ( 1992 film )
__label__11 , nepenthes ' boca rose
__label__6 , mv eilean bhearnaraigh
在train/main.sh
指定相关的训练样本路径
TRAIN_FILE=./datasets/dbpedia/dbpedia.train
TEST_FILE=./datasets/dbpedia/dbpedia.test
# 使用的模型 可选cnn, bilstm, clstm
MODEL=cnn
# 中间文件输出路径
DATA_OUT_DIR=./datasets/dbpedia/
# 模型输出路径
MODEL_OUT_DIR=./results/dbpedia/
生成word2vec的训练数据
./main.sh pre
训练词向量
./main.sh vec
这一步产生需要的映射文件
./main.sh map
产生tfrecord 文件
./main.sh data
模型训练
./main.sh train
导出成pb文件,可用Java,Go语言读取
./main export
在predict.py
中有例子,读取上面训练好导出的模型,和产生的vocab.json
文件
TextRNN、TextCNN,CLstm 模型能共用这个模块
- 根据最新的tensorflow重构代码
- 修改tfrecord 文件的格式,产生多分而不是一份
- 添加tensorboard
计划实现更多模型,包括但不限于下面这些