# 基于pytorch+bert的中文文本分类
本项目是基于pytorch+bert的中文文本分类。
## 使用依赖
```python
torch==1.6.0
transformers==4.5.1
```
## 相关说明
```
--logs:存放日志
--checkpoints:存放保存的模型
--data:存放数据
--utils:存放辅助函数
--bert_config.py:相关配置
--data_loader.py:制作数据为torch所需的格式
--models.py:存放模型代码
--main.py:主运行程序,包含训练、验证、测试、预测以及相关评价指标的计算
```
在hugging face上预先下载好预训练的bert模型,放在和该项目同级下的model_hub文件夹下。
## 裁判文书分类
数据集地址:[裁判文书网NLP文本分类数据集 - Heywhale.com](https://www.heywhale.com/mw/dataset/625869115fe0ad0017c6a7f7/file)
#### 一般步骤
- 1、在data下新建一个存放该数据集的文件夹,这里是cpws,然后将数据放在该文件夹下。在该文件夹下新建一个process.py,主要是获取标签并存储在labels.txt中。
- 2、在data_loader.py里面新建一个类,类可参考CPWSDataset,主要是返回一个列表:[(文本,标签)]。
- 3、在main.py里面的datasets、train_files、test_files里面添加上属于该数据集的一些信息,最后运行main.py即可。
- 4、在运行main.py时,可通过指定--do_train、--do_test、--do_predict来选择训练、测试或预测。
#### 运行指令
```python
python main.py \
--bert_dir="../model_hub/chinese-bert-wwm-ext/" \
--data_dir="./data/cpws/" \
--data_name="cpws" \
--log_dir="./logs/" \
--output_dir="./checkpoints/" \
--num_tags=5 \
--seed=123 \
--gpu_ids="0" \
--max_seq_len=256 \
--lr=3e-5 \
--other_lr=3e-4 \
--train_batch_size=16 \
--train_epochs=5 \
--eval_batch_size=16 \
--do_train \
--do_test \
--do_predict
```
#### 结果
这里运行了300步之后手动停止了。
```python
{'盗窃罪': 0, '交通肇事罪': 1, '诈骗罪': 2, '故意伤害罪': 3, '危险驾驶罪': 4}
========进行测试========
【test】 loss:22.040314 accuracy:0.9823 micro_f1:0.9823 macro_f1:0.9822
precision recall f1-score support
盗窃罪 0.97 0.99 0.98 1998
交通肇事罪 0.97 0.99 0.98 1996
诈骗罪 0.99 0.98 0.99 1998
故意伤害罪 0.99 0.99 0.99 1999
危险驾驶罪 0.99 0.95 0.97 2000
accuracy 0.98 9991
macro avg 0.98 0.98 0.98 9991
weighted avg 0.98 0.98 0.98 9991
公诉机关指控:1、2015年3月18日18时许,被告人余某窜至漳州市芗城区丹霞路欣隆盛世小区2期工地内,趁工作人员不注意盗走工地内的脚手架扣件70个(价值人民币252元)。2、2015年3月19日13时和17时,被告人余某分两次窜至漳州市芗城区丹霞路欣隆盛世小区2期工地内一楼房一层的中间配电室内,利用随身携带的铁钳盗走该配电室内的电缆线(共计574米,价值人民币4707元)。3、2015年3月21日7时30分许,被告人余某窜至漳州市芗城区丹霞路欣隆盛世小区2期工地内一楼房一层靠东边的配电室内,利用随身携带的铁钳要将该配电室内的电缆线(共156米,价值人民币1279元)盗走时被工地负责人洪某某发现,后被工地保安吴某某抓获并扭送公安机关。公诉机关认为被告人余某的行为已构成××,本案第三起盗窃系犯罪未遂,建议对被告人余某在××至一年六个月的幅度内处以刑罚,并处罚金。
预测标签: 盗窃罪
真实标签: 盗窃罪
==========================
```
# 新闻文本分类
使用的数据集是THUCNews,数据地址:<a href="https://github.com/gaussic/text-classification-cnn-rnn">THUCNews</a>
#### 一般步骤
- 1、在data下新建一个存放该数据集的文件夹,这里是cnews,然后将数据放在该文件夹下。在该文件夹下新建一个process.py,主要是获取标签并存储在labels.txt中。
- 2、在data_loader.py里面新建一个类,类可参考CNEWSDataset,主要是返回一个列表:[(文本,标签)]。
- 3、在main.py里面的datasets、train_files、test_files里面添加上属于该数据集的一些信息,最后运行main.py即可。
- 4、在运行main.py时,可通过指定--do_train、--do_test、--do_predict来选择训练、测试或预测。
#### 运行
```python
python main.py \
--bert_dir="../model_hub/chinese-bert-wwm-ext/" \
--data_dir="./data/cpws/" \
--data_name="cpws" \
--log_dir="./logs/" \
--output_dir="./checkpoints/" \
--num_tags=10 \
--seed=123 \
--gpu_ids="0" \
--max_seq_len=512 \
--lr=3e-5 \
--other_lr=3e-4 \
--train_batch_size=16 \
--train_epochs=5 \
--eval_batch_size=16 \
--do_predict
```
#### 结果
这里运行了800步手动停止了。
```python
{'房产': 0, '娱乐': 1, '教育': 2, '体育': 3, '家居': 4, '时政': 5, '财经': 6, '时尚': 7, '游戏': 8, '科技': 9}
========进行测试========
【test】 loss:76.024950 accuracy:0.9697 micro_f1:0.9697 macro_f1:0.9696
precision recall f1-score support
房产 0.91 0.92 0.92 1000
娱乐 0.99 0.99 0.99 1000
教育 0.97 0.96 0.97 1000
体育 1.00 1.00 1.00 1000
家居 0.98 0.91 0.94 1000
时政 0.98 0.94 0.96 1000
财经 0.96 0.99 0.97 1000
时尚 0.94 1.00 0.97 1000
游戏 0.99 0.99 0.99 1000
科技 0.98 0.99 0.99 1000
accuracy 0.97 10000
macro avg 0.97 0.97 0.97 10000
weighted avg 0.97 0.97 0.97 10000
鲍勃库西奖归谁属? NCAA最强控卫是坎巴还是弗神新浪体育讯如今,本赛季的NCAA进入到了末段,各项奖项的评选结果也即将出炉,其中评选最佳控卫的鲍勃-库西奖就将在下周最终四强战时公布,鲍勃-库西奖是由奈史密斯篮球名人堂提供,旨在奖励年度最佳大学控卫。最终获奖的球员也即将在以下几名热门人选中产生。〈〈〈 NCAA疯狂三月专题主页上线,点击链接查看精彩内容吉梅尔-弗雷戴特,杨百翰大学“弗神”吉梅尔-弗雷戴特一直都备受关注,他不仅仅是一名射手,他会用“终结对手脚踝”一样的变向过掉面前的防守者,并且他可以用任意一支手完成得分,如果他被犯规了,可以提前把这两份划入他的帐下了,因为他是一名命中率高达90%的罚球手。弗雷戴特具有所有伟大控卫都具备的一点特质,他是一位赢家也是一位领导者。“他整个赛季至始至终的稳定领导着球队前进,这是无可比拟的。”杨百翰大学主教练戴夫-罗斯称赞道,“他的得分能力毋庸置疑,但是我认为他带领球队获胜的能力才是他最重要的控卫职责。我们在主场之外的比赛(客场或中立场)共取胜19场,他都表现的很棒。”弗雷戴特能否在NBA取得成功?当然,但是有很多专业人士比我们更有资格去做出这样的判断。“我喜爱他。”凯尔特人主教练多克-里弗斯说道,“他很棒,我看过ESPN的片段剪辑,从剪辑来看,他是个超级巨星,我认为他很成为一名优秀的NBA球员。”诺兰-史密斯,杜克大学当赛季初,球队宣布大一天才控卫凯瑞-厄尔文因脚趾的伤病缺席赛季大部分比赛后,诺兰-史密斯便开始接管球权,他在进攻端上足发条,在ACC联盟(杜克大学所在分区)的得分榜上名列前茅,但同时他在分区助攻榜上也占据头名,这在众强林立的AC
- 1
- 2
- 3
- 4
前往页