Как извлечь именованные объекты из Pandas DataFrame с помощью SpaCy

Dec 19 2020

Я пытаюсь извлечь именованные объекты, используя первый ответ на этот вопрос, и код выглядит следующим образом

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

Но это не печать сущностей. Я пробовал, print(i)и print(doc)обе переменные имеют значения и df['Article']содержат текст новости. Может ли кто-нибудь помочь с тем, почему второй цикл не извлекает объекты? Спасибо

РЕДАКТИРОВАТЬ:
это файл набора данных , запустите следующий код, чтобы сформировать предварительную обработку, которую я сделал.

df.iloc[:,0].dropna(inplace=True)
df = df[df.iloc[:,0].notna()]

удалить специальные символы из df['Articles']

df['Article'] = df['Article'].map(lambda x: re.sub(r'\W+', '', x))

Ответы

1 WiktorStribiżew Dec 19 2020 at 01:18

С помощью df['Article'].map(lambda x: re.sub(r'\W+', '', x))вы удаляете все пробелы из ваших статей.

Вам нужно использовать

df['Article'] = df['Article'].str.replace(r'(?:_|[^\w\s])+', '')

С этим регулярным выражением вы удалите только специальные символы, кроме пробелов.