Utilisation de Bert pour l'extraction d'attribut dans Knowledgegraph avec deux méthode, du réglage fin et de l'extraction de fonctionnalités.
Graphique de connaissance Baidu Encyclopedia Caractor Entry Attribut Extraction, Des expériences ont été réalisées en utilisant la méthode de réglage fin et d'extraction de fonctions du réglage fin basé sur Bert.
Tensorflow >=1.10
scikit-learn
BERT-Base, Chinese : chinois simplifié et traditionnel, 12 couches, 768, 12 têtes, 110 m de paramètres
Aucun
L'ensemble de données est construit selon les entrées de caractères de Baidu Encyclopedia. Filtrez le corpus qui ne contient pas d'entités et d'attributs.
Les entités et les attributs sont obtenus à partir de la reconnaissance des entités de nom.
Les étiquettes sont obtenues auprès de l'encyclopédie Baidu Infobox, et la plupart d'entre eux sont étiquetés manuellement, donc certains ne sont pas très bons.
Par exemple:
黄维#1904年#1#黄维(1904年-1989年),字悟我,出生于江西贵溪一农户家庭。
陈昂#山东省滕州市#1#邀请担任诗词嘉宾。1992年1月26日,陈昂出生于山东省滕州市一个普通的知识分子家庭,其祖父、父亲都
陈伟庆#肇庆市鼎湖区#0#长。任免信息2016年10月21日下午,肇庆市鼎湖区八届人大一次会议胜利闭幕。陈伟庆当选区人民政府副区长。
strip.py peut obtenir des données rayéesdata_process.py peut traiter les données pour obtenir une entrée de fichier Numpyparameters est les paramètres dont le modèle exécute a besoin Par exemple avec un ensemble de données sur le lieu de naissance:
réglage fin
run_classifier.py pour obtenir des sorties de probabilité prévues python run_classifier.py
--task_name=my
--do_train=true
--do_predict=true
--data_dir=a
--vocab_file=/home/tiny/zhaomeng/bertmodel/vocab.txt
--bert_config_file=/home/tiny/zhaomeng/bertmodel/bert_config.json
--init_checkpoint=/home/tiny/zhaomeng/bertmodel/bert_model.ckpt
--max_seq_length=80
--train_batch_size=32
--learning_rate=2e-5
--num_train_epochs=1.0
--output_dir=./outputproba2metrics.py pour obtenir un résultat final avec une mauvaise classificationExtraction des fonctionnalités
extract_features.py pour obtenir la représentation vectorielle des données de train et de test au format de fichier JSON python extract_features.py
--input_file=../data/birth_place_train.txt
--output_file=../data/birth_place_train.jsonl
--vocab_file=/home/tiny/zhaomeng/bertmodel/vocab.txt
--bert_config_file=/home/tiny/zhaomeng/bertmodel/bert_config.json
--init_checkpoint=/home/tiny/zhaomeng/bertmodel/bert_model.ckpt
--layers=-1
--max_seq_length=80
--batch_size=16json2vector.py pour transférer le fichier JSON vers la représentation vectoriellerun_classifier.py pour utiliser les méthodes d'apprentissage automatique pour faire la classification, MLP est généralement le meilleur Les résultats prévus et le corpus mal classé sont enregistrés dans le résultat du résultat.
Par exemple, avec un ensemble de données sur le lieu de naissance en utilisant la méthode de réglage fin, le résultat est:
precision recall f1-score support
0 0.963 0.967 0.965 573
1 0.951 0.946 0.948 389
Ce projet est concédé sous licence MIT