Cách trích xuất các Đối tượng được đặt tên từ Pandas DataFrame bằng SpaCy

Dec 19 2020

Tôi đang cố gắng trích xuất Đối tượng được đặt tên bằng câu trả lời đầu tiên cho câu hỏi này và mã như sau

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

Nhưng nó không phải là thực thể in. Tôi đã thử print(i)print(doc)cả hai biến đều có giá trị và df['Article']chứa văn bản tin tức. Ai đó có thể giúp với lý do tại sao vòng lặp thứ hai không giải nén các thực thể? Cảm ơn bạn

CHỈNH SỬA:
Đây là tệp tập dữ liệu , vui lòng chạy mã sau để hình thành xử lý trước mà tôi đã thực hiện.

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

để xóa các ký tự đặc biệt khỏi df['Articles']

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

Trả lời

1 WiktorStribiżew Dec 19 2020 at 01:18

Với df['Article'].map(lambda x: re.sub(r'\W+', '', x)), bạn xóa tất cả các ký tự khoảng trắng khỏi bài viết của mình.

Bạn cần sử dụng

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

Với regex đó, bạn sẽ chỉ xóa các ký tự đặc biệt khác ngoài khoảng trắng.