Rozpoznávání v řetězcích

Slides:



Advertisements
Podobné prezentace
Lineární klasifikátor
Advertisements

Analýza signálů - cvičení
Algoritmy zpracování textů II
NEJKRATŠÍ CESTY MEZI VŠEMI UZLY
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
Programování funkcí v Excelu (pole)
LOGISTICKÉ SYSTÉMY 6/14.
Semestrální práce KIV/PT Martin Kales Hana Hůlová.
Fraktálová komprese obrazu
Diskrétní matematika Opakování - příklady.
Aplikace teorie grafů Základní pojmy teorie grafů
ALGO – Algoritmizace 1. cvičení
Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární.
Memory-based Learning Učení založené na paměti (výtah z přednášky Waltera Daelemanse, GSLT, Göteborg 2003) + TiMBL -ukázka použití programu Jiří Mírovský,
Skip-List je datová struktura, která může být použita jako náhrada za vyvážené stromy. představují pravděpodobnostní alternativu k vyváženým stromům (struktura.
Lineární algebra.
Heuristické metody Heuristiky dělíme na primární a duální.
SWI072 Algoritmy komprese dat1 Algoritmy komprese dat Statistické metody komprese dat a Shannon-Fanův kód.
doc. RNDr. Zdeněk Botek, CSc.
REDUKCE DAT Díváme-li se na soubory jako na text, pak je tento text redundantní. Redundance vyplývá z:  některé fráze nebo slova se opakují  existuje.
Databáze Tabulky a typy dat VY_32_INOVACE_7B11. Proč datové typy ? Abychom mohli do tabulky vložit data, musíme jednotlivým polím (sloupcům) přiřadit.
SWI072 Algoritmy komprese dat1 Algoritmy komprese dat Teorie informace.
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
Algoritmy a programovací techniky
Abeceda a formální jazyk
Jemný úvod do MATLABu © Leonard Walletzký, ESF MU, 2000.
Časová složitost algoritmů
Jiří Znoj - zno Tvorba konkordace Algoritmy II 3. projekt, 5. zadání Jiří Znoj - zno
Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová II. Vzorce v Excelu Tipy pro práci s Wordem.
IGrid index Roman Krejčík. Obsah Motivace Prokletí dimenze Míry podobnosti IGrid, IGrid+ Experimentální porovnání.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Reprezentace klasifikátoru pomocí „diskriminant“ funkce
Realtime identifikace osob podle hlasu
Formální modely výpočtu Tomáš Vaníček Katedra inženýrské informatiky Stavební fakulta ČVUT Thákurova 7, Praha 6 Dejvice, b407
Kompresní metoda ACB Associative Coder of Buyanovsky autor: George Buyanovsky připravil Tomáš Skopal podle knihy „Data Compression“ od D. Salomona, 1997,
Turingův stroj.
Práce s řetězci Řetězec je libovolný text nebo libovolná skupina znaků. Řetězec se také označuje jako string. Činnosti prováděné s řetězci: Počítání znaků.
Odvození zarovnání více řetězců z párového zarovnání, SP-skóre Ondřej Kazík 2008.
Lineární programování - charakteristika krajních bodů
Počítačová chemie (5. přednáška)
Klastrování - III.
W i ref (t+1) = W i ref (t) + h ci (t) [X(t) - W i ref (t)], i Nc h ci (t) 0, t  proces konverguje Algoritmy a struktury neuropočítačů ASN – P3 SOM algoritmus.
ZÁKLADNÍ POJMY. ZDROJOVÝ TEXT PROGRAMU Tvoří: klíčová slova komentáře identifikátory.
Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární.
Podobnost trajektorií Jiří Jakl Úvod - využití Rozpoznáváni ručně psaných textů GPS navigace Analýza pohybu pracovníku v budovách Predikce.
Vyhledávání vzorů (template matching)
Radim Farana Podklady pro výuku
1 Audio retrieval Referát Vyhledávání v multimediálních databázích MFF UK 2005/06 Jan Kodym.
ALGO – Algoritmizace 7. cvičení – ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D.
Kontrola pravopisu Daniel Zeman Počítačové zpracování češtiny.
McEllisova šifra.
Databáze ● úložiště dat s definovaným přístupem ● typy struktury – strom, sekvence, tabulka ● sestává z uspořádaných záznamů ● databáze – struktura – záznam.
NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6.
Daniel Zeman Počítačové zpracování češtiny Kontrola pravopisu Daniel Zeman
Operační výzkum Lineární programování Dopravní úloha nevyrovnaná.
Překladače 5. Syntaktická analýza
Úvod do programování 6. hodina
Vzorové řešení zápočtového testu
Další typy dopravních problémů
Klasické šifry – princip substituce, transpozice
Výukový materiál zpracován v rámci projektu
Klasifikace a rozpoznávání
Výukový materiál zpracován v rámci projektu
Výpočetní složitost algoritmů
Základní zpracování dat Příklad
zpracovaný v rámci projektu
Toky v sítích.
Algoritmizace Dynamické programování
Základy statistiky.
Transkript prezentace:

Rozpoznávání v řetězcích

Rozpoznávání v řetězcích obsah párování řetězců naivní algoritmus Boyer-Moorův algoritmus editační vzdálenost párování řetězců s chybami

Rozpoznávání v řetězcích vzory jsou uspořádané posloupnosti (řetezce) diskrétních prvků např. písmena abecedy genové posloupnosti ... AGCTT (A – adenin, G – guanin, C – cytozin, T – tymin) klasifikace v řetězcích je odlišná od běžných technik nemáme definovanou metriku na znakových řetězcích pojmy: slovo = „krátká“ posloupnost znaků text = „dlouhá“ posloupnost znaků faktor v textu x = souvislý podřetězec v textu x např. “GCT” je faktor v “AGCTTC”

Rozpoznávání v řetězcích – základní problémy 1. párování řetězců („string–matching“) vstup: slovo x a text výstup: zjistit, zda x je faktorem textu pokud ano, pak kde faktor v textu je alternativní použití máme klíčová slova pro jednotlivé třídy - třída “rybaření” ... “velryba”, “losos”, “oceán”, .... - třída “lov” ... “zbraň”, “střela”, “lovec”, .... pomocí metody párování řetězců zjistíme četnost klíčových slov v neznámém textu neznámý text klasifikujeme do třídy, která bude častěji zastoupena

Rozpoznávání v řetězcích – základní problémy 2. editační vzdálenost („edit–distance“) vstup: 2 slova x a y výstup: spočítat minimální počet základních operací potřebných pro transformaci x do y základní operace – vložení znaku, smazání znaku, nahrazení znaku 3. párování řetězců s chybami („string–matching–with–errors) slovo x a text najít pozici v textu, kde vzdálenost (chyba) x od libovolného faktoru textu minimální

Párování řetězců testování, zda řetězec x je faktorem textu předpoklady: |text| značíme délku řetězce text |x| << |text| posunutí s je velikost nutná k zarovnání prvního znaku z x se znakem na pozici s+1 v textu cílem je: 1. zjistit, zda existuje platné posunutí takové, že každý znak v x se shoduje s odpovídajícím znakem v textu 2. najít všechna platná posunutí ........ jediné platné posunutí je pro s=5

Párování řetězců – naivní algoritmus naivní algoritmus na párování řetězců: testujeme každý možný posun složitost algoritmus má složitost Θ((n-m+1)m) v nejhorším případě nevýhody: informace z jednoho posunutí s se nevyužije při hledání následného posunutí

Párování řetězců – Boyer-Moorův algoritmus sofistikovanější algoritmus, který vychází z naivního algoritmu pro dané posunutí s porovnává znaky v obráceném pořadí (zprava doleva) následné posunutí nemusí být jen o 1 větší ale o více znaků zobrazena pozice vzoru x v textu při posunutí s porovnávání znaků se provádí zprava doleva první dva znaky “es” souhlasí nejpravější znak v textu, který nesouhlasí, je znak “i” .... špatný znak

Párování řetězců – Boyer-Moorův algoritmus Boyer–Moorův algoritmus pracuje se 2 heuristikami, které určí následné posunutí 1. heuristika špatného znaku 2. heuristika dobrého suffixu (přípony) => algoritmus si následně vybere větší z posunutí (získané heuristikami)

Párování řetězců – Boyer-Moorův algoritmus 1. heuristika špatného znaku posun je určen tak, aby špatný znak “i” v textu „lícoval“ s nejpravějším znakem “i” v x (měřeno jen nalevo od pozice, kde došlo k neshodě) => dostaneme posun s=3

Párování řetězců – Boyer-Moorův algoritmus 2. heuristika dobrého suffixu posun se zvětší o nejmenší posun, který „namapuje“ dobrý suffix v textu na následující dobrý suffix v x (měřeno jen nalevo od pozice, kde došlo k neshodě) => dostaneme posun s=7 tedy text posunume o 7 znaků (s=7)

Editační vzdálenost idea: editační vzdálenost rozponávání vzorů pomocí editační vzdálenosti je založeno na algoritmu nejbližšího souseda testovaný vzor je porovnán s uloženými trénovacími řetězci pomocí editační vzdálenosti vzor je přiřazen do třídy, která odpovídá „nejbližšímu“ uloženému řetězci (měřeno v editační vzdálenosti) editační vzdálenost editační vzdálenost mezi x a y popisuje počet základních operací nutných k transformaci x do y operace nahrazení znaku – znak v x je nahrazen odpovídajícím znakem v y vložení znaku – znak v y je vložen do x (délka x se zvětší o 1) vložení znaku – znak v x je smazán (délka x se zmenší o 1) složitost algoritmu O(m∙n)

Editační vzdálenost – algoritmus algoritmus na spočtení editační vzdálenosti řetězců x a y: inicializace levého sloupce inicializace horního řádku jádro algoritmu

Editační vzdálenost – komentáře k algoritmu značení: C je matice celých čísel velikosti m×n, které odpovídají editační „vzdálenosti“ δ(x,y) je zobecněná Kroneckerova delta funkce δ(x,y) = 1 pokud x = y δ(x,y) = 0 jinak algoritmus algoritmus je příkladem dynamického programování řádky 4-10 inicializují levý sloupec a horní řádek pomocí jednotlivých „kroků“ řádek 14 je jádrem algoritmu najde nejmenší vzdálenost pro každý prvek matice C pro spočtení hodnoty C[i,j] jsou použity jen předchozí (již spočtené) řádky a sloupce

Editační vzdálenost – příklad spočteme editační vzdálenost pro x = “excused” a y = “exhausted” vzor x je transformován do y pomocí 1 nahrazení a 2 vložení editační vzdálenost x a y je v políčku C[7,9] = 3

Párování řetězců s chybami vstup vzor x a text výstup najít posunutí takové, aby editační vzdálenost mezi x a faktorem v textu byla minimální algoritmus je velmi podobný editačnímu algoritmu hledáme posunutí, pro které je editační vzdálenost od x k faktoru textu minimální min{C(x,y)} kde y je faktor textu zavedeme matici E počtu chyb (analogické matici C) vyjímka – horní řádek je inicializován E[0,j]=0 ... prázdný řetězec x odpovídá prázdnému faktoru textu a nedá žádnou chybu 0 výpočet je podobný jako u výpočtu matice C na konci bude v matici E: E[i,j] = min{ C( x[1...i] , y[1...j] ) } kde y je faktor textu

Párování řetězců s chybami – příklad minimální vzdálenost je 1 a hledané posunutí je 11