Usando o BERT para extração de atributos no KnowledgeGraph com dois métodos, ajuste fino e extração de recursos.
Conhecimento GRAPEL BAIDU ENCYCLOPEDIA Extração de atributos de entrada de caracteres, as experiências foram realizadas usando o método de ajuste fino e extração de recursos baseado em Bert.
Tensorflow >=1.10
scikit-learn
BERT-Base, Chinese : chinês simplificado e tradicional, 12 camadas, 768 parâmetros de 12 cabeças, 110m
Nenhum
O conjunto de dados é construído de acordo com as entradas de caracteres da Encyclopedia Baidu. Filtre o corpus que não contém entidades e atributos.
Entidades e atributos são obtidos do reconhecimento de entidades de nomes.
Os rótulos são obtidos da enciclopédia Baidu InfoBox, e a maioria deles é rotulada manualmente, para que alguns não sejam muito bons.
Por exemplo:
黄维#1904年#1#黄维(1904年-1989年),字悟我,出生于江西贵溪一农户家庭。
陈昂#山东省滕州市#1#邀请担任诗词嘉宾。1992年1月26日,陈昂出生于山东省滕州市一个普通的知识分子家庭,其祖父、父亲都
陈伟庆#肇庆市鼎湖区#0#长。任免信息2016年10月21日下午,肇庆市鼎湖区八届人大一次会议胜利闭幕。陈伟庆当选区人民政府副区长。
strip.py pode obter dados listradosdata_process.py pode processar dados para obter entrada de arquivo numpyparameters são os parâmetros que executam a necessidade do modelo Por exemplo, com o conjunto de dados do local de nascimento:
afinação
run_classifier.py para obter saídas de probabilidade previstas 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 para obter o resultado final com classificação erradaExtração de recursos
extract_features.py para obter a representação vetorial dos dados de trem e teste no formato de arquivo 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 para transferir o arquivo JSON para a representação vetorialrun_classifier.py para usar os métodos de aprendizado de máquina para fazer classificação, o MLP geralmente faz o melhor Os resultados previstos e o corpus classificado incorretamente são salvos no resultado.
Por exemplo, com o conjunto de dados do local de nascimento usando o método de ajuste fino, o resultado é:
precision recall f1-score support
0 0.963 0.967 0.965 573
1 0.951 0.946 0.948 389
Este projeto está licenciado sob a licença do MIT