如何附加从 DataFrame 中提取的命名实体?

问题描述

df['Article']提取并打印实体的以下代码工作正常。

for i in df['Article'].to_list():
    doc = nlp(i)
    for entity in doc.ents:
        print((entity.text))

但是,每当我尝试使用 append entities_list.append((entity.text)) 这些实体时,我都会收到 TypeError: object of type 'float' has no len() 错误,我尝试使用以下方式创建 entities_list=[]

entities_list = []
for i in df['Article'].to_list():
    doc = nlp(i)
    for entity in doc.ents:
        print((entity.text))

以及

for i in df['Article'].to_list():
    entities_list = []
    doc = nlp(i)
    for entity in doc.ents:
        print((entity.text))

此外,即使我尝试创建另一个 DataFrame 或向 df 添加新列,我也会遇到同样的错误。有人可以帮助我在这里做错什么吗?谢谢

编辑:
df['Articles'] 中的数据是新闻文本,如

彭斯的举动是在疫苗接种工作展开之际 世界正在竞相阻止一场已夺取至少 1.66 年的大流行病 百万人的生命并感染了超过 7400 万人。

一个代码打印从文本中提取的实体,但我需要将这些实体附加到列表中,如下所示

[entity1,entity2,entity3,entity4]

解决方法

似乎文章列有一些缺失值,请执行以下操作:

entities_list = []
for i in df['Article'].fillna('').to_list():
    doc = nlp(i)
    for entity in doc.ents:
        entities_list.append((entity.text))