zoukankan      html  css  js  c++  java
  • 一个基于RNN的实体抽取工具

    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格式。

  • 相关阅读:
    myEclipse项目转成Eclipse项目
    struts1.2上传多个文件
    mysql数据库无法连接(JDBC)java.net.ConnectException: Connection timed out
    【转载】showModalDialog returnValue is undefined in Google Chrome
    开发规范浅谈
    【转载】JExcelApi(JXL)学习笔记
    【转载】解决window.showModalDialog 模态窗口中location 打开新窗口问题
    Response attachment filename 中文乱码
    解决java.lang.IllegalArgumentException: Can't load standard profile: LINEAR_RGB.pf
    进程、线程、协程对比
  • 原文地址:https://www.cnblogs.com/little-horse/p/15086590.html
Copyright © 2011-2022 走看看