BERT AttributeExtraction
1.0.0
2つの方法、微調整と特徴抽出を備えた知識グラフの属性抽出にBERTを使用します。
ナレッジグラフBAIDU百科事典の文字入力属性抽出、BERTに基づく微調整微調整および機能抽出法を使用して実験を実施しました。
Tensorflow >=1.10
scikit-learn
BERT-Base, Chinese :中国語の簡素化された伝統的な12層、768層、12頭、110mパラメーター
なし
データセットは、Baidu百科事典のキャラクターエントリに従って構築されています。エンティティと属性を含まないコーパスを除外します。
エンティティと属性は、名前エンティティ認識から取得されます。
ラベルはBaidu Encyclopedia Infoboxから入手しており、それらのほとんどは手動でラベル付けされているため、あまり良くないものもあります。
例えば:
黄维#1904年#1#黄维(1904年-1989年),字悟我,出生于江西贵溪一农户家庭。
陈昂#山东省滕州市#1#邀请担任诗词嘉宾。1992年1月26日,陈昂出生于山东省滕州市一个普通的知识分子家庭,其祖父、父亲都
陈伟庆#肇庆市鼎湖区#0#长。任免信息2016年10月21日下午,肇庆市鼎湖区八届人大一次会议胜利闭幕。陈伟庆当选区人民政府副区长。
strip.py縞模様のデータを取得できますdata_process.pyを実行してデータを処理してnumpyファイル入力を取得できますparametersファイルは、モデルが必要とするパラメーターですたとえば、Birthplaceデータセットの場合:
微調整
run_classifier.pyを実行して、予測される確率出力を取得します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を実行して、誤った分類で最終結果を取得します機能抽出
extract_features.pyを実行して、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を実行してjsonファイルをベクトル表現に転送しますrun_classifier.py実行するには、機械学習方法を使用して分類を行うために、MLPは通常最適です予測された結果と誤分類されたコーパスは、結果監督に保存されます。
たとえば、微調整方法を使用したBirthplace Datasetの場合、結果は次のとおりです。
precision recall f1-score support
0 0.963 0.967 0.965 573
1 0.951 0.946 0.948 389
このプロジェクトは、MITライセンスの下でライセンスされています