Giter Site home page Giter Site logo

ccf-bdci-automotive-field-asc-2018's Introduction

CCF-BDCI2018 汽车领域ASC挑战赛

以前没接触过ASC、TSC领域,最开始纠结这是单分类还是多分类问题,走了一些弯路。最终我们回到ASC赛道上,根据直觉,我们设计了一个基于memory的lstm-attention模型,复赛B榜线上在0.69左右,融合最终得分0.70,单模型结构图如下:

后面时间比较紧张,复现今年ASC论文的代码效果都不好,最终排名6/1701,思路如同代码所写,很简单。

原始数据可在比赛数据处下载,由于这次我们问题建模方式比较多,数据预处理代码也比较多,所以我会上传一份处理好的数据(包括处理好的Bert特征和百度百科词向量)放在百度云盘,下载后请解压放在data/目录下。

ELMo哈工大基于pytorch的pretrain版本和我用tf pretrain训练集的效果都不好,但是我也保留了tf pretrain版本代码。

Bert我们没有弄finetune,直接抽取的特征,效果和百度百科词向量相当。

若有任何想法可以提issue或者pull request,也可以微信与我直接讨论。希望大家一起学习进步。

一、环境

环境/库 版本
Ubuntu 16.04.5 LTS
python 3.6
jupyter notebook 4.2.3
tensorflow-gpu 1.9.1
numpy 1.14.1
pandas 0.23.0
matplotlib 2.2.2
tqdm 4.24.0

这里最重要的就是我们用的Cudnn版本的lstm,所以需要tensorflow版本大于1.4.0,相应的cuda版本不能用8.0,需要9.0及以上。

二、数据预处理

都写在jupyter里了,运行src/preprocess/EDA.ipynb生成各种文件,可用看看思路,但是建议直接下载云盘处理好的结果。

三、深度模型训练

数据预处理好即可用直接train模型,单GPU运行,模型请参考src/config.py自选,参数名含义请参考src/train_predict.py

python train_predict.py --gpu 7 --model aspv0 --feature word --epoch 20 --bs 128 --oe

四、模型融合输出

python stacking.py --gpu 1 --data_type 3

这里是stackingpesudo label一起做了,请修改代码自选是否用伪标签。

这里数据集比较合适,伪标签有一定提分作用。

五、提交结果

修改src/pack_sub_dt2.py里对应stacking生成的pre_path概率结果路径,运行

python python pack_sub_dt2.py

生成提交结果。

ccf-bdci-automotive-field-asc-2018's People

Contributors

nlpjoe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ccf-bdci-automotive-field-asc-2018's Issues

结果里没有情感词输出

跑完结果融合后发现 sentiment_word没有像 要求的那样输出 情感词,请教如何能得到 "太贵了" "不舒服" 这些情感词

数据增强

我看你train_predict中训练数据拼接了round2zh2jp.csv,round2zh2en.csv数据,这些数据是先把原文用翻译成日语(英语)然后翻译回中文,增加一定扰动性,用以做数据增强的么?

模型实现细节问题

最近Fork了楼主的代码,楼主实力确实强,顶礼膜拜。下面有几点实现细节问题想问下楼主,烦请回答下。

  1. Aspect Embedding初始化问题。
    我看了实现代码,发现Aspect Embedding是随机初始化的,通过模型自主进行学习。我也看到楼主用预训练的表示进行初始化,代码被注释掉了。我想问下楼主,这两者在实际情况下的效果差别?另外,还有,楼主采用了两次Aspect Tile,Attention之前一次,Attention之后一次,我想问下楼主这样做的原因是什么?
  2. Early Stop与Learning rate decay问题
    我看代码中其实采用了Early Stop及Learning rate decay,但是代码被注释掉了,我想问下前后的差别有多少?
  3. dev 验证及batch扩充问题
    最后一个是小问题,我看代码中将dev放在train的batch遍历中,采用step进行控制,传统的我见过的,都是先训练完train,然后进行dev,我想问下这两者哪一个是标准的?
    对于batch扩充问题,楼主采用对不足的部分进行复制,以前看有的代码采用对于整个数据进行随机扩充为batch_size的整数倍,另外想问下对于TF的动态batch_size的实现问题(采用assign?),楼主有好的思路?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.