K BERT
1.0.0
Code SORCE et ensembles de données pour "K -bert: Activation de la représentation du langage avec Graphique de connaissances", qui est implémenté en fonction du cadre UER.
Nouvelles
Logiciel:
Python3
Pytorch >= 1.0
argparse == 1.1
google_model.bin à partir d'ici et enregistrez-le dans les models/ répertoire.CnDbpedia.spo à partir d'ici et enregistrez-le dans le brain/kgs/ répertoire.datasets/ répertoire.L'arbre d'annuaire de K-Bert:
K-BERT
├── brain
│ ├── config.py
│ ├── __init__.py
│ ├── kgs
│ │ ├── CnDbpedia.spo
│ │ ├── HowNet.spo
│ │ └── Medical.spo
│ └── knowgraph.py
├── datasets
│ ├── book_review
│ │ ├── dev.tsv
│ │ ├── test.tsv
│ │ └── train.tsv
│ ├── chnsenticorp
│ │ ├── dev.tsv
│ │ ├── test.tsv
│ │ └── train.tsv
│ ...
│
├── models
│ ├── google_config.json
│ ├── google_model.bin
│ └── google_vocab.txt
├── outputs
├── uer
├── README.md
├── requirements.txt
├── run_kbert_cls.py
└── run_kbert_ner.py
Exemple d'exemple sur la critique de livre avec CNDBpedia:
CUDA_VISIBLE_DEVICES= ' 0 ' nohup python3 -u run_kbert_cls.py
--pretrained_model_path ./models/google_model.bin
--config_path ./models/google_config.json
--vocab_path ./models/google_vocab.txt
--train_path ./datasets/book_review/train.tsv
--dev_path ./datasets/book_review/dev.tsv
--test_path ./datasets/book_review/test.tsv
--epochs_num 5 --batch_size 32 --kg_name CnDbpedia
--output_model_path ./outputs/kbert_bookreview_CnDbpedia.bin
> ./outputs/kbert_bookreview_CnDbpedia.log &Résultats:
Best accuracy in dev : 88.80%
Best accuracy in test: 87.69%
Options de run_kbert_cls.py :
useage: [--pretrained_model_path] - Path to the pre-trained model parameters.
[--config_path] - Path to the model configuration file.
[--vocab_path] - Path to the vocabulary file.
--train_path - Path to the training dataset.
--dev_path - Path to the validating dataset.
--test_path - Path to the testing dataset.
[--epochs_num] - The number of training epoches.
[--batch_size] - Batch size of the training process.
[--kg_name] - The name of knowledge graph, "HowNet", "CnDbpedia" or "Medical".
[--output_model_path] - Path to the output model.
Précision (Dev / Test%) sur différents ensembles de données:
| Ensemble de données | Hownet | CNDBpedia |
|---|---|---|
| Critique de livre | 88.75 / 87.75 | 88.80 / 87.69 |
| Chnsenticorp | 95,00 / 95.50 | 94.42 / 95.25 |
| Achats | 97.01 / 96.92 | 96.94 / 96.73 |
| 98.22 / 98.33 | 98.29 / 98.33 | |
| LCQMC | 88.97 / 87.14 | 88.91 / 87.20 |
| Xnli | 77.11 / 77.07 | 76.99 / 77.43 |
Exécutez un exemple sur l'ensemble de données msra_ner avec CNDBpedia:
CUDA_VISIBLE_DEVICES='0' nohup python3 -u run_kbert_ner.py
--pretrained_model_path ./models/google_model.bin
--config_path ./models/google_config.json
--vocab_path ./models/google_vocab.txt
--train_path ./datasets/msra_ner/train.tsv
--dev_path ./datasets/msra_ner/dev.tsv
--test_path ./datasets/msra_ner/test.tsv
--epochs_num 5 --batch_size 16 --kg_name CnDbpedia
--output_model_path ./outputs/kbert_msraner_CnDbpedia.bin
> ./outputs/kbert_msraner_CnDbpedia.log &
Résultats:
The best in dev : precision=0.957, recall=0.962, f1=0.960
The best in test: precision=0.953, recall=0.959, f1=0.956
Options de run_kbert_ner.py :
useage: [--pretrained_model_path] - Path to the pre-trained model parameters.
[--config_path] - Path to the model configuration file.
[--vocab_path] - Path to the vocabulary file.
--train_path - Path to the training dataset.
--dev_path - Path to the validating dataset.
--test_path - Path to the testing dataset.
[--epochs_num] - The number of training epoches.
[--batch_size] - Batch size of the training process.
[--kg_name] - The name of knowledge graph.
[--output_model_path] - Path to the output model.
Résultats expérimentaux sur les tâches spécifiques au domaine (précision / rappel / f1%):
| Kg | Finance_qa | LAW_QA | Finance_ner | Medicine_ner |
|---|---|---|---|---|
| Hownet | 0,805 / 0,888 / 0,845 | 0,842 / 0,903 / 0,871 | 0,860 / 0,888 / 0,874 | 0,935 / 0,939 / 0,937 |
| Cn-dbpedia | 0,814 / 0,881 / 0,846 | 0,814 / 0,942 / 0,874 | 0,860 / 0,887 / 0,873 | 0,935 / 0,937 / 0,936 |
| MedicalKg | - | - | - | 0,944 / 0,943 / 0,944 |
Ce travail est une étude conjointe avec le soutien de l'Université de Pékin et de Tencent Inc.
Si vous utilisez ce code, veuillez citer cet article:
@inproceedings{weijie2019kbert,
title={{K-BERT}: Enabling Language Representation with Knowledge Graph},
author={Weijie Liu, Peng Zhou, Zhe Zhao, Zhiruo Wang, Qi Ju, Haotang Deng, Ping Wang},
booktitle={Proceedings of AAAI 2020},
year={2020}
}