目录:NYT-Wiki数据集分析
【数据集分析】NYT-Wiki关系抽取数据集分析(一)—— 理解单条实例
【数据集分析】NYT-Wiki关系抽取数据集分析(二)—— 统计类别和实例数
【数据集分析】NYT-Wiki关系抽取数据集分析(三)—— 绘制Relation分布图
第一节,我们查看了每条数据的组成,并将每条数据都转化成json格式,方便后续操作对数据的取用。
本节统计一下数据集。
1. 统计数据集
目的就是填写下面表格中。
数据集 | 类别数(关系数) | 实例数(句子数) |
---|---|---|
Train Set | ||
Valid Set | ||
Test Set |
获取上表所示统计信息包括两步:
- 读数据集,
- 统计每个数据集中class和intances的个数。
2.代码
2.1 用json格式的数据集
import json
def dataset_description(path):
rel_list = [] # 存放relation的列表
count = 0 # 存放instances的计数
with open(path, 'r', encoding = 'utf-8') as f:
lines = f.readlines()
for line in lines:
line = json.loads(line) #loads后面括号中是字符串, load后面括号中写文件名字
if line['relation'] not in rel_list:
rel_list.append(line['relation'])
count = len(lines)
print(str(path)+"中类别数{},实例数{}".format(len(rel_list), count))
return rel_list, count
rel_list, count = dataset_description(train_path)
rel_list, count = dataset_description(valid_path)
rel_list, count = dataset_description(test_path)
2.2 用原数据集
def dataset_description()
rel_list = []
count = 0
with open(path, 'r', encoding = 'utf-8') as f:
for line in f.readlines():
line = line.strip().split('\t') #loads后面字符串, load(文件名字)
if line[4] not in rel_list:
rel_list.append(line[4])
count += 1
return rel_list, count