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

    技术2022-07-10  120

    目录:NYT-Wiki数据集分析

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

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

    本节统计一下数据集。

    1. 统计数据集

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

    数据集类别数(关系数)实例数(句子数)Train SetValid SetTest 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
    Processed: 0.020, SQL: 9