利用hf datasets库包构建自己的数据集

!wget https://raw.githubusercontent.com/zhangbo2008/data_ner/main/aomanyupianjian -O aaaa
!pip install datasets


#=======加载自己数据集

with open('aaaa') as f:
    t=f.readlines()
save1=[]
save2=[]
a=''
b=''
for i in t:

    if i=='\n':
        save1.append(a[:-1])
        save2.append(b[:-1])
        a=''
        b=''
    else:
        a+=i.split(' ')[0]+' '
        b+=i.split(' ')[1].replace('\n',' ')
print(3)
all2=[]
import copy


aaa=['O', 'B-PER', 'I-PER', 'B-ORG', 'I-ORG', 'B-LOC', 'I-LOC', 'B-MISC', 'I-MISC']
tmp={'tokens':[], 'ner_tags':[]}
for i,j in zip(save1,save2):
  if i:

    tmp=tmp.copy()
    # tmp=copy.deepcopy(tmp) #没有多级数组所以可以用浅拷贝.
    tmp['tokens']=i.split(' ')
    tmp['ner_tags']=j.split(' ')#末尾句号一般也要进行独立设置O
    if '.' in tmp['tokens'][-1] and '.' !=tmp['tokens'][-1]:
        tmp['tokens'][-1]=tmp['tokens'][-1][:-1]
        tmp['tokens'].append('.')
        tmp['ner_tags'].append('O')
    if ',' in tmp['tokens'][-1] and ',' !=tmp['tokens'][-1]:
        tmp['tokens'][-1]=tmp['tokens'][-1][:-1]
        tmp['tokens'].append(',')
        tmp['ner_tags'].append('O')

    for kkk in range(len(tmp['ner_tags'])):
         tmp['ner_tags'][kkk]=tmp['ner_tags'][kkk].replace('B-Person','B-PER').replace('I-Person','I-PER').replace('B-Location','B-LOC').replace('I-Location','I-LOC').replace('B-Misc','B-MISC').replace('I-Misc','I-MISC')
    for i1 in range(len(tmp['ner_tags'])):
        for j1 in range(len(aaa)):
            if tmp['ner_tags'][i1]==aaa[j1]:
                tmp['ner_tags'][i1]=j1
    all2.append(tmp)
    print(111)


from datasets import Dataset
ds = Dataset.from_list(all2)
#===========tag进行编码
#'O', 'B-PER', 'I-PER', 'B-ORG', 'I-ORG', 'B-LOC', 'I-LOC', 'B-MISC', 'I-MISC'






ds[0]
ds2=ds.train_test_split(test_size=0.3)#下面我们使用ds2即可.
ds2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

15122306087

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值