Como extrair entidades nomeadas do Pandas DataFrame usando SpaCy

Dec 19 2020

Estou tentando extrair entidades nomeadas usando a primeira resposta a esta pergunta e o código é o seguinte

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

Mas não é impressão de entidades. Eu tentei print(i)e print(doc)ambas as variáveis ​​têm valores e df['Article']contém texto de notícias. Alguém pode ajudar por que o segundo loop não está extraindo entidades? Obrigado

EDIT:
Este é um arquivo de conjunto de dados , execute o código a seguir para o pré-processamento do formulário que eu fiz.

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

remover caracteres especiais de df['Articles']

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

Respostas

1 WiktorStribiżew Dec 19 2020 at 01:18

Com df['Article'].map(lambda x: re.sub(r'\W+', '', x)), você remove todos os caracteres de espaço em branco de seus artigos.

Você precisa usar

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

Com essa regex, você só removerá caracteres especiais que não sejam espaços em branco.