基于Bi-LSTM-CRF的中文命名实体识别(简单源码解析)

这篇博客主要解析基于Bi-LSTM-CRF的中文命名实体识别源码,不深入探讨LSTM和CRF算法原理,而是通过源码理解其工作方式。文章包含模型整体图,并在结尾提供简洁的源码链接。
摘要由CSDN通过智能技术生成

概述

这篇博文主要进行源码的一些解析,至于像LSTM和CRF这种算法的原理不做过多的解释,在代码中它们也被简单的封装成一两行代码。CRF的理论至今很少见到比较详尽易懂的博客,基本是怼公式,我看得也是云里雾里,为了快速上手,还是决定从源码搞起,先把东西做了,再补细节。

代码部分

还是先放一张模型的整体图,希望大家有个整体的把握。
在这里插入图片描述
主要的就三层,look-up,lstm,crf,架构还是比较清晰的。这模型已经出来三年了,网上开源代码一大堆,在本文结束的地方,我会放上一个比较简单源码的链接。

main

先从主函数看起,前面是一些参数的设置,这边都写在了主函数里面,其实可以另外配置一个参数设置文件。

import tensorflow as tf
import numpy as np
import os, argparse, time, random
from model import BiLSTM_CRF
from utils import str2bool, get_logger, get_entity
from data import read_corpus, read_dictionary, tag2label, random_embedding


## Session configuration
os.environ['CUDA_VISIBLE_DEVICES'] = '0'

#屏蔽了一些打印日志,只显示ERROR
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'  # default: 0

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
config.gpu_options.per_process_gpu_memory_fraction = 0.2  # need ~700MB GPU memory


## hyperparameters

##一些参数的设置
parser = argparse.ArgumentParser(description='BiLSTM-CRF for Chinese NER task')
parser.add_argument('--train_data', type=str, default='data_path', help='train data source')
parser.add_argument('--test_data&
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值