为了提取命名实体,我与Spacy合作处理了大约7000个句子。我提取了: Long,Date,Star,Para,Astr,Plan,Names AS实体。如您在链接中所见:
现在我要(分配)为每个句子添加注释
“观察”或“不观察”标签1和0
基于我提供的命名实体。我已经在熊猫数据框中收集了数据,并添加了实体元组 (文字,类型实体)像这样(2h 14m,Date)。有时候一句话中有多个实体
问题是我不知道如何访问每一行中的元组,以及如何基于每一列中的实体定义新列。
我的数据如下:(python数据框)
如何基于实体列创建新列,例如,如果存在带有标签数据和长的实体(列实体中每个元组中的第二个元素中的第二个元素),那么我们可以将其分配给新列标签1和如果没有,我们可以指定标签0
答案 0 :(得分:0)
我以某种方式解决了它:
def annot_observation_01(x):
y=0
if x is not None:
for idx in range(0,len(x)):
if any ([x[idx][1] == 'LONG', x[idx][1] == 'DATE']):
y=1
else:
y=0
else:
y=0
return y
然后将其添加到我的数据框中,如下所示:
dfAstroNova['label'] = dfAstroNova['entities'].apply(lambda x: annot_observation_01(x))
如您在代码中所看到的,它说如果实体中的标签是“ LONG”或“ DATE”,它给列标签提供值1,那么当两个标签“ LONG”都给它值1时,如何编写我的函数? ”和“ DATE”出现在句子中?