Home

Awesome

Chinese NER

基于Bi-GRU + CRF 的中文机构名、人名识别 集成GOOGLE BERT模型

下载bert模型

wget -c https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip

放到根目录 bert_model

用法

# 训练
# 使用bert模型
python3 model.py -e train -m bert
# 使用一般模型
python3 model.py -e train


# 预测
# 使用bert模型
python3 model.py -e predict -m bert
# 使用一般模型
python3 model.py -e predict

介绍

bert 模型的加载和使用

def bert_layer(self):
    # 加载bert配置文件
    bert_config = modeling.BertConfig.from_json_file(ARGS.bert_config)

    # 创建bert模型 
    model = modeling.BertModel(
        config=bert_config,
        is_training=self.is_training,
        input_ids=self.input_ids,
        input_mask=self.input_mask,
        token_type_ids=self.segment_ids,
        use_one_hot_embeddings=False
    )
    # 加载词向量
    self.embedded = model.get_sequence_output()
    self.model_inputs = tf.nn.dropout(
        self.embedded, self.dropout
    )

bert 优化器

self.train_op = create_optimizer(
    self.loss, self.learning_rate, num_train_steps, num_warmup_steps, False
)

例子

> 金树良先生,董事,硕士。现任北方国际信托股份有限公司总经济师。曾任职于北京大学经济学院国际经济系。1992年7月起历任海南省证券公司副总裁、北京华宇世纪投资有限公司副总裁、昆仑证券有限责任公司总裁、北方国际信托股份有限公司资产管理部总经理及公司总经理助理兼资产管理部总经理、渤海财产保险股份有限公司常务副总经理及总经理、北方国际信托股份有限公司总经理助理。
>   [
        {
          "begin": 14,
          "end": 26,
          "entity": "北方国际信托股份有限公司",
          "type": "ORG"
        },
        {
          "begin": 70,
          "end": 82,
          "entity": "北京华宇世纪投资有限公司",
          "type": "ORG"
        },
        {
          "begin": 99,
          "end": 111,
          "entity": "北方国际信托股份有限公司",
          "type": "ORG"
        },
        {
          "begin": 160,
          "end": 172,
          "entity": "北方国际信托股份有限公司",
          "type": "ORG"
        },
        {
          "begin": 0,
          "end": 3,
          "entity": "金树良",
          "type": "PER"
        }
    ]