本文大多数内容均copy于关系抽取数据集 NYT-10 Semeval2010
一、NYT-10是什么NYT-10数据发布于Riedel et al, 2010这篇论文中 其文本来源于纽约时报New York Times所标注的语料 命名实体是通过 Stanford NER 工具并结合 Freebase 知识库进行标注的。命名实体对之间的关系是链接和参考外部的Freebase知识库中的关系 结合远监督方法所得到的。
二、数据下载 1.OpenNRE数据可直接从这一链接中进行下载 https://github.com/thunlp/OpenNRE/tree/master/benchmark
以其中的download_nyt10.sh为例其内容如下
mkdir nyt10 wget -P nyt10 https://thunlp.oss-cn-qingdao.aliyuncs.com/opennre/benchmark/nyt10/nyt10_rel2id.json wget -P nyt10 https://thunlp.oss-cn-qingdao.aliyuncs.com/opennre/benchmark/nyt10/nyt10_train.txt wget -P nyt10 https://thunlp.oss-cn-qingdao.aliyuncs.com/opennre/benchmark/nyt10/nyt10_test.txt
我的步骤如下
首先需要先安装wget。 使用直接百度得到的安装方法即可。 在需要下载的目标文件下打开cmd。 或者打开cmd然后移动到目标文件下都一样。 将上述4条命令改成如下mkdir nyt10 wget --no-check-certificate -P nyt10 https://thunlp.oss-cn-qingdao.aliyuncs.com/opennre/benchmark/nyt10/nyt10_rel2id.json wget --no-check-certificate -P nyt10 https://thunlp.oss-cn-qingdao.aliyuncs.com/opennre/benchmark/nyt10/nyt10_train.txt wget --no-check-certificate -P nyt10 https://thunlp.oss-cn-qingdao.aliyuncs.com/opennre/benchmark/nyt10/nyt10_test.txt
如果不修改会报错 报错内容如下。 我的是windows系统。
SYSTEM_WGETRC c:/progra~1/wget/etc/wgetrc syswgetrc D:wgetGnuWin32/etc/wgetrc --2021-09-25 23:26:05-- https://thunlp.oss-cn-qingdao.aliyuncs.com/opennre/benchmark/nyt10/nyt10_rel2id.json 正在解析主机 thunlp.oss-cn-qingdao.aliyuncs.com... 119.167.128.167, 119.167.128.167 Connecting to thunlp.oss-cn-qingdao.aliyuncs.com|119.167.128.167|:443... 已连接。 ERROR: cannot verify thunlp.oss-cn-qingdao.aliyuncs.com s certificate, issued by /C BE/O GlobalSign nv-sa/CN GlobalSign Organization Validation CA - SHA256 - G2 : Unable to locally verify the issuer s authority. ERROR: certificate common name *.oss-cn-beijing.aliyuncs.com doesn t match requested host name thunlp.oss-cn-qingdao.aliyuncs.com . To connect to thunlp.oss-cn-qingdao.aliyuncs.com insecurely, use --no-check-certificate . 无法建立 SSL 连接。依次运行上述4条命令。 直接运行shell脚本应该也可以 不过我不会。【 _ |||】
通过这一方法下载会得到总计170 M的数据 2.Tsinghua Cloud 或 Google Drive
Tsinghua Cloud链接:https://link.zhihu.com/?target https%3A//cloud.tsinghua.edu.cn/f/11391e48b72749d8b60a/%3Fdl%3D1
Google Drive链接 没打开过 :https://link.zhihu.com/?target https%3A//drive.google.com/file/d/1eSGYObt-SRLccvYCsWaHx1ldurp9eDN_/view%3Fusp%3Dsharing
通过这一方式会下载得到大约3G的压缩文件 解压后如下所示。
对于其中的protobuf2json.py文件中可以掉到get_entities如下
def get_entities(file_name):
print( Loading entities... )
f open(file_name, rb )
for line in f.readlines():
line line.rstrip()
guid, word, type line.split( t )
guid2entity[guid] { id : guid, word : word, type : type}
f.close()
print( Finish loading, got {} entities totally .format(len(guid2entity)))
将其修改为如下 仅修改第5行
def get_entities(file_name):
print( Loading entities... )
f open(file_name, rb )
for line in f.readlines():
line line.rstrip().decode()
guid, word, type line.split( t )
guid2entity[guid] { id : guid, word : word, type : type}
f.close()
print( Finish loading, got {} entities totally .format(len(guid2entity)))
打开其中的README.md 按照里面的指示需要运行
protoc --proto_path . --python_out . document.proto python protobuf2json.py
要运行第一条就需要先安装protoc。 安装方法百度得到的方法即可。
然后 运行以上两条命令即可。



