微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将熊猫数据框转换为 CoNLL

如何解决将熊猫数据框转换为 CoNLL

我有一个处理过的数据框,用作训练 NLP 模型的输入:

 sentence_id    words   labels
0   0            a      B-ORG
1   0            b      I-ORG
2   0            c      I-ORG
5   1            d      B-ORG
6   1            e      I-ORG
7   2            f      B-PER
8   2            g      I-PER

我需要将其转换为 ConLL 文本格式,如下所示:

a B-ORG
b I-ORG
c I-ORG

d B-ORG
e I-ORG

f B-PER
g I-PER

CoNLL 格式是一个文本文件,每行一个单词,句子用空行分隔。一行中的第一个单词应该是单词,最后一个单词应该是标签

有人知道怎么做吗?

解决方法

首先按空格 anf 连接两列,然后在 DataFrame.groupby 中添加最后一个空值并写入文件:

df['join'] = df['words'] + ' ' + df['labels']
#alternative
#df['join'] = df['words'].str.cat(df['labels'],sep=' ')
for i,g in df.groupby('sentence_id')['join']:
    out = g.append(pd.Series({'new':np.nan}))
    out.to_csv('file.txt',index=False,header=None,mode='a')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。