# Noah's Ark: ***N***EZHA Trained J***O***intly and Sep***A***rately with ***H***AN, L***S***TM and Deep Pyr***A***mid Convolutional Neu***R***al Networ***K***s
## 1 文件结构
```
├── dl-----------------基础模型部分
│ ├── code----------------------训练及推理
│ │ ├── test------------------------------推理
│ │ │ ├── cvs_fusion.py------------------------------基础模型结果融合
│ │ │ ├── label1
│ │ │ │ ├── config.py------------------------------模型及训练参数
│ │ │ │ ├── directory.py---------------------------数据集路径
│ │ │ │ ├── dpcnn_infer.py-------------------------DPCNN任务1推理
│ │ │ │ ├── dpcnn.py-------------------------------DPCNN模型定义
│ │ │ │ ├── han_infer.py---------------------------HAN任务1推理
│ │ │ │ ├── han.py---------------------------------HAN模型定义
│ │ │ │ ├── lstm_infer.py--------------------------LSTM任务1推理
│ │ │ │ ├── lstm.py--------------------------------LSTM模型定义
│ │ │ │ └── stopwords.txt--------------------------停用词
│ │ │ └── label2
│ │ │ │ ├── config.py------------------------------模型及训练参数
│ │ │ │ ├── directory.py---------------------------数据集路径
│ │ │ │ ├── dpcnn_infer.py-------------------------DPCNN任务2推理
│ │ │ │ ├── dpcnn.py-------------------------------DPCNN模型定义
│ │ │ │ ├── han_infer.py---------------------------HAN任务2推理
│ │ │ │ ├── han.py---------------------------------HAN模型定义
│ │ │ │ ├── lstm_infer.py--------------------------LSTM任务2推理
│ │ │ │ ├── lstm.py--------------------------------LSTM模型定义
│ │ │ │ └── stopwords.txt--------------------------停用词
│ │ └── train-----------------------------训练
│ │ ├── label1
│ │ │ ├── concat.py------------------------------拼接初赛和复赛训练集,提取任务1标签
│ │ │ ├── config.py------------------------------模型及训练参数
│ │ │ ├── directory.py---------------------------数据集路径
│ │ │ ├── dpcnn_datasets.py----------------------数据预处理
│ │ │ ├── dpcnn.py-------------------------------DPCNN模型定义
│ │ │ ├── dpcnn_train.py-------------------------DPCNN任务1训练
│ │ │ ├── han_datasets.py------------------------数据预处理
│ │ │ ├── han.py---------------------------------HAN模型定义
│ │ │ ├── han_train.py---------------------------HAN任务1训练
│ │ │ ├── lstm_datasets.py-----------------------数据预处理
│ │ │ ├── lstm.py--------------------------------LSTM模型定义
│ │ │ ├── lstm_train.py--------------------------LSTM任务1训练
│ │ │ ├── seed.py--------------------------------设定随机种子
│ │ │ └── stopwords.txt--------------------------停用词
│ │ └── label2
│ │ │ ├── config.py------------------------------模型及训练参数
│ │ │ ├── directory.py---------------------------数据集路径
│ │ │ ├── dpcnn_datasets.py----------------------数据预处理
│ │ │ ├── dpcnn.py-------------------------------DPCNN模型定义
│ │ │ ├── dpcnn_train.py-------------------------DPCNN任务2训练
│ │ │ ├── han_datasets.py------------------------数据预处理
│ │ │ ├── han.py---------------------------------HAN模型定义
│ │ │ ├── han_train.py---------------------------HAN任务2训练
│ │ │ ├── lstm_datasets.py-----------------------数据预处理
│ │ │ ├── lstm.py--------------------------------LSTM模型定义
│ │ │ ├── lstm_train.py--------------------------LSTM任务2训练
│ │ │ ├── seed.py--------------------------------设定随机种子
│ │ │ └── stopwords.txt--------------------------停用词
│ ├── prediction_result---------基础模型不同任务结果拼接
│ │ ├── dpcnnMerge2label.py----------------------------拼接DPCNN任务1和任务2的预测结果
│ │ ├── hanMerge2label.py------------------------------拼接HAN任务1和任务2的预测结果
│ │ ├── label1
│ │ ├── label2
│ │ └── lstmMerge2label.py-----------------------------拼接LSTM任务1和任务2的预测结果
│ └── user_data
│ └── model_data
│ ├── label1
│ └── label2
├── Dockerfile---------定制镜像
├── merge.py-----------基础模型及预训练模型结果融合
├── nezha--------------预训练模型部分
│ ├── corpus_vocab.py------------------------------------制作语料库和词典
│ ├── create_pretraining_data.py-------------------------构建预训练格式数据
│ ├── directory.py---------------------------------------数据集、中间文件、生成文件等路径
│ ├── helper
│ │ ├── adv_training.py--------------------------------Trick:对抗训练
│ │ ├── data_generator.py------------------------------数据生成器
│ │ ├── preprocess.py----------------------------------数据预处理
│ │ ├── seed.py----------------------------------------设定随机种子
│ │ └── warmup_cosine_decay.py-------------------------Trick:Warm Up + 余弦退火
│ ├── joint_predict.py-----------------------------------联合训练策略:推理
│ ├── joint_train_val.py---------------------------------联合训练策略:微调训练
│ ├── merge.py-------------------------------------------分开训练与联合训练结果融合
│ ├── nsp_corpus_vocab.py--------------------------------制作NSP任务的语料库和词典
│ ├── pretrain------------------预训练参数及辅助代码
│ │ ├── bert_config.json
│ │ ├── gpu_environment.py
│ │ ├── modeling.py
│ │ ├── optimization.py
│ │ └── tokenization.py
│ ├── pretraining.py-------------------------------------预训练
│ ├── run.py---------------------------------------------运行脚本
│ ├── separate_category_predict.py-----------------------分开训练策略:任务2推理
│ ├── separate_category_train_val.py---------------------分开训练策略:任务2微调训练
│ ├── separate_predict.py--------------------------------分开训练策略:拼接任务1和任务2的预测结果
│ ├── separate_region_predict.py-------------------------分开训练策略:任务1推理
│ └── separate_region_train_val.py-----------------------分开训练策略:任务1微�