mOKB6
收藏mOKB6 数据集概述
数据集描述
mOKB6 是一个用于多语言开放知识库补全任务的数据集,包含 42K 个事实,涵盖六种语言:英语、印地语、泰卢固语、西班牙语、葡萄牙语和中文。
数据结构
数据集位于 ./mokb6/mono/ 文件夹中,包含六个单语种开放知识库:
- 英语开放知识库:
./mokb6/mono/mono_en - 印地语开放知识库:
./mokb6/mono/mono_hi - 泰卢固语开放知识库:
./mokb6/mono/mono_te - 西班牙语开放知识库:
./mokb6/mono/mono_es - 葡萄牙语开放知识库:
./mokb6/mono/mono_pt - 中文开放知识库:
./mokb6/mono/mono_zh
每个单语种开放知识库文件夹包含三个文件:train.txt、valid.txt 和 test.txt,这些文件包含以 (subject, relation, object) 形式表示的制表符分隔的开放信息抽取三元组。
数据集复现
为了复现实验结果,提供了翻译的开放知识库事实。每个基线对应的训练数据位于 ./mokb6/ 文件夹中。例如,最佳基线(除英语外)Union+Trans 使用的数据位于 ./mokb6/union+trans/ 文件夹中。
模型
在 mOKB6 数据集上,使用了来自 CaRe、GRU-ConvE 和 SimKGC 的知识图谱嵌入模型进行基准测试。提供了 SimKGC 模型的代码,该模型表现最佳。
运行指南
环境要求
- python>=3.7
- torch>=1.6
- transformers>=4.15
安装
bash conda create --name mokb python=3.7 conda activate mokb pip install -r requirements.txt
数据预处理
创建 data 目录并预处理单语种开放知识库数据:
bash
mkdir data
sh sh_preprocess_mono_okbs.sh
设置环境变量并预处理数据: bash baseline_data=./mokb6/union+trans/union+trans_en2hi baseline_name=union+trans_en2hi python convert_format_mokb.py --train ${baseline_data}/train.txt --val ${baseline_data}/valid.txt --test ${baseline_data}/test.txt --out_dir ./data/${baseline_name} python3 preprocess.py --train-path ./data/${baseline_name}/train.txt --valid-path ./data/${baseline_name}/valid.txt --test-path ./data/${baseline_name}/test.txt --task mopenkb
训练
设置 batch_size 并训练模型:
bash
batch_size=256
python3 main.py --model-dir ./checkpoint/${baseline_name} --pretrained-model bert-base-multilingual-cased --pooling mean --lr 3e-5 --train-path ./data/${baseline_name}/train.txt.json --valid-path ./data/${baseline_name}/valid.txt.json --task mopenkb --batch-size ${batch_size} --print-freq 20 --additive-margin 0.02 --use-amp --use-self-negative --finetune-t --pre-batch 0 --epochs 100 --workers 3 --max-to-keep 0 --patience 10 --seed 2022
评估
设置语言变量并评估模型: bash language=hi python3 evaluate.py --task mopenkb --pretrained-model bert-base-multilingual-cased --is-test --eval-model-path ./checkpoint/${baseline_name}/model_best.mdl --train-path data/mono_${language}/train.txt.json --valid-path data/mono_${language}/test.txt.json
引用
如果使用或扩展本工作,请引用:
@inproceedings{mittal-etal-2023-mokb6, title = "m{OKB}6: {A} {M}ultilingual {O}pen {K}nowledge {B}ase {C}ompletion {B}enchmark", author = "Mittal, Shubham and Kolluru, Keshav and Chakrabarti, Soumen and -, Mausam", booktitle = "Proceedings of the 61st Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers)", month = jul, year = "2023", address = "Toronto, Canada", publisher = "Association for Computational Linguistics", url = "https://aclanthology.org/2023.acl-short.19", pages = "201--214", }



