首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将pandas数据帧转换为CoNLL

将pandas数据帧转换为CoNLL
EN

Stack Overflow用户
提问于 2021-02-25 14:17:51
回答 1查看 357关注 0票数 1

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

代码语言:javascript
复制
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文本格式,如下所示:

代码语言:javascript
复制
a B-ORG
b I-ORG
c I-ORG

d B-ORG
e I-ORG

f B-PER
g I-PER

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

有人知道怎么做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-25 14:24:22

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

代码语言:javascript
复制
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')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66363349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档