'达观杯'文本智能处理挑战赛官网
该库用于'达观杯'比赛的文本分类任务的基础实现,主要包括机器学习(ml)和深度学习(dl)两大部分,机器学习部分基于sklearn/lightgbm包实现,深度学习部使用pytorch深度学习框架。其中,机器学习部分主要包含特征工程和分类器两大部分,特征工程部分主要针对文本分类任务的 hash/lsa/lda/doc2vec特征提取/特征选择/特征组合/特征构造进行了实现,而分类器部分主要有逻辑回归/SVM/随机森林/Bagging/Adaboost/GBDT/Xgboost/LightGBM等。深度学习主要实现了word2vec/构建lstm模型/训练可视化等。(注:此库只是基础实现,并不是最优!!!)
- 1)运行环境
sklearn/xgboost/lightgbm - 2)文件夹说明
[data]:用于存放原始数据集。(数据集下载链接)
[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多(只是简单随便跑的,还未进行调优)
- 1)运行环境
pytorch/visdom - 2)文件夹说明
[n_pad]:不对句子进行截断或补零。
[pad]:对句子进行截断或补零,以保证输入神经网络里的每条句子长度一样。
[data]:用于存放原始数据集和处理后的数据集。(数据集下载链接)
[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)训练过程