这个仓库是中山大学2022届本科生毕业论文《基于注意力机制和图卷积神经网络的多任务谣言检测》后续优化的代码实现。原论文的代码实现和baseline运行代码在master分支。
基于以前的工作:
- 我们改为使用BERT做为编码器,获得词向量和句向量,随后接入BiGCN或Self-Attention以完成谣言检测和立场分类任务。
- 我们重新整理了数据集,摒弃了旧repo中所有信息塞入JSON文件的做法,改用更规整,更直观的文件存储方式。
- (TODO)我们将同步调整MSA-BiGCN的代码库,使其适配现在的数据集,采用和现模型相同的训练过程,以便比较。
MSA-BiGCN
├── BERT-BiGCN
├── MSA-BiGCN
├── README.md
├── datasets
│ ├── PHEME
│ └── semeval2017-task8
├── log // 可选,用于存放训练记录
├── model // 可选,用于存放模型文件
└── requirements.txt
Python版本python >= 3.8
可通过一下指令安装依赖环境
$ pip install -r requirements.txt
dataset文件中包含了SemEval/PHEME处理后的数据集。其中PHEME数据集所有数据整合在datasets/PHEME/all
目录下,SemEval数据集按照原数据集的任务分类分别整理在data/semeval2017-task8/traindev
和data/semeval2017-task8/test
内。以SemEval数据集为例,文件含义如下:
semeval2017-task8
├── README.md
├── getDataSet.ipynb // 处理数据集的代码
├── process.py // 处理数据集的代码
├── rumorCategory.json // 谣言检测的类别字典
├── stanceCategory.json // 立场分类的类别字典
├── test
│ ├── post_id.txt // 语料中post的id列表,每行存放一个post id
│ ├── post_label.txt // 每个post的立场标签,与post id一一对应,PHEME数据集没有此文件
│ ├── posts.json // 以"post_id: time, text"键值对存储的post信息
│ ├── structures.json // 以"thread_id: structure"键值对存储的thread传播树结构
│ ├── thread_id.txt // 语料中thread的id列表,每行存放一个thread id
│ └── thread_label.txt // 每个thread的立场标签,与thread id一一对应
├── traindev
│ ├── post_id.txt
│ ├── post_label.txt
│ ├── posts.json
│ ├── structures.json
│ ├── thread_id.txt
│ └── thread_label.txt
└── utils.py
使用huggingface库提供的BERT接口实现嵌入功能的模型,详细更改参考目录下README.md
。(尚未更新)
使用glove词嵌入和Self-Attention实现词和文本的嵌入功能的模型版本,详细更改参考目录下README.md
。(尚未更新)