Bağlamla birlikte adları çıkar
Hadi yine İsviçreli politikacılarla ilgili veri kümesini ele alalım. İki değişkenden oluşuyor: İsviçre siyasetiyle ilgili haberlerden oluşan articles ve İsviçreli politikacıların birkaç adını içeren bir vektör olan politicians.
Kişi başına görülen ad sayısını zaten saydın; peki yalnızca adları saymakla kalmayıp bu adların hangi bağlamda geçtiğini de görsen ilginç olmaz mıydı? Örneğin, kadın ve erkek politikacılar için bağlamların farklı olup olmadığını karşılaştırabilirsin. Bunu yapmak için, politikacı adlarımızın çevresindeki metni çıkarman gerekecek.
Metin hem kelime karakterleri \\w hem de nokta . veya virgül , gibi noktalama işaretleri [:punct:] içerdiğinden, bu iki karakter türünü de eşleştiren bir desen oluşturman gerekecek.
Bu egzersiz
R ile Orta Düzey Düzenli İfadeler
kursunun bir parçasıdırEgzersiz talimatları
politiciansvektörünü kullan ve bölüm 2'de yaptığın gibi bir "veya deseni" oluşturmak için birleştir.- Hem kelime karakterlerini hem de noktalama işaretlerini eşleştiren köşeli parantez
[]içinde özel bir desen oluştur. - glue kullanarak, yeni oluşturduğun
contextifadesinipolit_patternifadesinin hem önüne hem de arkasına ekle.\\s?, politikacı adlarından sonra bir boşluk olabileceğini ya da hiç olmayabileceğini belirtir.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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
)