统计单个标签的数量

def get_tags_list(input_file):
    #统计NER数据集中标签的种类
    with open(input_file, 'r', encoding='utf-8') as f:
        tags_list = []
        lines = f.readlines()
        seq_sum = 0
        word_sum = 0
        for line in lines:#对每一行
            if line.isspace() == False:
                for i,word in enumerate(line):
                    if word.isspace()==True:
                        word_sum +=1
                        # all_word = line[:i].strip()
                        all_tag = line[i+1:].strip()
                        if all_tag not in tags_list :
                            tags_list.append(all_tag)
                        break
            else:
                seq_sum += 1

    f.close()
    return tags_list,word_sum

def get_tags_num(input_file, tag_list):
    #统计NER数据集中各个标签的数量
    with open(input_file, 'r', encoding='utf-8') as f:
        sum = 0
        tag_id = {}
        for i in tag_list:
            tag_id[i]=0
        # print(tag_id)
        lines = f.readlines()
        for line in lines:
            if line.isspace()==False:
                sum += 1
                for i,word in enumerate(line):
                    if word.isspace()==True:
                        tag = line[i+1:].strip()
                        tag_id[tag]+=1
                        break

            else:
                continue
    return tag_id, sum
if __name__ == '__main__':
    input_file = './data/MsraNER/BIOES/test.txt'

    tag_list = ['O', 'S-LOC', 'B-LOC', 'E-LOC', 'B-PER', 'I-PER', 'E-PER', 'B-ORG', 'I-ORG', 'E-ORG', 'I-LOC', 'S-PER', 'S-ORG']
    # print(len(tag_list))
    # tag_list, word_sum = get_tags_list(input_file)
    # print(word_sum)
    # print(tag_list)

    result,num = get_tags_num(input_file, tag_list)
    sum = 0
    for i in result:
        sum += result[i]
    print(num)
    print(sum)
    print(result)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值