Bắt đầu ngayBắt đầu miễn phí

Trích xuất tên kèm ngữ cảnh

Hãy quay lại bộ dữ liệu về các chính trị gia Thụy Sĩ. Nó gồm hai biến: articles là tập hợp các bài báo về chính trị Thụy Sĩ và politicians là một vector chứa một số tên của các chính trị gia Thụy Sĩ.

Bạn đã đếm số lần xuất hiện theo tên, nhưng sẽ thú vị hơn nếu không chỉ đếm tên mà còn xem các tên đó được dùng trong ngữ cảnh nào? Chẳng hạn, bạn có thể so sánh xem ngữ cảnh khác nhau ra sao giữa các chính trị gia nữ và nam. Để làm được điều đó, bạn sẽ cần trích xuất phần văn bản xung quanh các tên chính trị gia.

Vì văn bản chứa cả ký tự chữ \\w lẫn dấu câu [:punct:] như dấu chấm . hoặc dấu phẩy ,, bạn sẽ phải tạo một mẫu khớp cả hai loại ký tự này.

Bài tập này là một phần của khóa học

Regular Expressions nâng cao trong R

Xem khóa học

Hướng dẫn bài tập

  • Dùng vector politicians và gộp lại để tạo một "mẫu OR" giống như bạn đã làm ở chương 2.
  • Tạo một mẫu tùy chỉnh trong ngoặc vuông [] khớp cả ký tự chữ lẫn dấu câu.
  • Dùng glue, thêm context vừa tạo vào cả trước và sau polit_pattern. \\s? cho biết sau tên chính trị gia có thể có hoặc không có khoảng trắng.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# Create our polit_pattern again by collapsing "politicians"
polit_pattern <- glue_collapse(___, sep = "|")

# Match one or more word characters or punctuations
context <- "([___[___]]+\\s){0,10}"

# Add this pattern in front and after the polit_pattern
polit_pattern_with_context <- glue(
  "{___}({polit_pattern})\\s?{___}"
)

str_extract_all(
  articles$text,
  pattern = polit_pattern_with_context
)
Chỉnh sửa và Chạy Mã