SpaCy를 사용하여 Pandas DataFrame에서 명명 된 엔티티를 추출하는 방법

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])+', '')

해당 정규식을 사용하면 공백 이외의 특수 문자 만 제거합니다.