bert模型可以做文本主题识别吗_GitHub - jkszw2014/TextClassify_with_BERT: 使用BERT模型做文本分类;面向工业用途...

该博客介绍了如何使用BERT模型进行文本分类,强调了代码库面向工业应用的重要性。作者指出许多现有开源库存在面向学术、忽视实际应用的问题,并提供了一个完善且可以直接部署的解决方案,包括单条文本处理、web服务API接口的实现。通过修改TF Estimator,使得模型可以在GPU上高效运行,并提供了训练、评估、预测的详细步骤,以及如何搭建分类预测服务。
摘要由CSDN通过智能技术生成

TextClassify_with_BERT

使用BERT模型做文本分类;面向工业用途

自己研究了当前开源的使用BERT做文本分类的许多存储库,各有各的缺点。通病就是面向学术,不考虑实际应用。

使用txt、tsv、csv等不同数据集也就算了,有些项目甚至似乎存在bug。所以还是要自己动手解决。

已经较为完整可用,欢迎收藏加关注。有问题可提issue交流。

与同类代码库相比的亮点:

在自定义Processor类中添加了针对单条文本的处理方法。在常规的针对test数据集的predict方法之外添加了针对单条数据的类别预测方法。

编写了简单的web服务,直接搭建对外服务的API接口。

estimator 从 tf.contrib.tpu.TPUEstimator换成 tf.estimator.Estimator,以便在 gpu 上更高效运行。于此同时 model_fn 里tf.contrib.tpu.TPUEstimatorSpec 也修改成 tf.estimator.EstimatorSpec形式,相关调用参数也做了调整。

在转换成较普通的 estimator 后便可以使用常用方式处理,如生成用于部署的 *.pb 文件等。

使用方法:

准备工作

首先要下载BERT-Base中文模型或者从Chinese-BERT-wwm下载全词mask版本并解压到合适的目录;后面需要作为model_dir配置。

单机运行

在arguments.py中修改运行参数。主要是数据目录、BERT目录、模型目录、序列长度、batch大小、学习率等。

如果仅对test.txt执行预测,只需要把 do_predict 设为True,do_train 与do_eval 设置为false。

训练+评估:运行train_eval.py

如果上面步骤进展顺利,恭喜,在输出目录内已经生成了训练和评估结果。屏幕上也打印出了评估准确率等。

测试:先修改自己要测试的问题,运行predict_GPU.py

使用自己的真实数据集。修改训练参数,重新进行训练和评估。

搭建分类预测服务

使用自己的pb模型+开源框架。 【强烈推荐】

运行server.py 【仅供玩耍】

有pb模型自己使用TensorFlow Serving部署

关于用bert-base搭建服务的简介:

在服务器端、客户端安装:pip install bert-base

在PB模型所在目录下新建一个 run.sh文件,写入以下内容:

bert-base-serving-start \

-model_dir ./ \ # 训练输出目录【主要是其他Mode用到】。

-bert_model_dir F:\chinese_L-12_H-768_A-12 # BERT自身的目录。

-model_pb_dir ./ \ # pb模型路径,就填./ 当前目录就行了。。

-mode CLASS \ # 运行模式,分类就是CLASS

-max_seq_len 200 \ # 最大序列长度。要跟训练时参数一致。

运行编写好的run.sh,如果没报错,提示已经开始监听的话就表示服务成功开启。可以使用客户端运行示例了。

非本机运行的话,构造BertClient时需要设置ip参数,例如BertClient(ip=192.168.20.20 )。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值