BIO标注

文章介绍了如何使用Python的PandasDataFrame对文本数据进行处理,特别是BIO标注方法,用于识别和标记文本中的特定描述如姓名和年龄。通过示例展示了如何创建和操作DataFrame来存储和提取文章的结构化信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 一、test_df 各个字段解释

 举例说明

二、test_text_df 各个字段解释

三、代码从0实现 


 一、test_df 各个字段解释

 'id':文章id
'discourse_id':描述id(一篇文章会有多个描述)

'discourse_start':该描述在文章的开始位置

'discourse_end',:该描述在文章的结束位置

'discourse_text':具体内容

 'discourse_type':描述类型(有Name_desc,Age_desc)

        Name_desc:姓名描述信息

        Age_desc:年龄描述信息       

 'discourse_type_num':该文章包含该类描述的个数

'predictionstring':“描述”在文章的位置

 举例说明

文章:"i am zzz,i am 18 years old."

 'id':1

'discourse_id':11(第一篇文章的第一个描述)

'discourse_start':0

'discourse_end':8

'discourse_text':'i am zmz'

 'discourse_type':Name_desc   

 'discourse_type_num':该文章包含姓名描述信息:1个

'predictionstring':'0 2 3 5 6 7'-->'i a m z m z'

二、test_text_df 各个字段解释

"id":文章id

"text":文章内容

三、代码从0实现 

# BIO标注
test_text = "i am zzz,i am 18 years old."
origin_text = [i for i in test_text]
entity = ['0']*len(test_text)

test_df = pd.DataFrame(columns=['id', 'discourse_id', 'discourse_start', 'discourse_end', 'discourse_text', 'discourse_type', 'discourse_type_num', 'predictionstring'])
test_df.loc[0] = [1,11,0,8,'i am zmz','Name_desc',1,'0 2 3 5 6 7']
test_df.loc[1] =[1,12,9,26,'i am 24 years old','Age_desc',1,'9 11 12 14 15 17 18 19 20 21 23 24 25']

# test_text[test_df.loc[0]['discourse_start']:test_df.loc[0]['discourse_end']]

test_text_df = pd.DataFrame([{'id':1,'text':test_text}])

for index,row in test_df[test_df['id'] == 1].iterrows():
    list_discourse = [int(x) for x in row['predictionstring'].split()]
    # print(list_discourse)
    discourse_type = row['discourse_type']
    entity[list_discourse[0]] = 'B-' + discourse_type
    for i in range(1,len(list_discourse)):
        entity[list_discourse[i]] = 'I-' + discourse_type


for i in range(len(entity)):
    print(entity[i] + ': ' +origin_text[i])

其中:

伪代码:

test_text[test_df['discourse_start'] : test_df['discourse_end']] == test_df['discourse_text']

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值