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

目录

【数据集分析】TACRED关系抽取数据集分析(一)—— 理解单条实例
【数据集分析】TACRED关系抽取数据集分析(二)—— 统计类别和实例数
【数据集分析】TACRED关系抽取数据集分析(三)—— Relation Distribution
【数据集分析】TACRED关系抽取数据集分析(四)—— train set 和 valid set中是否有重复数据

第一节,我们查看了每条数据的组成,并将每条数据都规范了自己喜欢的Json格式,方便后续操作对数据的取用。

本节统计一下数据集。

1. 统计数据集

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

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

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

  1. 读数据集,
  2. 统计每个数据集中class和intances的个数并对instance数目求和。

2.代码,基于第一节转化格式后的数据集

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, count1 = dataset_description(train_path)
rel_list, count2 = dataset_description(valid_path)
rel_list, count3 = dataset_description(test_path)
print("实例数一共有:",count1+count2+count3)

输出:

tacred_train.txt中类别数42,实例数68124
tacred_valid.txt中类别数42,实例数22631
tacred_test.txt中类别数42,实例数15509
实例数一共有: 106264

参考感谢

[1] TACRED官网:https://nlp.stanford.edu/projects/tacred/

猜你喜欢

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