向AI转型的程序员都关注了这个号 👇👇👇
人工智能大数据与深度学习 公众号:datayx
汽车厂商需要了解自身产品是否能够满足消费者的需求,但传统的调研手段因为样本量小、效率低等缺陷已经无法满足当前快速发展的市场环境。因此,汽车厂商需要一种快速、准确的方式来了解消费者需求。
本赛题提供一部分网络中公开的用户对汽车的相关内容文本数据作为训练集,训练集数据已由人工进行分类并进行标记,参赛队伍需要对文本内容中的讨论主题和情感信息来分析评论用户对所讨论主题的偏好。
获取代码
关注微信公众号 datayx 然后回复 主题识别 即可获取。
方案概述:
-
我们采用pipeline的方式,将这个任务拆为两个子任务,先预测主题,根据主题预测情感极性(ABSA),这两个任务我们都使用深度学习的方式来解决
-
主题分类是一个多标签分类问题,我们使用BCE来解决多标签问题,我们使用不同的模型不同的词向量(2*4)训练了8个模型,再加上微调的中文BERT,一种九个模型,我们使用stacking的方式在第二层利用LR极性模型融合,得到预测概率,并使用threshold得到最终预测的标签。
-
基于角度的情感分类是一个有两个输入的多分类问题,我们使用了三种比较新的网络设计和四种词向量再加上微调的BERT一共13个模型,同样我们也用LR来做stacking。
运行情感分类模块:
1.训练阶段:(由于训练时间比较长,你可以直接跳到第三步加载我们预训练好的模型)
2.微调Bert阶段:
-
和主题分类类似,但是需要一个aspect预测的结果作为输入。运行data文件夹下的build_test_for_predict.py脚本后, 将生成的test.tsv放在bert/glue_data/polarity_ensemble_online/下即可。
3.使用预训练好的模型:
-
如果不做上面两步长时间的训练可以直接用我们训练好的模型
-
从百度云中下载之后解压到backup_polarity.zip得到60个checkpoint,将backup_bert.zip中的polarity_ensemble_polarity放在bert/glue_data/下。
-
注意文件夹的对应关系
4.预测和stacking阶段:
- 我们首先用BERT模型进行预测,每个fold下有一个model_best.pt的checkpoint,我们通过下面的命令加载它们并进行预测:
python run_classifier_ensemble_polarity.py
--task_name Polarity --do_test --do_predict --do_lower_case --data_dir $GLUE_DIR/polarity_ensemble_online --vocab_file $BERT_BASE_DIR/vocab.txt --bert_config_file $BERT_BASE_DIR/bert_config.json --init_checkpoint $BERT_BASE_DIR/pytorch_model.bin --max_seq_length 128 --train_batch_size 24 --learning_rate 2e-5 --num_train_epochs 10 --output_dir polarity_output_ensemble_online/ --eval_batch_size 32
阅读过本文的人还看了以下:
分享《深度学习入门:基于Python的理论与实现》高清中文版PDF+源代码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码
【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类
如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
Machine Learning Yearning 中文翻译稿
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx
长按图片,识别二维码,点关注
AI项目体验