如何从这些标记中重建句子

2024-04-28 00:07:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个这样的数据集。 第一列是单词,第二列是标记

Pretty    O
bad   O
storm O
here  O
last  O
evening   O
. O

From  O
Green O
Newsfeed  O
: O
AHFA  B-group
extends   O
deadline  O
for   O
Sage  O
Award O
to    O
Nov   O
. O

我想重建句子

所以输出会是

[[('Pretty', 'O'), ('bad', 'O'), ('storm','O'), ('here', 'O'), ('last', 'O'), ('evening', 'O'), ('.', 'B-geo')][(From, 'O'), ('Green', 'O'), ('Newsfeed', 'O'), ('storm:,'O'), ('AHFA', 'B-group'), ('extends', 'O'), ('deadline', 'O'), ('for', 'O'),('Sage', 'O'), ('Award', 'B-geo')][(to, 'O'), ('Nov', 'O'), ('.','O']]

有人能帮我把这个句子造出来吗


Tags: fromforhereprettygroupgreenlastbad
1条回答
网友
1楼 · 发布于 2024-04-28 00:07:27

如果您有:

a = pd.DataFrame([('Pretty', 'O'), ('bad', 'O'), ('storm','O'), ('here', 'O'), ('last', 'O'), ('evening', 'O'), ('.', 'B-geo')])

然后得到:[('Pretty', 'O'), ('bad', 'O'), ('storm','O'), ('here', 'O'), ('last', 'O'), ('evening', 'O'), ('.', 'B-geo')]

你可以做:

[tuple(u) for u in a.values.tolist()]

然后可以对每个数据帧和元组列表中的所有元组执行此操作

如果你把所有的句子都放在一个数据框中,像这样:

a = pd.DataFrame([
('Pretty', 'O'), 
('bad', 'O'), 
('storm','O'), 
('here', 'O'), 
('last', 'O'), 
('evening', 'O'), 
('.', 'B-geo'), 
(' ',''),
('The', 'O'),
('World', 'O'),
('is', 'O'),
('...','N-geo')
])

您可以找到“”ie空间值的索引,并按如下方式拆分数据集:

index_list = a.index[a[0] == " "].tolist()
df1 = a.iloc[:index_list[0], :]
df2 = a.iloc[index_list[0]:, :]

最后你会有这样的事情:

def dataset_to_list_of_tuple(df):
    final_list = []
    index_list = df.index[df[0] == " "].tolist()
    for i in range(len(index_list)):
       if i == 0:
           df_part = df.iloc[:index_list[0], :]
       else:
           df_part = df.iloc[index_list[i-1]:index_list[i], :]
       sentence = [tuple(u) for u in df_part.values.tolist()]
       final_list.append(sentence)
   return final_list

相关问题 更多 >