AttributeError: 'list' object has no attribute 'ents'

AttributeError: 'list' object has no attribute 'ents'

我正在使用此代码并将 csv 文件作为列表获取到 doc [].

doc = []
with open(r'C:\Users\DELL\Desktop\Final project\Requirements1.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=';')
for riga in csv_reader:
    for campo in riga:
        print(campo)
        doc.append(nlp(campo))

但是,当我使用下面的代码对此进行命名实体识别时,

for entity in doc.ents:
print(entity.text, entity.label)

我遇到了这个错误。

AttributeError: 'list' object has no attribute 'ents'

我该怎么办?请帮助我。enter image description here

该错误不言自明 - 您创建了一个普通的 Python 对象列表,称为“doc”。 Python 列表没有名为“ents”的属性。

像这样简单地遍历列表中的元素:

for entity in doc:
    print(entity.text, entity.label)

如果您的列表元素确实具有属性 'text' 和 'label' 这应该可以工作 (无法从显示的代码中验证它们确实具有这些属性)

这样做。

docs = [] # NOTE THIS CHANGED
with open(r'C:\Users\DELL\Desktop\Final project\Requirements1.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=';')
for riga in csv_reader:
    for campo in riga:
        print(campo)
        docs.append(nlp(campo))

# now to get the ner results...

for doc in docs:
    for ent in doc.ents:
        print(ent.text, ent.label)