将 pandas 数据帧转换为 CoNLL
Converting pandas dataframe to 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 格式是一个文本文件,每行一个单词,句子之间用空行分隔。一行中的第一个单词应该是单词,最后一个单词应该是标签。
有人知道怎么做吗?
首先通过 space 连接两列,然后在 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')
我有一个处理过的数据框,用作训练 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 格式是一个文本文件,每行一个单词,句子之间用空行分隔。一行中的第一个单词应该是单词,最后一个单词应该是标签。
有人知道怎么做吗?
首先通过 space 连接两列,然后在 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')