• 周二. 4月 23rd, 2024

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

一个基于RNN的实体抽取工具

admin

11月 28, 2021

RNN4IE

项目地址:https://github.com/jiangnanboy/RNN4IE

本项目是本人在rnn基础上做的一些改动,用于信息抽取。

中文信息抽取工具。使用RNN的不同结构进行信息抽取,该项目使用pytorch,python开发。

Guide

Intro

目前主要实现中文实体抽取:

训练样本以B、I、O形式进行标注。

Model

模型

  • gru(rnn4ie/gru):此模型利用【gru + crf】进行实体抽取。

  • gru_mhsa(rnn4ie/gru_mhsa):此模型利用【gru + multi-head-self-attention + crf】进行实体抽取。

  • gru_sa(rnn4ie/gru_sa):此模型利用【gru + soft-attention + crf】进行实体抽取。

  • gru_xca(rnn4ie/gru_xca):此模型利用【gru + cross-covariance-attention + crf】进行实体抽取。

Usage

  • 配置文件

    各个model在训练和预测时需加载不同的配置文件config.cfg,各个model的config.cfg内容见:

  • 训练(支持加载预训练的embedding向量)

    from rnn4ie.gru.train import Train
    
    train = Train()
    train.train_model('config.cfg')
    ---------------------------------
    from rnn4ie.gru_mhsa.train import Train
    
    train = Train()
    train.train_model('config.cfg')
    ---------------------------------
    from rnn4ie.gru_sa.train import Train
    
    train = Train()
    train.train_model('config.cfg')
    ---------------------------------
    from rnn4ie.gru_xca.train import Train
    
    train = Train()
    train.train_model('config.cfg')
    
  • 预测

    from rnn4ie.gru.predict import Predict
    
    predict = Predict()
    predict.load_model_vocab('config_cfg')
    result = predict.predict('据新华社报道,安徽省六安市被评上十大易居城市!')
    ---------------------------------
    from rnn4ie.gru_mhsa.predict import Predict
    
    predict = Predict()
    predict.load_model_vocab('config_cfg')
    result = predict.predict('据新华社报道,安徽省六安市被评上十大易居城市!')
    ---------------------------------
    from rnn4ie.gru_sa.predict import Predict
    
    predict = Predict()
    predict.load_model_vocab('config_cfg')
    result = predict.predict('据新华社报道,安徽省六安市被评上十大易居城市!')
    ---------------------------------
    from rnn4ie.gru_xca.predict import Predict
    
    predict = Predict()
    predict.load_model_vocab('config_cfg')
    result = predict.predict('据新华社报道,安徽省六安市被评上十大易居城市!')
    

Evaluate

评估采用的是P、R、F1、PPL等。评估方法可利用scikit-learn中的precision_recall_fscore_support或classification_report。

Install

  • 安装:pip install RNN4IE
  • 下载源码:
git clone https://github.com/jiangnanboy/RNN4IE.git
cd RNN4IE
python setup.py install

通过以上两种方法的任何一种完成安装都可以。如果不想安装,可以下载github源码包

Dataset

这里利用data(来自人民日报,识别的是[ORG, PER, LOC, T, O])中的数据进行训练评估。

预训练embedding向量:sgns.sogou.char.bz2

数据集的格式见data,分为train与dev,其中source与target为中文对应的实体标注。

数据被处理成csv格式。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注