项目概述
BERT-Relation-Extraction 项目提供了一种基于 PyTorch 的关系提取模型实现。这些模型依据2019年ACL会议所发表的论文《Matching the Blanks: Distributional Similarity for Relation Learning》的方法构建。该项目虽然不是论文的官方仓库,但实现了多个关系提取模型,包括 ALBERT 和 BioBERT。
项目要求
使用该项目需要满足以下基础环境条件:
- Python 3.8 及以上版本。
安装所需的 Python 包和 Spacy 的大英文模型,可以通过以下命令实现:
python3 -m pip install -r requirements.txt
python3 -m spacy download en_core_web_lg
另外,项目中使用了预训练的 BERT、ALBERT 和 BioBERT 模型,这些模型可以在 HuggingFace 和其他来源找到。例如,BioBERT 模型可以从 dmis-lab 的 GitHub 中下载并解压到 ./additional_models
文件夹下。
预训练:BERTEM + MTB 方法
项目中提供了一种名为 “匹配空白”(Matching the Blanks)的预训练方法。通过运行 main_pretraining.py
文件并传入相应参数,可以使用来自 CNN 数据集的预训练数据进行模型的训练。预训练数据可为任意连续文本文件,本项目通过 Spacy NLP 从文本中提取实体对来形成训练的关系语句。
值得注意的是,预训练的速度取决于可用的 GPU 资源。不过,即使不进行预训练,直接微调关系抽取任务也能达到不错的效果。
微调:SemEval2010 第8项任务
对于微调,项目使用了 SemEval2010 Task 8 数据集。可以通过运行 main_task.py
文件并提供相应参数来进行微调。数据集需要从提供的 GitHub 链接下载并解压到 ./data/
文件夹中。
预测
项目支持句子的关系推断。用户只需在感兴趣的句子中标注待检测的两个实体,模型即可预测它们之间的关系。例如:
Type input sentence ('quit' or 'exit' to terminate):
The surprise [E1]visit[/E1] caused a [E2]frenzy[/E2] on the already chaotic trading floor.
系统将返回关系预测结果,例如:Cause-Effect(e1,e2)
。
FewRel 任务
项目同样支持 FewRel 任务,用户需要下载 FewRel 1.0 数据集并解压至 ./data/
文件夹,然后通过运行 python main_task.py --task fewrel
来启动任务。
基准测试结果
SemEval2010 第8项任务
- 基础架构:BERT base uncased 模型
- 未使用 MTB 预训练:在 100% 的训练数据下进行训练,F1 得分显示模型性能。
- 基础架构:ALBERT base uncased 模型
- 未使用 MTB 预训练:同样在 100% 的训练数据下进行训练。
项目改进计划
后续计划包括:利用 MTB 预训练进行基准测试推断和 FewRel 任务的优化。
通过这个简单易懂的介绍,相信读者对 BERT-Relation-Extraction 项目有了基本的认识和理解。项目不仅展示了 BERT 模型的多样化应用,还提供了详细的使用方法,使其在关系提取领域具有广泛的应用潜力。