Cómo extraer entidades con nombre de Pandas DataFrame usando SpaCy

Dec 19 2020

Estoy tratando de extraer Entidades Nombradas usando la primera respuesta a esta pregunta y el código es el siguiente

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

Pero no se trata de entidades de impresión. Lo he intentado print(i)y print(doc)ambas variables tienen valores y df['Article']contienen texto de noticias. ¿Alguien puede ayudarme con por qué el segundo ciclo no extrae entidades? Gracias

EDITAR:
Este es un archivo de conjunto de datos , ejecute el siguiente código para formar el preprocesamiento que he realizado.

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

para eliminar caracteres especiales de df['Articles']

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

Respuestas

1 WiktorStribiżew Dec 19 2020 at 01:18

Con df['Article'].map(lambda x: re.sub(r'\W+', '', x)), eliminas todos los caracteres de espacio en blanco de tus artículos.

Necesitas usar

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

Con esa expresión regular, solo eliminará caracteres especiales que no sean espacios en blanco.