# TextClassificationImplement **Repository Path**: journey2023/TextClassificationImplement ## Basic Information - **Project Name**: TextClassificationImplement - **Description**: ’达观杯‘文本智能处理挑战赛,文本分类任务的实现,包括一些传统的监督学习算法和深度学习算法,主要基于sklearn/xgb/lgb/pytorch包实现。 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2019-05-07 - **Last Updated**: 2022-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 1 简介 ['达观杯'文本智能处理挑战赛官网](http://www.dcjingsai.com/common/cmpt/“达观杯”文本智能处理挑战赛_竞赛信息.html)
 该库用于'达观杯'比赛的文本分类任务的基础实现,主要包括机器学习(ml)和深度学习(dl)两大部分,机器学习部分基于sklearn/lightgbm包实现,深度学习部使用pytorch深度学习框架。其中,机器学习部分主要包含特征工程和分类器两大部分,特征工程部分主要针对文本分类任务的 hash/lsa/lda/doc2vec特征提取/特征选择/特征组合/特征构造进行了实现,而分类器部分主要有逻辑回归/SVM/随机森林/Bagging/Adaboost/GBDT/Xgboost/LightGBM等。深度学习主要实现了word2vec/构建lstm模型/训练可视化等。(注:此库只是基础实现,并不是最优!!!)
# 2 ml(机器学习) - 1)**运行环境**
sklearn/xgboost/lightgbm
- 2)**文件夹说明**
[data]:用于存放原始数据集。([数据集下载链接](https://pan.baidu.com/s/17UjEEcB2taT_HvU1FC1bCQ))
[features]:用于存放特征工程的代码以及生成的特征文件。
[code]:用于存放训练的代码。
[results]:用于存放测试集的训练结果,以便提交给比赛官方。
[for beginner]:用较为简单的代码格式帮助代码熟练度不够的同学入门,涉及自动调参。(选看)
- 3)**使用案例**
(1)生成tfidf特征
直接运行features文件夹中的**tfidf.py**;
(2)生成lsa特征
运行features文件夹中的**lsa.py**;(注:运行前请确保tfidf特征已经生成)
(3)生成lda特征
运行features文件夹中的**lda.py**;(注:运行前请确保tf特征已经生成)
(4)使用逻辑回归分类器进行训练
修改code文件夹中的**sklearn_config.py**中的*clf_name='lr'*,然后运行**sklearn_train.py**即开始训练。
(5)使用lgb进行训练
修改code文件夹中的**lgb.py**中的*features_path*,然后直接运行**lgb.py**即可开始训练。
- 4)**提高模型分数关键**
(1)特征工程:
做更多更好的特征,然后进行融合,形成新的特征,正常来讲每增加一些有用的特征,模型就会提升一些;
对于article的使用,将article进行和word_seg一样的特征抽取,然后合并到word_seg特征中;
(2)集成学习:
多个好而不同的单模型进行融合,就是将各个模型结果进行投票;
- 5)**比赛新baseline**
用ensemble_spar.py形成的特征 + LinearSVC --> 0.778多(只是简单随便跑的,还未进行调优)
# 3 dl(深度学习) - 1)**运行环境**
pytorch/visdom - 2)**文件夹说明**
[n_pad]:不对句子进行截断或补零。
[pad]:对句子进行截断或补零,以保证输入神经网络里的每条句子长度一样。
[data]:用于存放原始数据集和处理后的数据集。([数据集下载链接](https://pan.baidu.com/s/17UjEEcB2taT_HvU1FC1bCQ))
[models]:用于存放网络结构的文件。
[word2vec]:用于存放训练词向量的代码以及训练词向量的生成文件。
[trained_models]:用于存放训练好的网络模型。
[实验数据]:用于存放实验记录。
[config.py]:用于对网络结构的参数进行设置。
[train.py]:用于对网络的训练 - 3)**使用流程**
(1)先将原始数据集下载至data/data_ori;
(2)运行word2vec/train_word2vec.py训练词向量;
(3)运行data/data_process.py ,对数据进行预处理;
(4)配置config文件进行参数的配置,并保存;
(5)运行train.py进行训练;
- 4)**训练过程**

训练集loss
验证集准确率