CZYSZCZENIE DANYCH: Automatyczny podział tekstu na rekordy o określonej strukturze

Podobne dokumenty
Baza danych. Baza danych to:

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Wprowadzenie do baz danych

Bazy danych TERMINOLOGIA

Pytania SO Oprogramowanie Biurowe. Pytania: Egzamin Zawodowy

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

EGZAMIN MATURALNY W ROKU SZKOLNYM 2014/2015

Elementy modelowania matematycznego

CENTRALNA BAZA DANYCH AKT SĄDOWYCH CEL POWSTANIA I ZASADY FUNKCJONOWANIA

Technologia informacyjna

2017/2018 WGGiOS AGH. LibreOffice Base

Ref. 7 - Język SQL - polecenia DDL i DML

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Języki formalne i automaty Ćwiczenia 6

Języki formalne i automaty Ćwiczenia 7

Autor: dr inż. Katarzyna Rudnik

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

KATEDRA SYSTEMÓW MULTIMEDIALNYCH. Inteligentne systemy decyzyjne. Ćwiczenie nr 12:

Zapytania do bazy danych

Bazy danych - wykład wstępny

Część II. Zadanie 3.2. (0 3)

PTI S1 Tabele. Tabele. Tabele

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

EGZAMIN MATURALNY W ROKU SZKOLNYM 2014/2015

Generowanie dokumentów w ramach korespondencji seryjnej

EGZAMIN MATURALNY W ROKU SZKOLNYM 2014/2015

Tworzenie projektu bazy danych z kreatorem odnośników - Filmoteka. Projekt tabel dla bazy Filmoteka

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Model semistrukturalny

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny

INSTRUKCJA. Karta odleżyn konfigurowalne słowniki umiejscowienia odleżyn oraz typów materaca

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4

Systemy baz danych. mgr inż. Sylwia Glińska

Bioinformatyka. Ocena wiarygodności dopasowania sekwencji.

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

NOWY SZABLON IMPORTU PLIKÓW

Materiały do laboratorium MS ACCESS BASIC

Microsoft Access 2003 tworzenie i praktyczne wykorzystanie baz danych

Aktualizacja baz danych systemu qs-stat

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Wprowadzenie do baz danych

Struktura drzewa w MySQL. Michał Tyszczenko

Rozpoczynamy import Kreator uruchamiamy przyciskiem Z tekstu, znajdującym się na karcie Dane, w grupie Dane zewnętrzne.

Języki formalne i automaty Ćwiczenia 4

Złączenie CROSS JOIN jest to tzw. złączenie krzyżowe, którego ogólna postać wygląda następująco:

KORPORACYJNE SYSTEMY ZARZĄDZANIA INFORMACJĄ

Języki formalne i automaty Ćwiczenia 2

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

Autor: Joanna Karwowska

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

Anna Osiewalska Biblioteka Główna Uniwersytetu Ekonomicznego w Krakowie

QUERY język zapytań do tworzenia raportów w AS/400

Przestrzenne bazy danych Podstawy języka SQL

Podstawowe zagadnienia z zakresu baz danych

5.5. Wybieranie informacji z bazy

1. Zarządzanie informacją w programie Access

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

1. Kalkulator czterech działań. 2. Konwersja ciągu znaków do tablicy.

INTERNETOWY KURS PODSTAW IT

Bazy danych Ćwiczenie 1 Instrukcja strona 1 Wersja ogólna

P o d s t a w y j ę z y k a S Q L

Tworzenie bazy danych na przykładzie Access

sprowadza się od razu kilka stron!

NOWY SZABLON IMPORTU PLIKÓW

Planowanie zajęć równoległych i mieszanych

Projektowanie systemów baz danych

Konspekt do lekcji informatyki dla klasy II gimnazjum. TEMAT(1): Baza danych w programie Microsoft Access.

Optymalizacja poleceń SQL Wprowadzenie

Baza danych. Modele danych

Scenariusz lekcji. scharakteryzować elementy bazy danych; opisać sposób zaprojektowania bazy danych;

Wykaz typów rekordów

Specyfika zarządzania jakością danych ze względu na przeciwdziałanie wyłudzeniom

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla administratora systemu Warszawa 2007

EGZAMIN MATURALNY W ROKU SZKOLNYM 2014/2015

PODSTAWY BAZ DANYCH. 19. Perspektywy baz danych. 2009/2010 Notatki do wykładu "Podstawy baz danych"

MS Access - bazy danych

Wyzwalacze (triggery) Przykład

Biuletyn techniczny. Funkcje dodatkowe dla Clarion Report Writer CDN OPT!MA Copyright 2006 COMARCH S.A.

Jednym z najprostszych sposobów porządkowania jest technika stosowana przy sortowaniu listów:

Teoretyczne podstawy informatyki

BAZY DANYCH. Co to jest baza danych. Przykłady baz danych. Z czego składa się baza danych. Rodzaje baz danych

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Aproksymacja funkcji a regresja symboliczna

Elementy modelowania matematycznego

Technologie informacyjne - wykład 12 -

Wyrażenia regularne.

Bazy danych. Polecenia SQL

Multiwyszukiwarka EBSCO Discovery Service przewodnik

Teoretyczne podstawy informatyki

WPROWADZENIE DO BAZ DANYCH

Multiwyszukiwarka EBSCO Discovery Service - przewodnik

Języki formalne i automaty Ćwiczenia 9

Funkcjonalność systemów zarządzania bazami danych przestrzennych w kartografii internetowej (PosrtgreSQL/PostGIS) Krzysztof Kuśnierek

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

Dokumentacja interfejsu MySQL. Platforma BSMS.PL Instrukcja podłączenia po przez mysql

Transkrypt:

CZYSZCZENIE DANYCH: Automatyczny podział tekstu na rekordy o określonej strukturze (na podstawie pracy: Automatic segmentation of text into structured records, Borkar, Deshmukh, Sarawagi, SIGMOD 200) Wojtek Kulik 7 marca 2005

Wstęp Czyszczenie danych PROBLEM: Podział ciągłego tekstu na rekordy o określonej strukturze Ukryte łańcuchy Markova jako przykład rozwiązania problemu: Podstawowy model Rozszerzenia Pomysł na pracę magisterską

Po co czyścić dane? () Mamy gdzie przechowywać dane: bazy danych Mamy czym analizować dane: języki zapytań PROBLEM: dane nie bardzo dają się przepytywać w formie, w jakiej znajdują się w bazie danych select miasto from... where...... Adres. Chrząszczyrzewoszyce, pow. Łękołody 2.... 3. ul. Nowa 2b, Katowice Brynów i....?

Po co czyścić dane? (2) Osoba Kwota select osoba from... where kwota = Jan Kowalski 0 (select max(kwota)...) Kowalski J. 300... Pan Jan Adam Kowalski 70 Barbra Streisand Ubezpieczenia samochodów (bez gwarancji...)

Czyszczenie danych () Najczęściej, proces czyszczenia danych rozumie się jako cały proces przygotowania danych do analizy zakończony eliminacją duplikatów (danych logicznie tożsamych) Osoba Jan Kowalski Kowalski J. Kwota 0 300 czyszczenie Osoba Pan Jan Kowalski Kwota 380 Pan Jan Adam Kowalski 70 Efekt: -dokładniejsza analiza -szybsze przetwarzanie (mniej rekordów)

Czyszczenie danych (2) Czyszczenie wykonuje się w trzech etapach:. Podział ciągłego tekstu na rekordy o określonej strukturze (ang. elementization, parsowanie ) 2. Standaryzacja (m. in.: ujednolicanie form, poprawa literówek) 3. Identyfikacja i eliminacja duplikatów (ang. matching, householding)

Czyszczenie danych (3). Parsowanie Osoba Jan Kowalski Kowalski J. Pan Jan Adam Kowalski Kwota 0 300 70 Przedrostek Imię Drugie Imię Nazwisko Kwota Jan Kowalski 0 J. Kowalski 300 Pan Jan Adam Kowalski 70

Czyszczenie danych (4) 2. Standaryzacja Przedrostek Imię Drugie Imię Nazwisko Kwota Jan Kowalski 0 J. Kowalski 300 Pan Jan Adam Kowalski 70 Przedrostek Imię Drugie Imię Nazwisko Kwota Pan Jan Kowalski 0 Pan J. Kowalski 300 Pan Jan Adam Kowalski 70

Czyszczenie danych (5) 3. Eliminacja duplikatów Przedrostek Imię Drugie Imię Nazwisko Kwota Pan Jan Kowalski 0 Pan J. Kowalski 300 Pan Jan Adam Kowalski 70 Osoba Pan Jan Kowalski Kwota 380

Parsowanie () Dane przechowywane jako ciągły tekst, np. adresy, dane osobowe, dane bibliograficzne Wygodniej jest je wprowadzać w postaci ciągłego tekstu Dane w jednej tabeli mogą być wprowadzane przez wiele osób, pochodzić z różnych tabel, formularzy internetowych, itp. Analiza danych wymaga specjalnej postaci danych porównywanie całych ciągów znaków nie ma sensu

Parsowanie (2) Takie dane mają niejawną strukturę, mimo iż brak w nich jawnego separatora pomiędzy polami rekordów Poszczególne rekordy mogą się różnić np. kolejnością występowania pól Nie wszystkie pola muszą być obecne w każdym rekordzie Nasza wiedza sprawia, że jesteśmy w stanie wychwycić ich strukturę automagicznie Istniejące narzędzia bazują na pewnej liczbie zaszytych na sztywno reguł

Parsowanie (3) To nie jest przetwarzanie języka naturalnego! (złożona struktura) To nie jest ekstrakcja danych z HTML! (bardzo regularna struktura) Przykłady: ) Adresy

Parsowanie (4) 2) Bibliografia (CiteSeer) Patricia G. Selinger, et al.. Access path selection in a relational database management system. In Proceedings of the ACM SIGMOD Conference, pages 23-34, 979. McGraw-Hill. Selinger P.; Astrahan, M.; Chamberlin, D.; Lorie, R.; and Price, T. 979. Access path selection in a relational database management system. In SIGMOD 79. Praca o optymalizacji zapytań (Selinger, 979) pojawia się 283 razy jako 3 różnych prac.

Rozwiązanie problemu Rozszerzony ukryty łańcuch Markova (ang. Hidden Markov Model, HMM) HMM - probabilistyczny automat skończony DATAMOLD zastosowanie HMM do rozbijania adresów na części składowe (ang. address elementization) Dane treningowe Dane testowe

DATAMOLD architektura Dane treningowe.... 2.... 3.......... T.... DATAMOLD Faza treningowa Model Elementy. Nr domu 2. Ulica...... E. Państwo Taksonomia Baza Dane testowe

HMM do parsowania () n stanów + 2 wyróżnione (START i KONIEC) m symboli wyjściowych macierz A przejść pomiędzy stanami a ij = prawdopodobieństwo przejścia ze stanu i do stanu j macierz B akceptacji (emisji) b jk = prawdopodobieństwo akceptacji (emisji) k-tego symbolu wejściowego w stanie j stan odpowiada jednemu elementowi element odpowiada polu rekordu element może odpowiadać wielu tokenom wejścia

HMM do parsowania (2) ścieżka ciąg przejść pomiędzy stanami + akceptacja symbolu w każdym stanie HMM akceptuje ciąg symboli o o 2...o k jeśli istnieje ścieżka (k+-stanowa) od stanu START do stanu KONIEC, która zostanie wybrana z prawdopodobieństwem >0 W ogólności może istnieć więcej niż jedna taka ścieżka Interesuje nas NAJBARDZIEJ PRAWDOPODOBNA ścieżka

HMM do parsowania (3) Akceptacja HMM: WEJŚCIE: o o 2...o k (ciąg symboli) UWAGA: musimy wiedzieć, jak oddzielane są symbole! WYJŚCIE: <o, E i >,<o 2, E i2 >,..., <o k, E ik > (ciąg par: <symbol, element>) (lub OOOOPS...)

Przykładowy model () Pan 0,5 Pani 0,5 PRZEDROSTEK Jan 0,5 Bjoern 0,25 Einar 0,25 START 0,5 0,6 NAZWISKO IMIĘ KONIEC Kowalski 0,5 Romoeren 0,5

Przykładowy model (2) Pan 0,5 Pani 0,5 PRZEDROSTEK Jan 0,5 Bjoern 0,25 Einar 0,25 START 0,5 0,6 NAZWISKO IMIĘ KONIEC Kowalski 0,5 Romoeren 0,5 Wejście: JAN#KOWALSKI Wyjście:

Przykładowy model (2) Pan 0,5 Pani 0,5 PRZEDROSTEK Jan 0,5 Bjoern 0,25 Einar 0,25 START 0,5 0,6 NAZWISKO IMIĘ KONIEC Kowalski 0,5 Romoeren 0,5 Wejście: JAN#KOWALSKI Wyjście:

Przykładowy model (2) Pan 0,5 Pani 0,5 PUDŁO! PRZEDROSTEK Jan 0,5 Bjoern 0,25 Einar 0,25 START 0,5 0,6 NAZWISKO IMIĘ KONIEC Kowalski 0,5 Romoeren 0,5 Wejście: JAN#KOWALSKI Wyjście:

Przykładowy model (2) Pan 0,5 Pani 0,5 PRZEDROSTEK Jan 0,5 Bjoern 0,25 Einar 0,25 START 0,5 0,6 NAZWISKO IMIĘ KONIEC Kowalski 0,5 Romoeren 0,5 Wejście: JAN#KOWALSKI Wyjście:

Przykładowy model (2) Pan 0,5 Pani 0,5 PRZEDROSTEK Jan 0,5 Bjoern 0,25 Einar 0,25 START 0,5 0,6 NAZWISKO IMIĘ KONIEC Kowalski 0,5 Romoeren 0,5 Wejście: JAN#KOWALSKI Wyjście:

Przykładowy model (2) Pan 0,5 Pani 0,5 PRZEDROSTEK Jan 0,5 Bjoern 0,25 Einar 0,25 START 0,5 0,6 NAZWISKO IMIĘ KONIEC Kowalski 0,5 Romoeren 0,5 Wejście: JAN#KOWALSKI Wyjście: < JAN, IMIĘ>

Przykładowy model (2) Pan 0,5 Pani 0,5 PRZEDROSTEK PUDŁO! Jan 0,5 Bjoern 0,25 Einar 0,25 START 0,5 0,6 NAZWISKO IMIĘ KONIEC Kowalski 0,5 Romoeren 0,5 Wejście: JAN#KOWALSKI Wyjście: < JAN, IMIĘ>

Przykładowy model (2) Pan 0,5 Pani 0,5 PRZEDROSTEK Jan 0,5 Bjoern 0,25 Einar 0,25 SYMBOL! START 0,5 0,6 NAZWISKO IMIĘ KONIEC Kowalski 0,5 Romoeren 0,5 Wejście: JAN#KOWALSKI Wyjście: < JAN, IMIĘ>

Przykładowy model (2) Pan 0,5 Pani 0,5 PRZEDROSTEK Jan 0,5 Bjoern 0,25 Einar 0,25 START 0,5 0,6 NAZWISKO IMIĘ KONIEC Kowalski 0,5 Romoeren 0,5 Wejście: JAN#KOWALSKI Wyjście: < JAN, IMIĘ>

Przykładowy model (2) Pan 0,5 Pani 0,5 PRZEDROSTEK Jan 0,5 Bjoern 0,25 Einar 0,25 START 0,5 0,6 NAZWISKO IMIĘ KONIEC Kowalski 0,5 Romoeren 0,5 Wejście: JAN#KOWALSKI Wyjście: < JAN, IMIĘ>, < KOWALSKI, NAZWISKO>

Przykładowy model (2) Pan 0,5 Pani 0,5 PRZEDROSTEK Jan 0,5 Bjoern 0,25 Einar 0,25 START 0,5 0,6 NAZWISKO IMIĘ KONIEC OK Kowalski 0,5 Romoeren 0,5 Wejście: JAN#KOWALSKI Wyjście: < JAN, IMIĘ>, < KOWALSKI, NAZWISKO>

Przykładowy model (2) Pan 0,5 Pani 0,5 PRZEDROSTEK Jan 0,5 Bjoern 0,25 Einar 0,25 START 0,5 0,6 NAZWISKO IMIĘ KONIEC Kowalski 0,5 Romoeren 0,5 Wejście: JAN#KOWALSKI Wyjście: < JAN, IMIĘ>, < KOWALSKI, NAZWISKO>

Przykładowy model (2) Pan 0,5 Pani 0,5 PRZEDROSTEK Jan 0,5 Bjoern 0,25 Einar 0,25 START 0,5 0,6 NAZWISKO IMIĘ KONIEC PODOBNIE: Kowalski 0,5 Romoeren 0,5 Wejście: KOWALSKI#JAN Wyjście: < KOWALSKI, NAZWISKO>, < JAN, IMIĘ>

Przykładowy model (2) Pan 0,5 Pani 0,5 PRZEDROSTEK Jan 0,5 Bjoern 0,25 Einar 0,25 START 0,5 0,6 NAZWISKO IMIĘ KONIEC PODOBNIE: Kowalski 0,5 Romoeren 0,5 Wejście: PAN#JAN#KOWALSKI Wyjście:... Wejście: Bjoern#Einar#Roemoren Wyjście:...

Przykładowy model (2) Pan 0,5 Pani 0,5 PRZEDROSTEK Jan 0,5 Bjoern 0,25 Einar 0,25 START 0,5 0,6 NAZWISKO IMIĘ KONIEC NIESTETY: Kowalski 0,5 Romoeren 0,5 Wejście: PAN#ADAM#NOWAK Wejście: Ronaldo#Luis#Nazario#de#Lima OOOOPS

Przykładowy model pytania Jak trenować model? Jak szukać rozwiązania? Co gdy zawiodą słowniki? Co z kolejnością wewnątrz jednego elementu?

Jak trenować model? () Trening przebiega dwuetapowo:. Określenie struktury HMM (liczba stanów oraz istotne krawędzie łączące stany) oraz utworzenie słowników. Liczbę stanów (tj. elementów) musimy znać z góry. Słowniki tworzy się na podstawie danych treningowych. Dane treningowe to zestaw par <symbol, element> utworzonych ręcznie.

Jak trenować model? (2) Trening przebiega dwuetapowo: 2. Określenie prawdopodobieństw przejść pomiędzy stanami oraz prawdopodobieństw akceptacji poszczególnych symboli w stanach (na podstawie danych treningowych). Pierwsze podejście: a ij = b jk = liczba przejść ze stanu i do stanu j liczba wszystkich przejść ze stanu i liczba akceptacji symbolu k w stanie j liczba wszystkich akceptacji w stanie j PROBLEM: symbole nieznane nie są akceptowane

Jak trenować model? (3) Trening przebiega dwuetapowo: 2. Określenie prawdopodobieństw przejść pomiędzy stanami oraz prawdopodobieństw akceptacji poszczególnych symboli w stanach (na podstawie danych treningowych). Drugie podejście (wygładzanie Laplace a): T jk = liczba akceptacji symbolu k w stanie j T j =liczba wszystkich akceptacji w stanie j b jk = T jk + Tj + m Inne podejścia:...

Jak szukać rozwiązania? Chcemy symbolom o o 2...o k. przyporządkować najbardziej prawdopodobne elementy E ik. Pierwsze podejście: Sprawdzamy wszystkie możliwości: O(n k ) - Drugie podejście: Algorytm Viterbi ego (dynamiczny): O(kn 2 )

Co gdy zawiodą słowniki? Słowniki ZAWSZE będą niekompletne Nie wszystko da się załatwić manipulując prawdopodobieństwami akceptacji symboli nieznanych

Taksonomia przykład () 3 45 66 A C 0,7 0,2 B C 0,6 S 0,7 2 3 0,6 K WEJŚCIE: 90#D

Taksonomia przykład (2) 3 45 66 A C 0,7 0,2 B C 0,6 S 0,7 2 3 0,6 K WEJŚCIE: 90#D WYJŚCIE: < 90, 2>, < D, 3>!!! bo 0,6*** > *** PROBLEM: prawdopodobieństwa dla liczb!

Taksonomia przykład (3) Wszystko Liczby Słowa Separatory Litery Ciągi Prawdopodobieństwa określamy jedynie dla liści drzewa taksonomii!

Taksonomia przykład (4) LICZBA 0,9 A C 0,7 0,2 B C 0,6 S 0,7 2 3 0,6 K WEJŚCIE: 90#D WYJŚCIE: < 90, >, < D, 3> bo 0,6*** < *0,9**

Co z kolejnością wewnątrz jednego elementu? () PROBLEM: Struktura HMM wychwytuje kolejność elementów, ale nie wychwytuje kolejności symboli wewnątrz jednego elementu np. Grodzisk Mazowiecki a Mazowiecki Grodzisk NEW ZEALAND a ZEALAND NEW

Co z kolejnością wewnątrz jednego elementu? (2) Rozwiązanie: stan jako wewnętrzny HMM MIASTO zwiększa stopień skomplikowania modelu komplikuje fazę treningową ALE: poprawia skuteczność działania modelu

Rozszerzenia modelu Dodatkowa baza danych, np. geograficzna < Rybnik, MIASTO>, < śląskie, WOJEWÓDZTWO>, <???, KRAJ> POLSKA czy CZECHY??? - Dołączając bazę geograficzną będziemy w stanie odpowiedzieć na to pytanie. - Prawdopodobieństwo akceptacji powinno teraz zależeć od tego, co zostało zaakceptowane w stanie poprzedzającym stan bieżący wymaga modyfikacji algorytmu Viterbi ego

Wyniki Dane testowe podzielone ręcznie dla porównywania wyników 99% poprawnych podziałów dla adresów amerykańskich (50 rekordów treningowych / 700 testowych) 90% dla adresów azjatyckich 87,3% dla danych bibliograficznych (00/205) Zwiększanie liczby rekordów treningowych nie poprawia znacząco precyzji podziału!

Pomysł na pracę magisterską Aplikacja do tworzenia modeli + rozszerzenie o możliwość wyłapywania literówek +... np. Jat Kowalski Sprawdzenie jak to działa na przykładzie polskich adresów...