#python #pandas #for-loop #spacy #named-entity-recognition
#python #панды #для цикла #spacy #распознавание именованных объектов
Вопрос:
следующий код для извлечения и последующей печати объектов 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))
Также, даже если я попытаюсь создать другой фрейм данных или добавить новый столбец df
, я получаю ту же ошибку. Может кто-нибудь помочь с тем, что я здесь делаю не так? Спасибо
РЕДАКТИРОВАТЬ:
данные в df['Articles']
тексте новостей, например
Шаг Пенса связан с тем, что по всему миру разворачиваются усилия по вакцинации в борьбе за прекращение пандемии, которая унесла по меньшей мере 1,66 миллиона жизней и заразила более 74 миллионов человек.
самый первый код печатает объекты, извлеченные из текста, но мне нужно, чтобы эти объекты добавлялись в список следующим образом
[entity1, entity2, entity3, entity4]
Комментарии:
1. Где
entities_list
в вашем примере кода? Пожалуйста, добавьте небольшой, но значимый образец ввода и ожидаемый результат, чтобы лучше понять проблему, с которой вы столкнулись.2. @Dani Mesejo Я добавил больше информации к вопросу, пожалуйста, посмотрите.
3. У вас есть пропущенные значения (NAN) в столбце df[‘Articles’]? Попробуйте сделать что-то вроде
for i in df['Article'].fillna('').to_list()
4. Спасибо @Dani Mesejo, это устранило ошибку, пожалуйста, добавьте ее в ответ, чтобы я мог пометить ее как ответ
Ответ №1:
Кажется, что в статье столбца есть некоторые пропущенные значения, выполните следующие действия:
entities_list = []
for i in df['Article'].fillna('').to_list():
doc = nlp(i)
for entity in doc.ents:
entities_list.append((entity.text))