计算语言学作业
本项目baseline方法及数据集划分来自项目ChID_Baseline
项目原始数据集ChID,并引入外部成语词典数据chinese-xinhua 整理后词典数据集文件data(下载后放到根目录下)
项目数据下载链接(有效期限:2024-12-31 23:59) ,需下载并解压至项目文件夹下
- 将数据集中待填成语数量大于1的数据都替换为多条数据
- 同义词等增广方式
数据使用分为两种方式
-
成语分类:
- 将数据集中3848条成语编号为成语词表
- 每条数据包含:
senetence_token
sentence_mask
idiom_mask
idiom_candidate_index
label
-
成语释义:
- 将所有的成语与对应释义进行拼接,成为
idiom + ':' + explanation
的形式 - 每条数据包含:
senetence_token
sentence_mask
idiom_mask
idiom_candidate_pattern_token
idiom_candidate_pattern_mask
label
- 将所有的成语与对应释义进行拼接,成为
本项目基于在中文语料上预训练的RoBERTa模型进行设计,根据数据的使用方式不同,模型分为两类:分类模型与对比模型
- model/baseline.py、model/ClassifyBert.py
- 输入:
senetence_token
、sentence_mask
、idiom_mask
、idiom_candidate_index
、[label
] - 输出:
predict
- 损失函数:
CrossEntropyLoss
- 评价指标:
Accuracy
- 输入:
- model/DualBert.py、model/ContrastiveBert.py
- 输入:
senetence_token
、sentence_mask
、idiom_mask
、idiom_candidate_pattern_token
、idiom_candidate_pattern_mask
、[label
] - 输出:
predict
- 损失函数:
InfoNCELoss
- 评价指标:
Accuracy
- 输入:
综合模型将两类任务在同一个模型中进行学习。
python train.py --model_type baseline --batch_size 24 --task_type IE --epoch 10 --warm_up_proportion 0.05
python train.py --model_type classify --batch_size 24 --task_type IC --epoch 10 --warm_up_proportion 0.05
python train.py --model_type dual --batch_size 24 --task_type IE --sim_mode cosine_similarity --epoch 10 --warm_up_proportion 0.05
python train.py --model_type dual --batch_size 24 --task_type IE --sim_mode cosine_similarity --idiom_use_cls --epoch 10 --warm_up_proportion 0.05
python train.py --model_type dual --batch_size 24 --task_type IE --sim_mode cosine_similarity --idiom_use_mask --epoch 10 --warm_up_proportion 0.05
python train.py --model_type dual --batch_size 24 --task_type IE --sim_mode cross_attention --epoch 10 --warm_up_proportion 0.05
python train.py --model_type dual --batch_size 24 --task_type IE --sim_mode cross_attention --idiom_use_mask --epoch 10 --warm_up_proportion 0.05
python train.py --model_type baseline --batch_size 24 --task_type IE --epoch 10 --warm_up_proportion 0.05 --use_pretrained_generation
python train.py --model_type dual --batch_size 24 --task_type IE --sim_mode cosine_similarity --epoch 10 --warm_up_proportion 0.05 --use_pretrained_generation
python train.py --model_type dual --batch_size 24 --task_type IE --sim_mode cosine_similarity --idiom_use_cls --epoch 10 --warm_up_proportion 0.05 --use_pretrained_generation
python train.py --model_type dual --batch_size 24 --task_type IE --sim_mode cosine_similarity --idiom_use_mask --epoch 10 --warm_up_proportion 0.05 --use_pretrained_generation
python train.py --model_type dual --batch_size 24 --task_type IE --sim_mode cross_attention --epoch 10 --warm_up_proportion 0.05 --use_pretrained_generation
python train.py --model_type dual --batch_size 24 --task_type IE --sim_mode cross_attention --idiom_use_mask --epoch 10 --warm_up_proportion 0.05 --use_pretrained_generation