美文网首页深度学习框架--学习之旅
关系抽取实验记录thunlp/NRE

关系抽取实验记录thunlp/NRE

作者: 布口袋_天晴了 | 来源:发表于2019-08-06 22:05 被阅读3次

2018 Robust Distant Supervision Relation Extraction via Deep Reinforcement
2016 Neural Relation Extraction with Selective Attention over Instances
代码: C and TensorFlow

一、tensorflow版本程序运行测试

0.关于OpenNRE

NREPapers
关系抽取框架:嵌入向量(词向量and位置向量) 、编码器(PCNN or CNN or RNN or Bi-RNN)、选择器(注意力、最大和、平均)、分类(softmax多分类)。
OpenNRE提供了句子级别的关系抽取和包级别的关系抽取任务的训练和测试。

1.下载并解压代码

unzip OpenNER-master.zip

2.实验数据集整理

公开原始数据集NYT10 Dataset
数据集及数据转换工具NYT10+Toolkit
数据集格式及存放位置:

3.可用的英文词向量

斯坦福 glove
谷歌 word2vec
词向量、训练集、测试集、关系集处理代码:

import json

def get_data(data_dir):

    list = []
    file = data_dir+'/'+data_dir+'.txt'
    fileObject = open(data_dir+'.json', 'w')
    with open(file, 'r', encoding='utf8') as f:
        line = f.readline().strip()
        while line:
            temp = line.split('\t')
            # print(temp)
            h_id = temp[0]
            t_id = temp[1]
            h = temp[2]
            t = temp[3]
            r = temp[4]
            sent = temp[5]
            d = {'sentence': sent,
                 'head': {'word': h, 'id': h_id},
                 'tail': {'word': t, 'id': t_id},
                 'relation': r}
            list.append(d)
            line = f.readline().strip()

    jsonData = json.dumps(list)
    fileObject.write(jsonData)
    fileObject.close()




def get_rel_data(data_dir):

    rf = data_dir+'/relation2id.txt'
    fileObject = open('rel2id.json', 'w')
    data = dict()
    with open(rf, 'r', encoding='utf8') as f:
        line = f.readline().strip()
        while line:
            temp = line.split(' ')
            print(temp)
            rel = temp[0]
            r_id = temp[1]
            if rel not in data:
                data[rel] = r_id
            line = f.readline().strip()

    jsonData = json.dumps(data)
    fileObject.write(jsonData+'\n')
    fileObject.close()


def get_vec():

    file = 'wiki-news-300d-1M.vec'
    fileObject = open('word_vec.json', 'w')
    list = []
    with open(file, 'r', encoding='utf8') as f:
        line = f.readline().strip()
        line = f.readline().strip()
        while line:
            # print(line)
            temp = line.split(' ')
            word = temp[0]
            vec = temp[1:51]

            if(word.istitle()):
                pass
            else:
                d = {'word': word,'vec': vec}
                list.append(d)
                if(len(list)>=10000):
                    break
            line = f.readline().strip()

    jsonData = json.dumps(list)
    fileObject.write(jsonData)
    fileObject.close()

# get_data(data_dir='test')
# get_data(data_dir='train')
# get_rel_data(data_dir='test')
# get_vec()

4.程序可运行

python train_demo.py nyt pcnn att

相关文章

  • 关系抽取实验记录thunlp/NRE

    2018 Robust Distant Supervision Relation Extraction via D...

  • 远程监督关系抽取DIAG-NRE

    远程监督的核心作用:为关系抽取任务or信息抽取任务,快速地、自动化地生成大量的训练数据集。远程监督的核心弱点:存在...

  • 远程监督与关系抽取DIAG-NRE

    远程监督的核心作用:为关系抽取任务or信息抽取任务,快速地、自动化地生成大量的训练数据集。远程监督的核心弱点:存在...

  • 关系抽取实验debug记录train_demo.py

    0.数据 1.模型需要的输入 2.Embedding层 3.Encoder层 4.Selector层 5.Clas...

  • 关系抽取(分类)总结

    关系抽取(分类)总结 关系抽取研究现状 基于路径的实体图关系抽取模型 ChineseNRE 关系抽取(关系学习)综...

  • 知识图谱学习笔记(八)——事件抽取

    事件抽取 1.事件抽取的任务定义 事件抽取是信息抽取中的难点问题事件抽取依赖实体抽取和关系抽取相较于实体抽取和关系...

  • 实体关系抽取

    实体属性关系抽取 针对语料:通用语料 抽取关系:通用实体关系 抽取级别:句子级别 关系类型(通用文本) 关系类型(...

  • 关系抽取

    一、实体识别的难点,不好建模 比如投资关系。1.方向:投资方和被投方2.复杂,关系多维:投资方有多个,被投资只有一...

  • 知识图谱学习笔记(七)——关系抽取

    关系抽取 1. 关系抽取任务定义 定义:Alexander Schutz等人认为关系抽取是自动识别由一对概念和联系...

  • 实验县抽测梁邹小学

    昨天进行了实验抽测。 主要步骤: 1.从四个年级所有实验中抽取实验,同时确定了班级。 2.根据每班学生名单抽取班级...

网友评论

    本文标题:关系抽取实验记录thunlp/NRE

    本文链接:https://www.haomeiwen.com/subject/dswidctx.html