BaşlayınÜcretsiz Başlayın

Metin uzaklığı birleştirmesi yapmak

Farklı veri kaynaklarını bir araya getirmek veri analizinde çok yaygın bir görevdir. Mümkün olduğunda, iki tabloyu birleştirirken e-posta adresi gibi açıkça tanımlanabilir değerler kullanmalısın. Peki ya bir kullanıcı sadece adını girdiyse ve sen bunu kullanıcı veritabanında aramak zorundaysan? Zorluk şu: İnsanlar ad veya soyadlarını kısaltabilir, yazım hatası yapabilir ya da bazı kısımları tamamen atlayabilir.

Scope’ta iki veri çerçevesi var: user_input ve database. İlki hatalı kullanıcı girişlerini, ikincisi doğru adları içeriyor; ancak her iki veri kaynağında da aynı 100 isim bulunuyor. Bir metin uzaklığı birleştirmesiyle bunların kaçını eşleştirebilirsin? Bu arada: Herhangi bir uzaklık methodu tanımlanmadı, bu yüzden varsayılan olan Optimal String Alignment uzaklığı "osa" kullanılacak.

Bu egzersiz

R ile Orta Düzey Düzenli İfadeler

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • user_input ile database’i, tam olarak seksen ismin başarıyla eşleşeceği bir en yüksek metin uzaklığı max_dist ile birleştir. Doğru en yüksek uzaklığı bulana kadar denemeler yap.
  • Yeni oluşturulan joined tablosunu kullanarak, insan tarafından okunabilir bir rapor cümlesi yazdır.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Join the data frames on a maximum string distance of 2
joined <- stringdist_join(
  user_input,
  database,
  by = c("user_input" = "name"),
  ___ = ___,
  distance_col = "distance",
  ignore_case = TRUE
)

# Print the number of rows of the newly created data frame
print(glue(
  "{n} out of 100 names were matched successfully",
  n = nrow(___)
))
Kodu Düzenle ve Çalıştır