Porovnávání řetězců

Čištění dat v R

Maggie Matsui

Content Developer @ DataCamp

Měření vzdálenosti mezi hodnotami

Číselná osa od 0 do 15 s tečkami na hodnotách 3 a 10.

Čištění dat v R

Měření vzdálenosti mezi hodnotami

Stejná číselná osa s červenou závorkou zvýrazňující vzdálenost mezi tečkami na hodnotách 3 a 10.

Čištění dat v R

Měření vzdálenosti mezi hodnotami

Pod červenou čárou zobrazující vzdálenost: 10 minus 3 se rovná 7.

                                            Jaká je vzdálenost mezi typhoon a baboon?

Čištění dat v R

Minimální editační vzdálenost

Kolik překlepů je potřeba k přechodu z jednoho řetězce na druhý?

Zelený symbol plus pro vložení.

Čištění dat v R

Minimální editační vzdálenost

Kolik překlepů je potřeba k přechodu z jednoho řetězce na druhý?

Červený symbol mínus pro smazání.

Čištění dat v R

Minimální editační vzdálenost

Kolik překlepů je potřeba k přechodu z jednoho řetězce na druhý?

Fialový cyklický symbol pro substituci.

Čištění dat v R

Minimální editační vzdálenost

Kolik překlepů je potřeba k přechodu z jednoho řetězce na druhý?

Modrá dvojitá šipka pro transpozici.

Čištění dat v R

Editační vzdálenost = 1

Rozdíl mezi „dog" a „dogs" s zeleným symbolem plus.

Čištění dat v R

Editační vzdálenost = 1

Rozdíl mezi „bath" a „bat" s červeným symbolem mínus.

Čištění dat v R

Editační vzdálenost = 1

Rozdíl mezi „cats" a „rats" s fialovým cyklickým symbolem.

Čištění dat v R

Editační vzdálenost = 1

Rozdíl mezi „sign" a „sign" s modrou dvojitou šipkou.

Čištění dat v R

Složitější příklad

baboon $\rightarrow$ typhoon

Slovo baboon

Čištění dat v R

Složitější příklad

baboon $\rightarrow$ typhoon
  • Vložit h

Pod slovem baboon je slovo babhoon se zeleným symbolem plus nad h.

Čištění dat v R

Složitější příklad

baboon $\rightarrow$ typhoon
  • Vložit h
  • Substituovat b $\rightarrow$ t

Pod tím slovo tabhoon s fialovým cyklickým symbolem nad t.

Čištění dat v R

Složitější příklad

baboon $\rightarrow$ typhoon
  • Vložit h
  • Substituovat b $\rightarrow$ t
  • Substituovat a $\rightarrow$ y

Pod tím slovo tybhoon s fialovým cyklickým symbolem nad y.

Čištění dat v R

Složitější příklad

baboon $\rightarrow$ typhoon
  • Vložit h
  • Substituovat b $\rightarrow$ t
  • Substituovat a $\rightarrow$ y
  • Substituovat b $\rightarrow$ p

Celkem: 4

Pod tím slovo typhoon s fialovým cyklickým symbolem nad p.

Čištění dat v R

Typy editační vzdálenosti

  • Damerau-Levenshtein
    • To, co jste se právě naučili
  • Levenshtein
    • Zahrnuje pouze substituci, vložení a smazání
  • LCS (nejdelší společná podsekvence)
    • Zahrnuje pouze vložení a smazání
  • Ostatní
    • Jaro-Winkler
    • Jaccard

Co je nejlepší?

Čištění dat v R

Vzdálenost řetězců v R

library(stringdist)
stringdist("baboon", 
           "typhoon",
           method = "dl")
4

Obrázek z předchozích snímků ukazující přechod z baboon na typhoon.

Čištění dat v R

Další metody

# LCS
stringdist("baboon", "typhoon",
           method = "lcs")
7
# Jaccard
stringdist("baboon", "typhoon",
           method = "jaccard")
0.75
Čištění dat v R

Porovnávání řetězců pro čištění dat

  • V kapitole 2:
    • "EU", "eur", "Europ" $\rightarrow$ "Europe"
  • Co když je příliš mnoho variant?
    • "EU", "eur", "Europ", "Europa", "Erope", "Evropa", ... $\rightarrow$ "Europe"?
    • Použijte vzdálenost řetězců!
Čištění dat v R

Porovnávání řetězců pro čištění dat

survey
          city move_score
1       chicgo          4
2   los angles          4
3      chicogo          5
4      new yrk          5
5    new yoork          2
6     seatttle          3
7   losangeles          4
8      seeatle          2
...
cities
         city
1    new york
2     chicago
3 los angeles
4     seattle
Čištění dat v R

Přemapování pomocí vzdálenosti řetězců

library(fuzzyjoin)
stringdist_left_join(survey, cities, by = "city", method = "dl")
        city.x move_score      city.y
1       chicgo          4     chicago
2   los angles          4 los angeles
3      chicogo          5     chicago
4      new yrk          5    new york
5    new yoork          2    new york
6     seatttle          3     seattle
7   losangeles          4 los angeles
8      seeatle          2     seattle
9      siattle          1     seattle
...
Čištění dat v R

Přemapování pomocí vzdálenosti řetězců

stringdist_left_join(survey, cities, by = "city", method = "dl", max_dist = 1)
        city.x move_score      city.y
1       chicgo          4     chicago
2   los angles          4 los angeles
3      chicogo          5     chicago
4      new yrk          5    new york
5    new yoork          2    new york
6     seatttle          3     seattle
7   losangeles          4 los angeles
8      seeatle          2        <NA>
9      siattle          1     seattle
...
Čištění dat v R

Let's practice!

Čištění dat v R

Preparing Video For Download...