Skip to content

Gnomeek/ChineseSentimentAnalysiswithBERT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chinese Sentiment Analysis with BERT

只需一行代码就可以进行中文文本情感分类(二分类)

不需要手动将数据集分为train,dev,test再转为tsv格式

增加精确率,召回率,F1值作为输出指标

增加Adam优化器

理论上更改部分代码可以就可进行多分类任务

有问题可以发issue询问,请尽可能详细的描述您的问题,我会尽快回复。

如何使用

  1. 下载BERT中文模型,并解压在该目录下

  2. 将你的数据集文件放到data文件夹下,并重命名为"data.csv"。完成这两步后你的项目文件树应该如下:

.
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── __init__.py
├── chinese_L-12_H-768_A-12
│   ├── bert_config.json
│   ├── bert_model.ckpt.data-00000-of-00001
│   ├── bert_model.ckpt.index
│   ├── bert_model.ckpt.meta
│   └── vocab.txt
├── create_pretraining_data.py
├── data
│   ├── adam_output
│   ├── dev.csv
│   ├── ouput
│   ├── test.csv
│   ├── train.csv
│   └── data.csv
├── divide.py
├── extract_features.py
├── freeze_graph.py
├── freezegraph.sh
├── modeling.py
├── modeling_adam.py
├── modeling_test.py
├── multilingual.md
├── optimization.py
├── optimization_adam.py
├── optimization_test.py
├── requirements.txt
├── run.sh
├── run_classifier.py
├── run_classifier_with_tfhub.py
├── run_pretraining.py
├── run_squad.py
├── runadam.sh
├── sample_text.txt
├── svr
│   └── bertsvr.sh
├── tokenization.py
└── tokenization_test.py
  1. 终端下运行 bash run.sh,至此,BERT模型已经成功运行起来了

  2. (可选)在终端下运行bash runadam.sh以运行增加了Adam优化器的BERT模型(需要修改run_classifier中如下内容)

import modeling_adam as modeling
import optimization_adam as optimization
# import modeling 注释如下两行,引入adam模型
# import optimization
  1. 潜在问题:在执行python divide.py时可能会出现错误,建议手动使用该文件分割数据集,并删除每个子数据集首行自动生成的表头(形如label x_train)

  2. 运行此项目需要如下环境

tensorflow >= 1.11.0
bert-base
flask 
flask_compress
flask_cors
flask_json
pickle-mixin

FAQ

Q: 我想执行多分类任务该怎么办?

A: 理论上来说,修改run_classifier.py文件中MyProcessor类的get_labels方法即可

Q: 训练需要多长时间?

A: 我的机器为MistGPU提供的Titan V(12G),数据集大小约为12万条。执行BERT耗时35分钟左右,使用Adam优化器后缩短至17分钟左右。你可以点击链接来注册MistGPU,你和我均会获得8¥代金券,或者可以点击链接来注册,只有你会获得8¥代金券(一切解释权归属MistGPU)。下表为MistGPU部分收费参考表(可能日后会有变动):

机器 收费
Titan V (12G) 3.5¥/h
Tesla P100 (16G) 4¥/h
Titan RTX(24G) 5¥/h

Q: 执行时显示内存不足该怎么办?

A: 根据Google提供的数据,他们在单卡Titan X(12G)下使用的最大参数如下表。你可以根据自己机器的性能修改run.sh中的参数

System Seq Length Max Batch Size
BERT-Base 64 64
... 128 32
... 256 16
... 320 14
... 384 12
... 512 6
BERT-Large 64 12
... 128 6
... 256 2
... 320 1
... 384 0
... 512 0

Q: 如何使用数据集训练自己的句向量

A: 参考Bert-a s-service

Q: 如何将模型部署到服务器上

A: 参考Bert-base

Q: Bert-base 服务无法正常运行

A: 由于部分操作系统下pip安装方式的不同,可能环境变量并未配置完善,需要手动将Bert-base路径添加至环境变量中(export路径或者修改.bashrc等类似文件均可)

About

基于BERT模型的中文文本情感分类

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published