• Stars
    star
    216
  • Rank 183,179 (Top 4 %)
  • Language
    Python
  • Created over 5 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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 文件等。

使用方法:

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

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

  • 训练+评估:运行train_eval.py

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

  • 测试:先修改自己要测试的问题,运行predict_GPU.py
  1. 使用自己的真实数据集。修改训练参数,重新进行训练和评估。
  2. 搭建分类预测服务
  • 使用自己的pb模型+开源框架。 【强烈推荐】
  • 运行server.py 【仅供玩耍】
  • 有pb模型自己使用TensorFlow Serving部署
  1. 关于用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 )。

More Repositories

1

Final_word_Similarity

综合了同义词词林扩展版与知网(Hownet)的词语相似度计算方法,词汇覆盖更多、结果更准确。
Python
715
star
2

NER_corpus_chinese

NER(命名实体识别)中文语料,一站式获取
126
star
3

py3Aiml_Chinese

官方py3AIML基于英文,现为其增加中文支持,并将代码注释翻译为中文。实测可正常解析带中文pattern和template的aiml文件。
Python
92
star
4

Free_proxy_pool

对免费代理IP网站进行爬取,收集汇总为自己的代理池。关键是验证代理的有效性、匿名性、去重复
Python
75
star
5

crawler-wordCloud_of_hotWeibo

新浪热门微博爬虫,外加词云分析。
Python
19
star
6

spider_for_Books

图书爬虫,已囊括当当、京东……目前字典内容包括了书名、作者、出版社、出版年月、详情描述、评论数量、好评率等。
Python
17
star
7

spider_For_SecondHand_car

有3个爬虫,分别是是瓜子二手车、人人车、优信二手车。
Python
10
star
8

QR_code_aardio

用aardio重写二维码识别与生成工具。只支持Windows平台。软件体积小。
10
star
9

QR_Generator_and_Recognizer

Qt 写的二维码生成和识别程序。使用了libqrencode和QZxing库。
C
3
star
10

Scrapy_Projects

使用Scrapy框架的爬虫项目。根据网站不同,按文件夹组织
Python
3
star
11

Image_Encryptor_and_Decryptor

基于Opencv实现的像素置乱加密解密程序。
C++
3
star
12

ChatScript_Client

ChatScript python客户端。集成了中文分词,对win和liunx服务器采用了不同的字符编码方式
Python
3
star
13

paddlespeech_forme

paddlespeech局部定制版,流式ASR与TTS可接受和输出8k音频
2
star
14

spider_for_XiaoZhu

针对小猪短租的城市站点,爬取前300条房源信息(主要是房子描述、地址、价位,房屋图片链接,房东网名、照片、性别)。
Python
2
star
15

FAQ_Alice

整合了FAQ的ALICE,使用flask做了个本地服务器
Python
1
star
16

spider_For_MMpics

批量下载美女网站图片的爬虫。范围可以自己修改源码设定
Python
1
star