Jak wyodrębnić nazwane jednostki z Pandas DataFrame przy użyciu SpaCy

Dec 19 2020

Próbuję wyodrębnić nazwane jednostki, używając pierwszej odpowiedzi na to pytanie, a kod jest następujący

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

Ale to nie jest drukowanie jednostek. Próbowałem print(i)i print(doc)obie zmienne mają wartości i df['Article']zawierają tekst wiadomości. Czy ktoś może pomóc, dlaczego druga pętla nie wyodrębnia jednostek? Dziękuję Ci

EDYCJA:
To jest plik zestawu danych , uruchom następujący kod, aby utworzyć wstępne przetwarzanie, które wykonałem.

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

usunąć znaki specjalne z df['Articles']

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

Odpowiedzi

1 WiktorStribiżew Dec 19 2020 at 01:18

Za pomocą df['Article'].map(lambda x: re.sub(r'\W+', '', x))usuwasz wszystkie białe znaki z artykułów.

Musisz użyć

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

Za pomocą tego wyrażenia regularnego usuniesz tylko znaki specjalne inne niż białe znaki.