MulaiMulai sekarang secara gratis

Ekstrak nama dengan konteks

Mari kita gunakan kembali himpunan data tentang politisi Swiss. Data ini terdiri dari dua variabel: articles yang merupakan kumpulan artikel berita tentang politik Swiss dan politicians yang merupakan vektor berisi beberapa nama politisi Swiss.

Anda sudah menghitung jumlah kemunculan per nama, tetapi bukankah menarik jika Anda tidak hanya menghitung nama, melainkan juga melihat dalam konteks apa nama-nama tersebut digunakan? Misalnya, Anda dapat membandingkan apakah konteksnya berbeda antara politisi perempuan dan laki-laki. Untuk itu, Anda perlu mengekstrak teks yang mengelilingi nama politisi.

Karena teks memuat karakter kata \\w sekaligus tanda baca [:punct:] seperti titik . atau koma ,, Anda harus membuat pola yang mencocokkan kedua jenis karakter tersebut.

Latihan ini adalah bagian dari kursus

Ekspresi Reguler Tingkat Menengah di R

Lihat Kursus

Petunjuk latihan

  • Gunakan vektor politicians dan gabungkan (collapse) untuk membuat pola "or" seperti yang Anda lakukan di bab 2.
  • Buat pola kustom dalam tanda kurung siku [] yang mencocokkan karakter kata sekaligus tanda baca.
  • Dengan menggunakan glue, tambahkan context yang baru dibuat baik di depan maupun setelah polit_pattern. \\s? menunjukkan bahwa setelah nama politisi bisa ada spasi atau tidak ada spasi.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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
)
Edit dan Jalankan Kode