Kelime (Text) İşleme Algoritmaları

Slides:



Advertisements
Benzer bir sunumlar
Yığınlama Sıralaması (Heap Sort)
Advertisements

Ders İçeriği Ağaç Veri Modeli Tanım ve Gerçekleştirim İkili Ağaç
SQL String Fonksiyonları
Karmaşıklık Giriş.
Karmaşıklık Giriş.
Yinelemeli Algoritma Analizi & Asimptotik Notasyon
Göstericiler (Pointers)
Veri ve Veri Yapıları Genel olarak bilgisayarlar.
BU KONUDA ÖĞRENECEKLERİMİZ
C Programlama Diline Giriş
AVL-Ağaçları (Trees).
B+-Ağaçları.
İkili Ağaçlar İkili Arama Ağaçları
VEKTÖRLER.
OOP4 LAB.
İkili Arama Ağaçları (Binary Search Trees) BST
Binary Ağaçlar (Ekleme/Silme Örnekleri)
HTML (HYPER TEXT MARKUP LANGUAGE) TEMEL ETİKETLERİ
Veri Yapıları Ve Algoritmalar
MIT503 Veri Yapıları ve algoritmalar Veri ağaçları
Veri Yapıları ve Algoritmalar
XML Document Object Model (DOM)
Bilgisayar Programlama
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
FONKSİYONLAR.
BİYOİNFORMATİK NEDİR? BİYOİNFORMATİKTE KULLANILAN SINIFLAMA YÖNTEMLERİ
Algoritma & Programlama
Kare Köklü Sayılar:.
CHARINDEX CHARINDEX fonksiyonu 2 parametre almaktadır. 1.parametredeki değerin 2.parametre olarak verilmiş değerde olup olmadığını belirtir. Varsa karakter.
JAVA’DA DİZİLER Dr.Galip AYDIN.
Trees, Vectors, Iterators. ADT Abstract Data Type (ADT) vs implementation -Soyut Veri Türleri - Uygulamaları.
M.Fatih AMASYALI Uzman Sistemler Ders Notları
Kümeler ve Gösteriliş Şekilleri
KÜMELER.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Chapter 11: Dosya Sistem Arayüzü
Biçimsel Diller ve Soyut Makineler
Veri Yapıları ve Algoritmalar
Sentaks (Sözdizim) ve Semantik (Anlam)
AVL Trees / Slide 1 Silme * Anahtar hedefi silmek için, x yaprağında buluruz ve sonra sileriz. * Dikkat edilmesi gereken iki durum vardır. (1) Hedef bazi.
Regüler İfadeler ve Regüler Diller
Hafta2 Rekürsif Algoritmalar
Dinamik programlama ve Açgözlü algoritma
Seriport String İletimi
STRING FONKSİYONLARI Dim ders As String
C Programlama Dili Bilgisayar Mühendisliği.
Kümeleme Modeli (Clustering)
Algoritmalar II Ders 8 Açgözlü Algoritmalar.
STRING İŞLEMLERİ.
Karar Ağaçları (Decision trees)
Algoritmalar II Ders 13 Çizgelerde tüm ikililer arasında en kısa yollar.
Algoritmalar II Ders 1: Alan zaman takası yöntemi.
Algoritmalar II Ders 7 Açgözlü Algoritmalar.
Algoritmalar II Ders 4 Dinamik Programlama Yöntemi.
Çizgeler Çizge G=(V,E), ikilisine denir, burada V sonlu bir kümedir, E ise bu kümenin elemanları arasında ikili bir bağıntıdır. V kümesine G çizgesinin.
9. Ders Tüm ikililer arasında en kısa yollar
VERİ TÜRLERİ.
STRING İŞLEMLERİ.
Bilgisayar Programlama
Döngüler ve Shift Register
BLM-111 PROGRAMLAMA DİLLERİ I Ders-2 Değişken Kavramı ve Temel Operatörler Yrd. Doç. Dr. Ümit ATİLA
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
Bilgisayar Bilimi Problem Çözme Süreci-2.
Bilgisayar Programlamasına ve Veri Analizine Giriş
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
MTM216 GÖRSEL PROGRAMLAMA
Yapay Öğrenme Teorisi Bölüm-1
Sunum transkripti:

Kelime (Text) İşleme Algoritmaları Doç.Dr.Banu Diri

Trie Ağacı Sonek Ağacı (Suffix Tree) Longest Common String (LCS) Minimum Edit Distance

Ağaçların Bağlı Yapısı Düğüm (node), çeşitli bilgiler ile ifade edilen bir nesnedir. Her bir bağlantı (edge) için, birer bağlantı bilgisi tutulur. Nesne/Değer (Element) Ana düğüm (Parent node) Çocuk düğümlerin listesi

Metin ağaçları (TRIE) Trie ağacının ismi retrieval kelimesininin [3..6] arasındaki harflerinden oluşmaktadır. Bir ağacın üzerinde bir metin (string, sözlük, ...) kodlanmak isteniyorsa TRIE ağaçları tercih edilir. İgili metni veren ağacın üzerinde izlenebilir tek bir yol vardır. Kök düğüm her zaman boş bir metni (string) ifade eder. Her düğüm kendisinden sonra gelen harfi işaret eder. Boş metin hangi harf ile devam ederse, o harfe ait dal takip edilir ve gelinen düğüm o ana kadar geçilmiş olan dallardaki harflerin birleştirilmiş halidir. Bir düğümden bir harf taşıyan sadece bir dal çıkabilir. Metin ağaçlarının en önemli avantajı, bir metni ararken metinin boyutu kadar işlem gerektirmesidir .  Ağaçta ne kadar bilgi bulunduğunun önemi yoktur. Hafızayı verimli kullanırlar. Trie ağacının en derin noktası, ağaç üzerindeki en uzun metin kadardır. 

String kümesinin TRIE üzerinde gösterilimi { aeef ad bbfe bbfg c } a b c e f d g

Sıkıştırılmış TRIE a b c e d f g bbf eef  f

Suffix Tree Suffix Tree (Sonek Ağacı) kelime işleme algoritmalarındandır DNA dosyaları gigabyte seviyesinde yer kapladıklarından DNA analizinin elle yapılması mümkün değildir. Hatta, DNA dosyalarının bilgisayar yardımıyla işlenmesi de çok uzun sürmektedir. Biyolojik veriler, arama motorları, derleyici tasarımı, işletim sistemi, veri tabanı, vs... kullanılır.

Suffix Trees Substring bulma problemidir... Verilen text m uzunluğunda bir string (S) S için harcanan zaman O(m) Bulunması istenen string Q olup, n uzunluğunda olsun Q’nun S içerisinde aranması için harcanan zaman O(n) Suffix Tree ler kullanılarak bu problemi çözebiliriz.

Suffix Tree’nin Tanımı m uzunluğundaki bir S string için T suffix tree aşağıdaki özelliklere sahiptir: Köklü bir ağaçtır ve yönlüdür 1 ile m arasında etiketlenmiş m yaprağı vardır Ağaçtaki her bir dal S string nin bir alt stringini oluşturur Kökten, i. yaprağa kadar etiketlenmiş bir yol üzerindeki kenarlar birleştirilebilir Kök olmayan her ara düğümün en az 2 yaprağı vardır Bir düğümden çıkan kenarlar farklı karakterler ile başlar

S=abab S string’inin suffix tree’si, S’nin bütün suffix’lerini sıkıştırılmış bir trie de tutsun. $ sembolü ilgili suffix’in sonunu göstersin. { $ b$ ab$ bab$ abab$ } a b $

Suffix Tree’nin oluşturulması b $ En geniş suffix a b $ bab$ suffix’inin eklenmesi

a b $ ab$ suffix’inin eklenmesi a b $ a b $ b$ suffix’inin eklenmesi

a b $ a b $ $ suffix’in eklenmesi

Herbir yaprağı etiketleyerek nerden erişeceğimizi biliriz. 1 2 a b $ 3 4 5

Longest Common Subsequence A subsequence of a string S, is a set of characters that appear in left -to-right order, but not necessarily consecutively. Example ACTTGCG • ACT, ATTC, T, ACTTGC are all subsequences. • TTA is not a subequence A common subequence of two strings is a subsequence that appears in both strings. A longest common subequence is a common subsequence of maximal length. S1 = AAACCGTGAGTTATTCGTTCTAGAA S2 = CACCCCTAAGGTACCTTTGGTTC LCS is ACCTAGTACTTTG

Xm=7ACTTGCG Yn=6 ATTCGG LCS ATTGG A T C G 1 2 3 4 5 6 7

s1 aab# s2 abab$ Longest Common Substring (of two strings) a b # $ 5 4 3 4 5 #

Longest Common Suffix Örnek :"ABAB" ve "BABA" function LCSubstr(S[1..m], T[1..n]) L := array(1..m, 1..n) z := 0 ret := {} for i := 1..m for j := 1..n if S[i] = T[j] if i = 1 or j = 1 L[i,j] := 1 else L[i,j] := L[i-1,j-1] + 1 if L[i,j] > z z := L[i,j] if L[i,j] = z ret := ret ∪ {S[i-z+1..z]} return ret A B 1 2 3 Dinamik Programlama kodu