【数据集分析】NYT-Wiki关系抽取数据集分析(二)—— 统计类别和实例数

目录:NYT-Wiki数据集分析

【数据集分析】NYT-Wiki关系抽取数据集分析(一)—— 理解单条实例
【数据集分析】NYT-Wiki关系抽取数据集分析(二)—— 统计类别和实例数
【数据集分析】NYT-Wiki关系抽取数据集分析(三)—— 绘制Relation分布图

第一节,我们查看了每条数据的组成,并将每条数据都转化成json格式,方便后续操作对数据的取用。

本节统计一下数据集。

1. 统计数据集

目的就是填写下面表格中。

数据集 类别数(关系数) 实例数(句子数)
Train Set
Valid Set
Test Set

获取上表所示统计信息包括两步:

  1. 读数据集,
  2. 统计每个数据集中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

猜你喜欢

转载自blog.csdn.net/xiangduixuexi/article/details/107055274