INSTYTUT IN YNIERII I GOSPODARKI WODNEJ POLITECHNIKA KRAKOWSKA im. TADEUSZA KO CIUSZKI Marcin Kasi ski WEB HARVESTING ALTERNATYWNA METODA INTEGRACJI DANYCH METEOROLOGICZNYCH praca magisterska studia dzienne kierunek studiów: informatyka specjalno : informatyka stosowana w in ynierii rodowiska promotor: dr in. Robert Szczepanek nr pracy: 2075 data z enia:... KRAKÓW2007 ul. Warszawska 24, 31-155 Kraków tel/fax (+48 12) 628 20 41 e-mail: sekretariat@iigw.pl internet: www.iigw.pl
Pragn bardzo serdecznie podzi kowa Panu dr in. Robertowi Szczepankowi za po wi cony czas, udzielone wskazówki oraz merytoryczn pomoc przy tworzeniu tej pracy.
SPIS TRE CI 1. WST P...1 2. PODSTAWY TEORETYCZNE...4 2.1 WebHarvesting...5 2.2 Parsowanie dokumentów tekstowych...8 2.3 Detekcja tre ci w obrazach rastrowych...12 2.4 Wyra enia regularne...20 2.5 Cykliczne wykonywanie zada...28 3. AUTORSKI SYSTEM DETEKCJI TRE CI ZE STRON WWW...31 3.1 Analiza zagadnienia...32 3.1.1 Wymagania funkcjonalne...32 3.1.2 Wymagania niefunkcjonalne...33 3.2 Model struktury bazy danych...34 3.2.1 Powi zania mi dzy tabelami (relacje)...35 3.2.2 Typy danych, domeny, atrybuty...36 3.3 Model algorytmu i zasada dzia ania...43 3.3.1 Okre lanie formatu pobieranych danych...44 3.3.2 Wyodr bnianie poszukiwanych warto ci...53 3.3.3 Automatyczne pobieranie informacji...58 3.4 Ocena skuteczno ci algorytmu...62 3.5 Wizualne oblicze systemu...65 4. PODSUMOWANIE...71 LITERATURA...75 SPIS RYSUNKÓW...77 SPIS TABEL...78 ABSTRAKT...79
1. WST P 1
Trudno nie zgodzi si ze stwierdzeniem, i Internet jest najwi kszym repozytorium danych, jakie kiedykolwiek istnia o. W dzisiejszych czasach w globalnej sieci internetowej (World Wide Web) istniej dziesi tki miliardów stron WWW, na których prezentowany jest ogrom informacji. Niestety, ka da z tych informacji przechowywana jest w niejednolitej strukturze i wielokrotnie odr bnym formacie, co w znaczny sposób utrudnia przetwarzanie, gromadzenie oraz u ytkowanie takich danych. Z pomoc przychodz wyszukiwarki internetowe, które wspomagaj internautów podczas wyszukiwania istotnych informacji, wielokrotnie jednak sp dzamy mnóstwo czasu nad przegl daniem wyszukanych stron WWW a mimo to znalezienie po danej informacji ko czy si fiaskiem. Wyszukiwarki s bardzo pomocne, lecz je li naszym celem jest gromadzenie specyficznych danych, wówczas wyszukanie odpowiedniej strony WWW to tylko cz pracy, dalsza praca opiera si b dzie dzia aniach zwi zanych z zapisaniem odnalezionych danych na naszym komputerze. Proces ten jest zadaniem bardzo uci liwym, szczególnie w przypadku, gdy tych danych jest kilka tysi cy lub, je li s one aktualizowane z du cz stotliwo ci. Tutaj w nie znajduje zastosowanie metoda automatycznego pobierania danych znana jako Web Harvesting. Dzi ki tej metodzie informacje mog by gromadzone tworz c ogromn baz wiedzy, która w zale no ci od rodzaju informacji mo e by wykorzystywana do analiz w ró nych dziedzinach nauki, techniki czy zastosowa komercyjnych. Cel pracy Cele niniejszej pracy to przede wszystkim opracowanie oraz implementacja algorytmu detekcji tre ci ze stron WWW, zapoznanie czytelnika z dost pnymi metodami pozyskiwania tre ci z obrazów rastrowych oraz przedstawienie metod parsowania dokumentów w ró nych formatach (dokumentów tekstowych, dokumentów HTML oraz strukturalnych dokumentów XML). 2
Zawarto merytoryczna Dokument ten przedstawia przebieg prac, jakie towarzyszy y realizacji oprogramowania s cego do automatycznej ekstrakcji tre ci ze stron WWW, pocz wszy od podstaw teoretycznych przez projektowanie i implementacj algorytmu a do testowania oprogramowania i oceny jego skuteczno ci dzia ania. Praca zosta a podzielona na dwa g ówne rozdzia y. Pierwszy z nich obejmuje podstawy teoretyczne, wprowadzaj ce czytelnika w g b analizowanego zagadnienia, jak równie przedstawiaj ce dost pne narz dzia i technologie u atwiaj ce zrealizowanie systemu automatycznej ekstrakcji danych z niewyczerpanego ród a informacji, jakim jest Internet. Nast pny rozdzia jest odzwierciedleniem kolejnych faz powstawania systemu (wg In ynierii Oprogramowania ), opisuje on g ówne funkcje systemu oraz przedstawia szczegó ow zasad jego dzia ania. 3
2. PODSTAWY TEORETYCZNE 4
2.1 WEBHARVESTING WebHarvesting to technika automatycznej ekstrakcji oraz gromadzenia informacji pochodz cych ze stron internetowych. Pobrane dane poddane strukturalizacji a nast pnie zostaj zachowane w bazie danych, dzi ki czemu staj si ogromn, atwo dost pn i bardzo cenn baz wiedzy. Aby atwiej zrozumie zasad dzia ania tej techniki prze led my przyk ad r cznego zapisania danych ze strony WWW na komputerze lokalnym. Aby informacja zosta a zapisana nale y wykona nast puj ce kroki: - skanowanie tre ci analizowanie zawarto ci strony WWW w poszukiwaniu po danych informacji, - kopiowanie informacji poszukiwana informacja zostaje zaznaczona, a nast pnie skopiowana do schowka systemu operacyjnego, - prze czenie do zewn trznej aplikacji prze czenie do aplikacji za pomoc której dane zostan zapisane na dysku lokalnym lub w lokalnej bazie danych, - zapisanie danych dane przechowywane w schowku zostaj wklejone do aplikacji, a nast pnie zapisane. Czynno ci te nie s zbyt skomplikowane, lecz je li rozpatrzymy przypadek, gdy interesuj ce nas informacje znajduj si na kilku ró nych stronach, gdzie dane aktualizowane s co kilka minut a ich liczba jest du a, wówczas wykonanie takiego zadania metod r czn staje si niemo liwe do zrealizowania. Przedstawiony powy ej przypadek jest idealnym przyk adem wykorzystania narz dzi opartych o Web Harvesting. W tej technice wszystkie wy ej wymienione kroki odbywaj si w sposób automatyczny. 5
Techniki WebHarvestingu WebHarvesting wykorzystuje trzy g ówne techniki gromadzenia informacji. Ka da z nich u atwia ekstrakcj i pobieranie danych innego rodzaju. Wszystkie oparte s o najwi ksze ród o informacji, jakim jest Internet. Web content harvesting Pierwsza z dost pnych technik, w praktyce najcz ciej u ywana, opiera si na analizie zawarto ci specyficznych rodzajów dokumentów lub ich opisów. Analizowane dokumenty to przede wszystkim pliki HTML, pliki obrazków czy wiadomo ci e-mail. Wi kszo z nich to dokumenty tekstowe, które z regu y nie posiadaj strukturalnej budowy. Jest to przeszkoda, która znacznie utrudnia automatyczne wyodr bnianie informacji z takich dokumentów. Jedno z rozwi za, stosowanych podczas automatycznego pobierania danych, polega na wykorzystaniu jak najwi kszej ilo ci informacji dotycz cych struktury analizowanego dokumentu. Na podstawie tych informacji tworzony jest odpowiedni model dla pobieranych danych. Web content harvesting, to tak e technika polegaj ca na próbie udoskonalenia wyszukiwarek zawarto ci analizowanych dokumentów. Zasada dzia ania opiera si na dok adnym sprecyzowaniu kryteriów wyszukiwania, a nast pnie odnalezieniu s owa kluczowego. Na podstawie uzyskanych wyników tworzone s proste statystyki obrazuj ce powi zania s ów kluczowych oraz fraz w analizowanym dokumencie. Web structure harvesting To technika gromadzenia informacji, której g ówn zalet jest fakt, na stronach WWW mo e znajdowa si o wiele wi cej informacji, ni te, które widoczne s go ym okiem. Analiza struktury dokumentu pozwala na ich dok adne wyodr bnienie. Dane te to przede wszystkim linki b ce odno nikami do zewn trznych róde, które mog wskazywa na bogate tre ci oraz ró norodn tematyk zwi zan z analizowan stron WWW. Mówi c obrazowo analiza struktury badanego dokumentu odbywa si tak jak by my analizowali bibliografi przyk adowej ksi ki. Istnieje wi c prawdopodobie stwo, 6
e sprawdzaj c odwo ania do innych ksi ek, trafimy na informacje których poszukujemy. Web usage harvesting Technika ta opiera si na analizie informacji zapisanych przez serwery WWW. Gromadzone s wszystkie informacje zwi zane z dzia aniem ytkownika odwiedzaj cego dan stron WWW. Pó niejsze przetworzenie takich informacji umo liwia przede wszystkim zrozumienie zachowa ytkowników oraz ocen efektywno ci struktury danej strony WWW. Technika ta, w zale no ci od poszukiwanych informacji, dzieli si na: - General access - pattern tracking - Logi serwera WWW analizowane w poszukiwaniu informacji dotycz cych wszystkich u ytkowników. - Customized usage tracking - Logi serwera WWW analizowane w poszukiwaniu informacji dotycz cych konkretnego u ytkownika. Rysunek 1. "WebHarvesting" - stosowane techniki. ród o: opracowanie w asne, na podstawie [ Web Harvesting, Computerworld, Russell Kay] 7
2.2 PARSOWANIE DOKUMENTÓW TEKSTOWYCH Parser, zwany równie analizatorem sk adniowym to program, którego ównym zadaniem jest analiza danych wej ciowych w celu okre lenia ich gramatycznej struktury. Parsowanie to proces czytania danych, wspomagaj cy przetwarzanie czytelnego dla cz owieka tekstu w struktur danych, która pó niej mo e by wykorzystywana jest w systemie informatycznym. Stopie trudno ci ekstrakcji informacji uzale niony jest od struktury parsowanego dokumentu. Dokumenty tekstowe o usystematyzowanej budowie parsowane s atwiej ani eli dokumenty nie posiadaj ce budowy strukturalnej. Techniki parsowania dokumentów tekstowych: Dokumenty TXT nie posiadaj ce usystematyzowanej budowy - Information Extraction (Ekstrakcja Informacji) zadaniem tej techniki jest zidentyfikowanie s ów kluczowych, ich wyst pie oraz powi za w dokumentach pisanych j zykiem naturalnym, a nast pnie wyodr bnienie tych e faktów. Informacja, która pozyskiwana b dzie z dokumentu, jest specyfikowana przez u ytkownika. Tworzony jest wzorzec na podstawie którego dokonywana b dzie pó niejsza ekstrakcja informacji. Na takie wzorce sk adaj si elementy, które nast pnie wype niane s fragmentami tekstu (s owami kluczowymi) lub wybranymi predefiniowanymi warto ciami. Do systemu IE wprowadzane dokumenty napisane w j zyku naturalnym, natomiast na wyj ciu pojawiaj si dokumenty ustrukturalizowane, b ce odwzorowaniem tre ci danego dokumentu. W procesie tworzenia systemów IE (systemów ekstrakcji tekstów) stosowane s dwa ró ne podej cia, podej cie in ynierii wiedzy (Knowledge engineering) oraz podej cie ucz ce (Learning approach). W podej ciu in ynierii wiedzy tworzenie i rozwijanie regu zaznaczania oraz sama ekstrakcja odbywa si we wspó pracy z ekspertem, który 8
wykorzystuj c swoj wiedz dokonuje operacji na przetwarzanym dokumencie. W podej ciu ucz cym, system ekstrakcji sam uczy si regu wyodr bniania na podstawie r cznie opisywanych dokumentów oraz interakcji z u ytkownikiem. Du o lepsze wyniki osi gane s przy tworzeniu systemów ekstrakcji informacji z wykorzystaniem wiedzy eksperta, jednak e w pewnych przypadkach automatycznie wyuczone regu y ekstrakcji mog okaza si doskonalsze. - Text Mining to technika wywodz ca si od poj cia data mining, ca uszczegó owieniem techniki dr enia danych. Technika ta zajmuje si ekstrakcj, wyszukiwaniem informacji, kategoryzacj tekstu oraz uczeniem maszynowym. Celem tej techniki jest odnalezienie istotnej, wcze niej nieznanej i wyczerpuj cej wiedzy z nieustrukturalizowanych danych tekstowych. Technika ta posiada wiele cech wspólnych z technikami IE. Istotn jednak ró nic jest fakt, w technice IE ekstrakcji dokonuje si na podstawie wcze niej okre lonych wzorców. W przypadku techniki text mining wzorce wychwytywane s dopiero podczas przetwarzania dokumentu tekstowego i nie s one znane wcze niej. Dokumenty XML (Extensible Markup Language) o budowie strukturalnej Ze wzgl du na usystematyzowan budow dokumentów XML stworzono kilka rodzajów interfejsów API (Application Programming Interface), s cych do parsowania oraz ekstrakcji informacji. Ka dy z nich prezentuje odmienn metod dost pu do elementów struktury analizowanego dokumentu. Na szczególn uwag zas uguj nast puj ce interfejsy: - Bazuj ce na strukturze drzewa prezentuj dokument w postaci w ów drzewa, zwykle w ca ci adowanego do pami ci. Jednym z najpopularniejszych interfejsów jest obiektowy model dokumentu DOM (Dokument Object Model), który jest standardem konsorcjum W3C. Dzi ki obiektowemu podej ciu do dokumentu DOM umo liwia atwe 9
czytanie, przetwarzanie oraz modyfikacje elementów struktury dokumentu XML. - Bazuj ce na kursorach umo liwiaj przegl danie interesuj cego nas fragmentu dokumentu, bez konieczno ci adowania ca ego pliku XML do pami ci operacyjnej. Jest to znacz ca przewaga nad interfejsami API o modelu drzewa, umo liwiaj ca tworzenie, przetwarzanie oraz optymalizacj dokumentu w miar zaistnia ych potrzeb bez konieczno ci ponownego wczytania ca ego dokumentu do pami ci. - Bazuj ce na strumieniach umo liwiaj przetwarzanie dokumentu XML bez potrzeby przechowywania w pami ci jakichkolwiek innych danych ni tylko zawarto elementu aktualnie przetwarzanego w a. Zalet tego typu interfejsów jest to, i pozwalaj one na przetwarzanie dokumentów o du ych rozmiarach nie obci aj c zbytnio pami ci operacyjnej. Dokumenty HTML (HyperText Markup Language) o budowie strukturalnej Strukturalna budowa dokumentów HTML istnieje tylko w teorii. W praktyce jest ona bardzo rzadko spotykana. G ówn przyczyn zacierania strukturalnej budowy staje si zespolenie merytorycznej zawarto ci dokumentu wraz z znacznikami odpowiedzialnymi za sposób wizualnej prezentacji tych e danych oraz niezgodno dokumentów z przyj tymi standardami. Najbardziej rozpowszechnionymi parserami dokumentów HTML przegl darki internetowe, wykorzystuj one obiektowy model dokumentu (DOM) w celu prezentacji z onego dokumentu HTML. Dzi ki zastosowaniu DOM mo liwe jest odwo anie do dowolnego elementu dokumentu strony, poprzez wywo anie odpowiedniej metody. Podczas analizy kodu ród owego dokumentu, przegl darki internetowe odnajduj znaczniki HTML oraz w zale no ci od ich atrybutów i przeznaczenia odpowiednio formatuj tekst znajduj cy si wewn trz tych znaczników. 10
Tak przetworzony tekst wy wietlany jest w oknie przegl darki, w formie atwej do zrozumienia przez u ytkownika ko cowego. Pierwszym krokiem przed zastosowaniem metod wydobywania wiedzy jest nadanie uporz dkowanej formy danym wej ciowym. Jest to trudne zadanie, gdy dane opisuj ce sie Web (dokumenty HTML) maj bardzo cz sto niejednorodn posta, a ich zawarto ci ko przekszta ci do tabeli wykorzystywanej przez algorytmy wydobywania wiedzy. Wówczas jedyn metod wyodr bnienia pozyskiwanych informacji jest parsowanie dokumentu HTML jako zwyk ego dokumentu tekstowego (z wykorzystaniem technik information extraction lub text mining ). Aby jednak by o to mo liwe nale y wcze niej wyeliminowa wszystkie zb dne informacje z analizowanego dokumentu HTML (zb dne informacje to przede wszystkim znaczniki kodu HTML). 11
2.3 DETEKCJA TRE CI W OBRAZACH RASTROWYCH Techniki wykorzystywane do wyodr bniania warstw tekstu z obrazów rastrowych znane s g ównie jako techniki OCR. Ich zadanie to przede wszystkim rozpoznawanie tekstu, ci gu znaków (g ównie znaków drukowalnych) oraz rozpoznawanie pisma r cznego. Zastosowanie takich technik owocuje zmniejszeniem wymaganej przestrzeni dyskowej do gromadzenia danych (g ownie zeskanowanych dokumentów), usprawnieniem wyszukiwania po danych informacji oraz umo liwieniem edycji przetworzonych dokumentów. Detekcja tre ci z obrazów rastrowych mo liwa jest dzi ki wykorzystaniu nast puj cych metod: - Pattern Recognition (rozpoznawanie wzorca), - Artifical Inteligence (sztuczna inteligencja), - Computer Vision (widzenie komputerowe), - Machine Learning (uczenie maszynowe). Aby atwiej zrozumie techniki OCR, poni ej przedstawiono etapy analizy obrazów oraz detekcji tre ci: PRZETWARZANIE WST PNE (Preprocessing) ETAP 1 SEGMENTACJA OBRAZU (Image decomposition) ETAP 2 ROZPOZNAWANIE ZNAKÓW (Character Recognition) ETAP 3 ANALIZA J ZYKOWA (Language Analysis) ETAP 4 Rysunek 2. Etapy rozpoznawania obrazów rastrowych, detekcja tre ci oraz ich analiza. Szczegó owy opis etapów w dalszej tre ci pracy. ród o: opracowanie w asne. 12
Przetwarzanie wst pne (ang. preprocessing) Pierwszy krok rozpoznawania tre ci z obrazów rastrowych. Na tym etapie wykonywana jest wst pna analiza obrazu, której efektem jest rozpoznanie orientacji tekstu, jego ewentualna korekcja, rozpoznanie kolorów czcionki, t a. Segmentacja obrazu (ang. image decomposition) Kolejny etap rozpoznawania, gdzie dokonywana jest identyfikacja powierzchni jednolitych, czyli jednoznaczne okre lenie, do jakiego obszaru nale y poszczególny punkt obrazu. Obszary jednolite to np. strefy o zbli onym poziomie jasno ci lub identycznej kolorystyce. Proces segmentacji wspomagaj algorytmy wykrywania kraw dzi, analizy skupie, progowania, metod obszarowych oraz algorytmy hybrydowe (wykorzystuj ce kilka powy szych algorytmów jednocze nie). Szczegó owy opis technik segmentacji mo na znale w publikacji R. Tadeusiewicza Komputerowa analiza i przetwarzanie obrazów. Rozpoznawanie znaków (ang. character recognition) Na podstawie wcze niejszych etapów dokonywane jest rozpoznanie ci gu znaków. W zale no ci od zastosowanej metody (OCR lub ICR opisane dok adniej w tym rozdziale) oraz jako ci przetwarzanego obrazu otrzymujemy wynik o ró nym stopniu zgodno ci tre ci z orygina em. Analiza j zykowa (ang. language analysis) Ostatni etap detekcji tre ci. W prostych systemach rozpoznawania tre ci sprowadza si ona do sprawdzenia poprawno ci wyrazów na podstawie zdefiniowanego s ownika. W systemach zaawansowanych (ICR) wyodr bniony tekst analizowany jest równie pod k tem poprawno ci gramatycznej, rozpoznawany jest j zyk, oraz yta czcionka. OCR (Optical Character Recognition) To jedna z podstawowych technik detekcji tre ci z obrazów rastrowych. Pocz tkowo by to prosty mechanizm porównuj cy pojedyncze obszary zeskanowanych liter z ich odpowiednikami w podr cznej bazie danych 13
wzorców. Baz wzorców (znormalizowanych zestawów znaków OCR-A oraz OCR-B) by zbiór bitmap przedstawiaj cych kszta ty poszczególnych czcionek. Dzia anie systemów OCR oparte jest przede wszystkim na tzw. rozpoznawaniu wzorca (ang. pattern recognition), które na podstawie wiedzy apriorycznej d y do klasyfikacji analizowanych danych. Wad tej metody jest jej ograniczone dzia anie, poniewa potrafi ona rozpozna (dopasowa ) tylko takie znaki jakich wzorce przechowuje w swojej bazie bitmap. Ograniczenie to dotyczy zarówno czcionki jak i jej rozmiaru (wielko ci analizowanego znaku). Kolejn metod rozpoznawania tre ci w systemach OCR jest tzw. metoda ekstrakcji cech (ang. feature extraction method). W przeciwie stwie do metody rozpoznawania wzorca, metoda ekstrakcji cech nie próbuje dopasowa litery analizowanego obrazu do przechowywanego w systemie wzorca, lecz opiera swoje dzia anie na rozpoznaniu, analizie oraz dopasowaniu cech danego znaku. Lista cech przechowywana jest w bazie danych cech, w której opisane s w asno ci poszczególnych znaków. Dobrym przyk adem do przedstawienia funkcji cech danego znaku jest litera a przedstawiona na rysunku 3. Rysunek 3. Cechy budowy litery "a". ród o: Opracowanie w asne na podstawie [http://www2.mustek.com/class/ocrinfo.html, 2007] 14
Cechy charakteryzuj ce t liter to: - Podstaw budowy jest okr g. - Po prawej stronie w stosunku do okr gu znajduje si pionowa linia. - Nad okr giem znajduje si uk i jest on opcjonalny. Reasumuj c, je eli zeskanowany znak posiada wy ej wymienione cechy zostanie zinterpretowany jako litera a. Kompletny system rozpoznawania i ekstrakcji cech sk ada si z nast puj cych elementów: - Czujnika (Analizatora obrazu), dostarczaj cego informacji na temat klasyfikowanych danych, czyli zeskanowanych znaków. - Mechanizmu wydobywania cech (Segmentacji obrazu), który na podstawie analizy tworzy symboliczn informacj - Schematu decyzyjnego wraz ze zbiorem cech (Systemu regu oraz baza cech), który w oparciu o symboliczne cechy obiektów realizuje w ciw cz procesu klasyfikacji. W systemach OCR stosowana jest równie metoda korekcji pisowni (ang. spell checking metod). Trzeba powiedzie, i adna z wy ej wymienionych metod nie daje 100% pewno ci, e ka dy znak zostanie rozpoznany. Skuteczno rozpoznawania zwi ksza czenie powy szych metod, lecz nie zawsze przynosi po dany efekt. Aby zwi kszy prawdopodobie stwo poprawnego rozpoznania tre ci stosuje si przedstawian tutaj metod. Zasada jej dzia ania opiera si na analizie s siednich znaków oraz ca ego s owa w celu okre lenia, jaki znak znajduje si mi dzy nimi. Sytuacj tak idealnie obrazuje poni szy przyk ad: System OCR nie potrafi rozpozna litery e w s owie t~st, po zastosowaniu metody korekcji pisowni, analizie s siednich liter oraz ca ego s owa system spekuluje, i brakuj liter jest litera e a szukanym s owem jest s owo test. Najlepsze systemy detekcji tre ci z obrazów rastrowych wykorzystuj wszystkie powy ej przedstawione metody, co diametralnie podwy sza skuteczno wyodr bniania tre ci. W dziedzinie rozpoznawania tre ci istniej 15
równie systemy wykorzystuj ce elementy sztucznej inteligencji, znane jako ICR. ICR (Intelligent Character Recognition) ICR to okre lenie zaawansowanych technik rozpoznawania tekstu opartych o sztuczn inteligencj oraz sieci neuronowe. Techniki te wykorzystywane s do rozpoznawania wielu rodzajów pisma, w tym pisma odr cznego. Rozpoznawanie znaków drukowalnych dla tych systemów nie stanowi wi kszych problemów. Trudno pojawia si, gdy mamy do czynienia z rozpoznawaniem pisma odr cznego (ang. handwriting recognition), jednak e i z tym problemem systemy ICR potrafi sobie radzi. Dzi ki modu owi automatycznego uczenia (ang. self-learning module) z atwo ci poszerzaj swoj baz wiedzy (baz wzorców pisma odr cznego, zarówno kroje czcionek jak i kategorie pisma - charakter). Z racji tego, i systemy rozpoznawania pisma odr cznego s dopiero w fazie rozwoju ich skuteczno jest do niewielka, lecz w niektórych przypadkach osi ga a 97%. Bardzo cz sto, szczególnie w przypadku rozpoznawania pisma odr cznego, wykorzystuje si kilka niezale nie pracuj cych mechanizmów czytaj cych (ang. read engines) wspó pracuj cych ze specjalnym oprogramowaniem, co zwi ksza efektywno rozpoznawania. Po zako czeniu procesu czytania ka dy z nich zwraca wynik, który traktowany jest jako g os. Wynik, który ma najwi ksz liczb g osów jest uwa any za wynik ostateczny. Wa nym elementem w rozwoju systemów ICR by a koncepcja automatycznego przetwarzania formularzy (ang. Automated Form Processing), która powsta a w roku 1993. Dzi ki niej powsta y trzy istotne etapy wyodr bniania informacji z plików graficznych. Pierwszy z nich to etap przechwytywania obrazu oraz jego przygotowania do przetworzenia. Kolejny proces polega na wyodr bnianiu informacji z wykorzystaniem systemów ICR. Ko cowym etapem jest przetwarzanie wyników zwróconych przez system ICR oraz ich automatyczna walidacja. 16
Wykorzystywanie w ten sposób systemów ICR do rozpoznawania tre ci zwi ksza u yteczno tej technologii i sprawia, e tego typu aplikacje zaczynaj by coraz cz ciej wykorzystywane w wiecie rzeczywistym jako oprogramowanie biznesowe. Poruszaj c temat rozwoju systemów automatycznego rozpoznawania tre ci z obrazów rastrowych warto wspomnie o technikach, których zadaniem jest przetworzenie obrazu w taki sposób, aby by on czytelny dla cz owieka a w zupe no ci nieczytelny dla komputera (systemów OCR). Techniki te okre lane s jako CAPTCHA. CAPTCHA (Completely Automated Public Turing Test to Tell Computers and Humans Apart) CAPTCHA, czyli w polskim t umaczeniu Automatyczny Test Turinga, to techniki wykorzystywane g ównie do zabezpieczenia formularzy na stronach WWW. Systemy CAPTCHA s przeciwie stwem systemów OCR. Ich zadanie polega na utrudnieniu dost pu do stron WWW automatom, zwanym równie robotami. Zabezpieczenie polega na stworzeniu tokena (obrazka z tre ci ), którego tre nale y wpisa w odpowiednie pole formularza, aby przej dalej. Przeczytanie jednak zwyk ego tekstu drukowalnego z obrazka to dla automatów aden problem. W systemach CAPTCHA stosowanych jest wiele rodzajów deformacji tre ci na tokenach. Najbardziej skutecznymi i trudnymi dla automatów s jednak: - U enie liter bardzo blisko siebie taki rozk ad utrudnia analizowanie ka dej litery z osobna, dodatkowo dwie litery mog zosta potraktowane jako jedna. - Nie linearne transformacje transformacje tekstu, z których nie da si rozpozna konturu liter. Przyk adem mog by obroty liter, przegi cia, fale. - Wyrazy nie s ownikowe losowo wygenerowane litery, utrudniaj przeczytanie zarówno cz owiekowi jak i maszynie. 17
Do najmniej skutecznych metod deformacji tokenów nale : - Zmniejszanie kontrastu oraz rozmycie tekstu systemy OCR, posiadaj wbudowane algorytmy poprawiania jako ci obrazu i wykrywania kraw dzi. W celu atwiejszego dopasowania wzorca OCR-y cz sto stosuj równie rozmycie analizowanego obrazu, tote ta metoda nie przyniesie oczekiwanego rezultatu. - Du e odst py mi dzy znakami takie rozwi zanie nie utrudnia, lecz atwia analiz danego obrazu, gdy z atwo ci mo na odseparowa od siebie ka z liter. - Stosowanie szumów kropki, kreski oraz inne znaki o grubo ci mniejszej ni grubo litery mo na usun bez wi kszych problemów stosuj c algorytmy redukcji szumów. W praktyce systemy CAPTCHA stosowane s w zabezpieczaniu: - portali internetowych przed zak adaniem kont przez automaty, - forum dyskusyjnych oraz formularzy kontaktowych przed wysy aniem spamu, - us ugi Whois przed automatycznymi zapytaniami, - dedykowanych aplikacji internetowych. 18
Praktyczne przyk ady tokenów obrazkowych wykorzystuj cych systemy CAPTCHA przedstawia poni sza tabela. Tabela 1. Przyk ady tokenów obrazkowych z wykorzystaniem systemów CAPTCHA Obraz Opis Bardzo dobry token, wykorzystuje liczne deformacje czcionki ród o: http://wikipedia.pl Prosty do odczytania, sta a czcionka bez deformacji. ród o: http://sam.zoy.org/pwntcha/ Bardzo dobry token, wykorzystuje liczne deformacje czcionki ród o: http://sam.zoy.org/pwntcha/ Bardzo dobry token, lecz czasami trudno rozpoznawalny dla cz owieka ród o: http://sam.zoy.org/pwntcha/ Bardzo dobry token, lecz czasami trudno rozpoznawalny dla cz owieka ród o: http://sam.zoy.org/pwntcha/ Bardzo prosty do odczytania, czcionki systematyczne bez deformacji, obrotów. T o atwe do usuni cia, wykorzystuj c algorytmy redukcji szumów. ród o: http://sam.zoy.org/pwntcha/ Do dobry token, wykorzystuje ró ne rodzaje t a oraz zniekszta cenia czcionek. ród o: http://sam.zoy.org/pwntcha/ 19
2.4 WYRA ENIA REGULARNE Wyra enia regularne (ang. Regular Expressions) to ci gi znaków za pomoc których mo emy okre li inne ci gi znaków, mówi c ci lej wyra enie regularne to wzór, do którego mo e zosta dopasowany ci g znaków o odpowiednim formacie. Wyra enia regularne to sposób na wydajne i elastyczne przetwarzanie tekstu. Same wyra enia regularne, których ogólna notacja wzorców to prawie j zyk programowania, s do opisywania oraz przetwarzania tekstów. W po czeniu z konkretnym narz dziem, w którym zosta y zaimplementowane, umo liwiaj dodawanie, usuwanie, wydobywanie i wszelkiego rodzaju przekszta cenia rozmaitych rodzajów danych. Ich posta mo e przyjmowa proste polecenia w edytorach tekstów, ale równie mo e stanowi ca y j zyk do przetwarzania tre ci.. Niestety, wyra enia regularne nie istniej same dla siebie. Dlatego aby oprze o nie nasze dzia ania nale y wykorzysta j zyki programowania, które maj zaimplementowany odpowiedni mechanizm wsparcia. Wyra enia regularne wspiera równie wiele narz dzi, pocz wszy od zwyk ych edytorów tekstu a sko czywszy na narz dziach systemów typu POSIX. POSIX (ang. Portale Operating System Interface, czyli przeno ny interfejs systemu operacyjnego) to standard zapewniaj cy przeno no pomi dzy systemami operacyjnymi. Ta norma obejmuje równie specyfikacj wyra regularnych oraz wiele innych tradycyjnych narz dzi, które dzia aj zgodnie z tym standardem. Twórcy standardu POSIX zdefiniowali tylko dwie klasy wyra regularnych. Nale do nich podstawowe wyra enia regularne (ang. Basic Regular Expressions BRE) oraz rozszerzone wyra enia regularne (ang. Extended Regular Expressions ERE). Narz dzia w pe ni zgodne ze standardem POSIX wykorzystuj jedn z tych odmian. 20
W poni szej tabeli przedstawiono metaznaki obu odmian POSIXowych. Tabela 2. Odmiany wyra regularnych w standardzie POSIX Funkcja wyra regularnych BRE ERE Kropka, ^, $, [ ],[^ ] *, +,?, {min, max} Grupowanie Kwantyfikatory przy nawiasach okr ych Odwo ania wsteczne Alternacja *,,, \{min, max \} \( \) \1 do \9 *, +,?, {min, max} ( ) obs uguje dan funkcj nie obs uguje danej funkcji Znaki oraz metaznaki Wyra enia regularne zbudowane s z dwóch typów znaków. Znaki specjalne to tzw. metaznaki lub metasekwencje, których interpretacja ci le zale y od ich znaczenia. Pozosta e znaki to znaki dos owne, litera y lub po prostu zwyk y tekst, który interpretowany jest dos ownie. Metaznaki wykorzystywane w wyra eniach regularnych to., +,?, *, ^, $, \,, [, ], (, ), {, } 21
W poni szej tabeli zosta y zestawione wszystkie znaki specjalne wraz z ich opisem. Tabela 3. Funkcje metaznaków w wyra eniach regularnych Znak Pe niona funkcja. Znak Kropki reprezentuje dowolny znak w wyra eniu regularnym + Znak Plus okre la, i poprzedzaj cy go znak w wyra eniu regularnym musi wyst pi przynajmniej jeden raz? Znak Pytajnik okre la, i poprzedzaj cy go znak mo e w wyra eniu wyst pi, lecz nie musi * Znak Gwiazdki okre la dowoln liczb powtórze znaku, który zosta przed ni zamieszczony. Liczb powtórze mo e by równie zero. ^ Znak Karet reprezentuje pocz tek wiersza $ Znak Dolar reprezentuje koniec wiersza \ Znak Uko nik (Backslash) Znak ten, umieszczony przed metaznakiem odwo uje jego specjalne znaczenie, wówczas nast puj cy po nim znak traktowany jest jak litera Znak Alternacji s y do konstrukcji wyra sk adaj cych si z kilku alternatywnych cz onów [ ] Nawiasy kwadratowe w wyra eniu regularnym umo liwiaj okre lenie zbioru znaków, czyli tzw. klasy znaków ( ) Nawiasy okr e umo liwiaj zapami tanie znalezionych fragmentów wyra { } Nawiasy klamrowe wykorzystywane w celu dok adniejszego sprecyzowania liczby powtórze wyst puj cego przed nawiasem pocz tkowym znaku Kwantyfikatory i kwantyfikatory przedzia u Kwantyfikatory to metasekwencje do czane do wyra enia regularnego pe ni ce funkcj zliczania. Do kwantyfikatorów zaliczamy nast puj ce metaznaki: - Znak zapytania (?) Metaznak ten znaczy opcjonalnie. Znak pytajnika umieszczamy po znaku, który mo e si pojawi w danym miejscu, ale którego obecno nie jest wymagana, aby wyra enie zosta o dopasowane. Znak ten dotyczy tylko i wy cznie bezpo rednio poprzedzaj cego go znaku. 22
- Znak plus (+) Metaznak ten oznacza dopasuj co najmniej jeden element. Znak plus umieszczamy po znaku, który musi si pojawi w dopasowanym wyra eniu przynajmniej jeden raz. Znak ten dotyczy tylko i wy cznie bezpo rednio poprzedzaj cego go znaku lub grupy znaków. - Znak gwiazdki (*) Metaznak, którego funkcja jest bardzo zbli ona do funkcji znaku plus. Pomi dzy nimi istnieje tylko jedna zasadnicza ró nica. Znak gwiazdki oznacza dopasuj dowoln liczb elementów w tym równie zero. W wyra eniach regularnych istnieje równie mo liwo precyzyjnego okre lenia liczby wyst pie poprzedzaj cego znaku lub grupy znaków. W tym celu wykorzystuje si specjalne konstrukcje wyra ({min,max}) zwane kwantyfikatorami przedzia u. Konstrukcja ta wykorzystuje nawiasy klamrowe w celu okre lenia minimalnej oraz maksymalnej liczby wyst pie poprzedzaj cego jej znaku lub grupy znaków. Przyk adowo wyra enie postaci x{3,10} oznacza do 10 dopasowa litery x, ale do powodzenia dopasowania wystarcz ju jej 3 powtórzenia. Klasy znaków Konstrukcja wyra enia regularnego, zawieraj ca w swojej tre ci wyra enie postaci [ ], okre lana jest mianem klasy znaków. Pozwala ona na dopasowanie do wzorca znaków, które znajduj si wewn trz tej klasy. Je li natomiast w wyra eniu regularnym u yjemy sekwencji [^ ], wówczas do wzorca dopasowany zostanie dowolny znak nie b cy na li cie w tej e klasie. Taka konstrukcja nosi nazw negacji klasy znaków. Klasa mo e zawiera nieograniczon ilo dowolnych znaków. Przyk adowo, wyra enie postaci [1234] b dzie pasowa o do dowolnej, z wymienionych wewn trz klasy cyfr. Klas t mo na by wykorzysta (jako cz wyra enia) do odnalezienia nast puj cych znaczników kodu HTML: 23
<h1>, <h2>, <h3>, <h4>. W takim przypadku wyra enie regularne mia oby nast puj posta <h[1234]>. W klasie znaków mo emy wyró ni tzw. metaznaki klasy znaków, nimi zarówno znak my lnika ( ) jak równie znak karet (^). Pierwszy z nich wskazuje na przedzia znaków. Drugi przyjmuje znaczenie negacji (odwrotno ci listy). Przy u yciu tych metaznaków mo emy zapisa nast puj ce klasy znaków: [a-z] oznacza wszystkie ma e litery od a do z [A-Z] oznacza wszystkie du e litery od A do Z [0-9] oznacza wszystkie cyfry od 0 do 9 [^a-z] oznacza wszystkie znaki nie b ce ma ymi literami od a do z [^A-Z] oznacza wszystkie znaki nie b ce du ymi literami od A do Z [^0-9] oznacza wszystkie znaki nie b ce cyframi. Mo liwe jest równie po czenie kilku zakresów, np. [a-za-z0-9] oznacza dopasowanie wszystkich znaków alfanumerycznych (du e i ma e litery oraz cyfry) lub [^a-za-z0-9] wówczas wyra enie oznacza dopasowanie wszystkich znaków ró nych od liter du ych i ma ych oraz cyfr. Warto zauwa, i znak my lnika jest metaznakiem tylko wtedy, gdy znajduje si wewn trz klasy znaków. Je li ponadto w klasie znaków wymieniony jest jako pierwszy, nie oznacza zakresu, a wi c nie jest interpretowany jako metaznak, lecz jako zwyk y litera. Podobna sytuacja dotyczy metaznaku karet (^). Równie istotnym i znacz cym elementem jest fakt, i wszystkie metaznaki wyra regularnych umieszczone w klasie znaków trac swoje specjalne znaczenie a ich interpretacja odbywa si tak jak ze zwyk ymi litera ami. 24
Predefiniowane klasy znaków Predefiniowane klasy znaków, to skrótowy zapis niektórych klas znakowych. Wprowadzenie predefiniowanych klas ma na celu u atwienie tworzenia oraz zwi kszenie czytelno ci zapisu wyra enia regularnego. Wszystkie skrótowe zapisy zestawiono w poni szych tabelach. Tabela 4. Predefiniowane klasy znaków Symbol Oznaczenie \d Cyfra. Oznacza to samo co klasa znaków [0-9] \D Znak nie b cy cyfr. Oznacza to samo co klasa znaków [^0-9] \w Znak b cy cz ci s owa. Oznacza to samo co klasa znaków [a-za-z0-9] \W Znak nie b cy cz ci s owa. Oznacza to samo co klasa znaków [^a-za-z0-9] \s Bia y znak. Oznacza to samo co [ \f\n\r\t\v] \S Znak nie b cy bia ym znakiem. Oznacza to samo co wyra enie [^ \f\n\r\t\v] Tabela 5. Predefiniowane klasy znaków posixowych (POSIX) Symbol Oznaczenie [:alnum:] Znaki alfabetyczne i numeryczne [:alpha:] Znaki alfabetyczne [:blank:] Znaki spacji i tabulacji (bia e znaki) [:cntrl:] Znaki steruj ce [:digit:] Cyfry [:graph:] Znaki inne ni znaki bia e [:lower:] Ma e litery [:print:] Znaki drukowalne [:punct:] Znaki interpunkcyjne [:space:] Wszystkie bia e znaki (znak nowego wiersza oraz powrotu karetki) [:upper:] Wielkie litery [:xdigit:] Cyfry szesnastkowe 25
Grupowanie, ograniczenie alternacji oraz zapami tywanie tekstu Mechanizm grupowania dost pny jest dzi ki zastosowaniu nawiasów okr ych. Umo liwia on wyodr bnienie pewnej cz ci wyra enia a nast pnie traktowanie jej jako ca ci. W zwi zku z tym nast puj cy po grupie metaznak, dzie odnosi si do ca ej grupy a nie bezpo rednio do poprzedzaj cego go znaku. Alternacja, oznaczana znakiem to dopasowanie jednego z wielu podwyra. W praktyce odpowiada logicznemu operatorowi lub. Dzi ki tej metasekwencji mo emy po czy wiele wyra w jedno, do którego dopasowane zostanie dowolne z podwyra sk adowych. Na przyk ad temperatura i wilgotno to dwa oddzielne wyra enia, podczas gdy oddzielone znakiem alternacji temperatura wilgotno stanowi ju jedno wyra enie dopasowuj ce dowolne z podwyra. Ograniczenie alternacji to kolejna funkcja nawiasów okr ych. Stosowana w celu ograniczenia zasi gu dzia ania alternatywy, skrócenia oraz zwi kszenia czytelno ci wyra enia regularnego. W poni szym wyra eniu zastosowano ograniczenie alternacji: (T t)temperatura (odczuwalna punktu rosy) Do takiego wzorca dopasowane mog zosta nast puj ce tre ci: Temperatura odczuwalna, temperatura odczuwalna, Temperatura punktu rosy, temperatura punktu rosy. Wyra enie to bez wykorzystania ograniczenia alternacji przyj oby o wiele sz posta, cho znaczenie mia oby identyczne: Temperatura odczuwalna temperatura odczuwalna Temperatura punktu rosy temperatura punktu rosy Zapami tywanie tekstu, to ju ostatnia z funkcji, do których wykorzystywane s nawiasy okr e. Umo liwia ona zapami tanie i przechowanie dopasowanego do wyra enia tekstu. Aby wykorzysta mechanizm przechwytywania i zapami tywania nale y u nast puj cej metasekwencji (?: wyra enie regularne) 26
Je li dany program zapewnia obs ug odwo wstecznych, ci g \cyfra oznacza b dzie tekst pasuj cy do podwyra enia zawartego w kolejnej parze nawiasów okr ych. Zazwyczaj ilo mo liwych odwo nie powinna przekracza dziewi ciu podwyra. Podstawy dopasowywania Najwcze niejsze dopasowanie wygrywa to pierwsza zasada dzia ania wyra regularnych. Mówi ona, i dopasowanie, które w danym cuchu znaków rozpoczyna si wcze niej, jest zawsze preferowane wzgl dem innego by mo e równie poprawnego, lecz zaczynaj cego si pó niej. Poni ej dok adny opis dzia ania tej zasady: W pierwszej kolejno ci mechanizm próbuje dopasowa tekst po ony na samym pocz tku przeszukiwanego cucha znaków (tu przed pierwszym znakiem). Definicja próbowania, oznacza tutaj sprawdzenie ka dej permutacji ca ego wyra enia regularnego. Kiedy wszystkie mo liwo ci zostan wyczerpane a wyra enie nie zostanie dopasowane, wówczas ca a procedura próbowania odbywa si ponownie, tym razem od miejsca przed drugim znakiem. Takie próbowanie wykonywane jest w ka dym miejscu przeszukiwanego ci gu znaków, a do napotkania rozwi zania lub ko ca badanego cucha. Niektóre metasekwencje s zach anne to kolejna, równie istotna zasada dzia ania wyra regularnych. Brzmi ona nast puj co: Elementy, które mog by dopasowane zmienn liczb razy, zawsze dopasowywane tyle razy, ile tylko jest to mo liwe. Jest to dopasowanie zach anne. Mówi c ci lej, kwantyfikatory zadowalaj si minimaln liczb wymaganych dopasowa, tylko wtedy, gdy musz, lecz z regu y staraj si dopasowa tyle znaków ile tylko potrafi, a do maksymalnej dozwolonej liczby dopasowa. Do zach annych metaznaków nale :?, *, + oraz {min, max} 27
2.5 CYKLICZNE WYKONYWANIE ZADA Cykliczne wykonywanie zada, znane równie jako zlecenia sta e, to mechanizm zapewniaj cy regularne wykonywanie zdefiniowanych przez ytkownika zada w okre lonym odst pie czasowym. W systemach UNIX zlecenia sta e obs ugiwane s za pomoc programu us ugowego CRON, zwanego równie demonem systemowym. Demon systemowy to program uruchamiany automatycznie w momencie startu systemu. Po uruchomieniu systemu program taki jest obecny w pami ci operacyjnej a jego zadania wykonywane s w tle przez ca y okres pracy systemu. Zasada dzia ania Zasada dzia ania programu CRON opiera si o tzw. tabele zada (crontab), w których przechowywane s informacje: jakie zadanie, i w jakim czasie powinno zosta wykonane. Program ten automatycznie przegl da zawarto katalogu /var/spool/cron/crontabs w poszukiwaniu plików tabel. Znalezione tabele zostaj za adowane do pami ci operacyjnej. Nast pnie z odst pem czasowym jednej minuty, sprawdzane zostaj wszystkie za adowane tabele, je li które z zada w danej minucie powinno zosta wykonane to CRON automatycznie je uruchamia. Dodatkowo, równie z krokiem jednej minuty, sprawdzany jest czas modyfikacji katalogu /var/spool/cron/crontabs. Je li czas ten uleg zmianie, wówczas sprawdzone zostaj czasy modyfikacji tabel u ytkowników. Automatycznie od wie ane wszystkie tabele, które by y ostatnio zmieniane. Takie rozwi zanie sprawia, nie jest konieczne restartowanie demona po wprowadzeniu zmian w tabeli zada danego u ytkownika. 28
Tabele zada (crontab) Tabele zada przechowywane s w plikach tekstowych, których nazwy odpowiadaj nazwie u ytkownika, b cego w cicielem danej tabeli. Ka dy z u ytkowników mo e posiada maksymalnie jedn tabel zada. UNIX owe polecenie crontab pozwala na pe ne zarz dzanie t tabel. Po wykonaniu polecenia uruchamiany jest edytor, dzi ki któremu mo emy dodawa, usuwa lub modyfikowa zadania znajduj ce si w tabeli. Po opuszczeniu edytora lista zada zostaje automatycznie zapisana i zainstalowana. Plik tabeli sk ada si z wierszy. Ka dy wiersz definiuje oddzielne zadanie do wykonania, czas jego uruchomienia oraz opcjonalnie sposób raportowania wykonanego zadania. Podstawowy wiersz tabeli sk ada si z sze ciu pól oddzielonych spacj lub tabulatorem, pierwsze pi okre la moment czasowy, w którym zadanie powinno zosta wykonane, szóste za definiuje polecenie, jakie nale y wykona. Pola definiuj ce czas wykonania zadania oznaczaj : - pierwsze pole okre la minut (od 0 do 59), - drugie pole okre la godzin (od 0 do 23), - trzecie pole okre la dzie miesi ca (od 1 do 31), - czwarte pole okre la numer miesi ca (od 1 do 12), - pi te pole okre la dzie tygodnia (od 0 do 7). Konkretna warto wpisana w poszczególne pola mo e przyjmowa nast puj form : - pojedyncza liczba precyzuje dok adn warto (przyk adowo: zapis 55 w pierwszym polu oznacza, e zadanie powinno zosta wykonane w 55 minucie), - zakres okre la przedzia czasu w którym zadanie powinno by wykonywane (przyk adowo: zapis 1-10 w pierwszym polu oznacza, e zadanie powinno zosta wykonane w minutach od 1 do 10), - lista okre la dok adny czas wykonywania zadania (przyk adowo: zapis 1,5,10 w pierwszym polu oznacza, e zadanie powinno by wykonane w minucie pierwszej, pi tej i dziesi tej), 29
- wszystkie dopuszczalne oznacza przyjmowanie wszystkich warto ci dost pnych dla danego pola (przyk adowo: zapis * w polu pierwszym oznacza, i zadanie powinno by wykonywane co minut ), - krok okre la krok czasowy z jakim zadanie powinno zosta wykonane (przyk adowo: zapis */5 w polu pierwszym oznacza, i zadanie powinno by wykonywane z krokiem 5 minut. Zapis ten równowa ny jest zapisowi listy 0,5,10,15,20,25,30,35,40,45,50,55). Opcjonalne siódme pole w wierszu tabeli zada, okre la czy u ytkownik powinien by informowany o rezultatach (g ównie b dach) wykonywanego zadania. Informacja na temat zadania wysy ana jest drog elektroniczn na zdefiniowany adres email. 30
3. AUTORSKI SYSTEM DETEKCJI TRE CI ZE STRON WWW 31
W rozdziale tym poruszone zosta y g ówne kwestie zwi zane z projektowaniem oraz implementacj systemu detekcji tre ci ze stron WWW. Tworzenie oprogramowania oparto o wiedz z zakresu In ynierii Oprogramowania, a wi c w oparciu o poszczególne fazy ycia oprogramowania, pocz wszy od analizy zagadnienia a do ostatecznych testów i eksploatacji systemu. 3.1 ANALIZA ZAGADNIENIA Projektowane oprogramowanie powinno u atwia gromadzenie, integracj oraz archiwizacj danych meteorologicznych (takich jak temperatura, czy wilgotno ). Po dane warto ci pobierane b w sposób automatyczny ze stron WWW serwisów meteorologicznych. Wraz z warto ci poszukiwanych danych automatycznie pobierane b równie daty poszczególnych pomiarów. System powinien zapewnia pe integralno danych, czyli brak jakichkolwiek sprzeczno ci mi dzy danymi przechowywanymi w bazie a tymi, które publikowane by y na analizowanej stronie WWW. System powinien umo liwia tworzenie listy stacji pomiarowych, jednostek pomiarowych (odpowiednio dla mierzonych warto ci) jak równie przegl danie zarchiwizowanych pomiarów. Przechowywane w systemie informacje powinny by zabezpieczone przed nieupowa nionym dost pem. 3.1.1 WYMAGANIA FUNKCJONALNE W procesie analizy zagadnienia wydzielono nast puj ce wymagania funkcjonalne (za enia), które powinien spe nia zaprojektowany system: - system podczas dzia ania ma automatycznie rozpoznawa oraz pobiera dane meteorologiczne ze stron WWW, - pobrane dane, stacje pomiarowe oraz wprowadzone jednostki pomiarowe musz by archiwizowane w bazie danych, - zgromadzone dane powinny by spójne, - warto ci pomiarów dla których data pomiaru nie jest okre lona nie mog by archiwizowane, 32
- struktura bazy danych powinna umo liwia konstruowanie z onych zapyta dotycz cych przechowywanych danych, - zaprojektowana struktura powinna zapewnia integralno danych, - system ma udost pnia interfejsy do przetwarzania wpisów (stacje pomiarowe, jednostki pomiarowe). 3.1.2 WYMAGANIA NIEFUNKCJONALNE Wymagania niefunkcjonalne, czyli ograniczenia systemu s równie definiowane w procesie analizy. W projektowanym systemie przedstawiaj si nast puj co: - dzia anie systemu nie powinno obci serwerów WWW z których pobierane s informacje, - konstrukcja bazy danych powinna by jak najprostsza, atwa w zrozumieniu oraz funkcjonalna, - zarchiwizowane dane powinny by udost pnione do przegl dania tylko dla autoryzowanych u ytkowników, - interfejs systemu powinien by ergonomiczny, intuicyjny oraz prosty w obs udze. 33
3.2 MODEL STRUKTURY BAZY DANYCH W procesie modelowania struktury bazy danych uwzgl dniono zarówno wyniki fazy analizy jak równie ogólne zasady projektowania tego typu struktur danych. Poni szy rysunek przedstawia wszystkie tabele istniej ce w systemie oraz zachodz ce mi dzy nimi relacje (powi zania). Ka da tabela w bazie danych posiada unikaln nazw oraz klucz g ówny (Primary Key na rysunku 4 oznaczony jako PK) a tabele b ce w relacji z innymi posiadaj tzw. klucze obce (Foreign Key na rysunku oznaczone jako FK1 oraz FK2). Klucz g ówny to kolumna lub grupa kolumn, które jednoznacznie identyfikuj poszczególne wiersze tabeli. Klucz obcy to kolumna lub grupa kolumn, której warto ci nale do tej samej dziedziny, co klucz g ówny powi zanej z ni tabeli. Rysunek 4. Relacyjna struktura bazy danych projektowanego systemu. ród o: opracowanie w asne. 34
Zaprojektowana struktura relacyjnej bazy danych zapewnia: - integracj danych polegaj na tym, i w bazie danych nie ma niepotrzebnych danych, nie ma równie powtarzaj cych si wpisów oraz sprzecznych rekordów. - integralno danych, dotyczy przede wszystkim powi za (tzw. relacji) mi dzy danymi. Zmiany wprowadzone po jednej ze stron relacji odzwierciedlaj zmiany równie po drugiej stronie. Przyk adowo, je li usuniemy stacj pomiarow to jednocze nie usuni te zostaj wszystkie pomiary, które do tej stacji s przypisane. - spójno danych czyli, gwarancja zachowania integralno ci danych. Mówi c pro ciej, to gwarancja, e dane przechowywane w bazie danych zgodne z danymi, które ta baza reprezentuje. - niezale no danych polega ona na mo liwo ci wprowadzania modyfikacji w programie bez ingerencji w struktur jego danych oraz mo liwo ci zmian w bazie danych bez potrzeby poprawiania kodu ród owego programu. Niezale no danych w du ej mierze zapewniaj relacyjne modele danych, dlatego te taki model zosta zastosowany podczas projektowania tego systemu. 3.2.1 POWI ZANIA MI DZY TABELAMI (RELACJE) Relacyjny model bazy danych opiera si przede wszystkim na powi zaniach mi dzy tablicami danych, powi zania takie zwane s relacjami. Relacje wyra a si poprzez umieszczenie identycznych kolumn w przynajmniej dwóch tabelach. W relacyjnych bazach danych istniej trzy typy powi za mi dzy wierszami poszczególnych tabel: - relacje jeden do jednego (1:1) mówimy, e dwie tabele s w relacji jeden do jednego, je eli pojedynczemu wierszowi z tabeli pierwszej odpowiada dok adnie jeden wiersz z tabeli drugiej i odwrotnie. 35
- relacje jeden do wielu (1:n) powi zanie takie istnieje wówczas, je eli jednemu wierszowi z tabeli pierwszej odpowiada jeden lub kilka wierszy z tabeli drugiej, natomiast ka demu wierszowi z tabeli drugiej odpowiada dok adnie jeden wiersz z tabeli pierwszej. - relacje wiele do wielu (m:n) pomi dzy dwiema tabelami wyst puje relacja wiele do wielu, je eli jednemu wierszowi z tabeli pierwszej odpowiada jeden lub kilka wierszy z tabeli drugiej i odwrotnie pojedynczy rekord z tabeli drugiej mo e by powi zany z jednym lub kilkoma wierszami z tabeli pierwszej. W projektowanym systemie okre lono nast puj ce typy relacji pomi dzy tabelami: - Relacj pomi dzy stacjami pomiarowymi (Measuring stations) a pomiarami (Measurements) ustalono na jeden do wielu (1:n), poniewa ka da ze stacji mo e posiada wiele pomiarów, natomiast ka dy pomiar nale y tylko do jednej ze stacji pomiarowych. - Relacj pomi dzy szablonami pomiarowymi (Templates) a pomiarami (Measurements) ustalono na jeden do wielu (1:n), poniewa na jednym szablonie mo na wykona wiele pomiarów, natomiast jeden z pomiarów móg zosta dokonany na podstawie jednego z szablonów. 3.2.2 TYPY DANYCH, DOMENY, ATRYBUTY Typy danych okre laj w ciwo ci poszczególnych kolumn w strukturze tabeli. Ka da z danych znajduj ca si w danej kolumnie tabeli musi by takiego samego typu. Domeny to zdefiniowane przez u ytkownika specjalne typy danych. Ka da z domen mo e zosta okre lona na podstawie standardowego typu danych oraz dodatkowych regu ograniczaj cych zbiór warto ci. Regu y te mog by przechowywane w kolumnach tabeli oraz mog definiowa domy lne warto ci danych w przypadku, gdy wymagana dana nie zosta a wprowadzona. 36
Okre lenie typu domen oraz atrybutów przeprowadzono dla ka dej z tabel. Wyniki pracy zestawiono w poni szych tabelach. Tabela 6. Struktura tabeli "Measuring stations", zdefiniowane atrybuty oraz domeny. ród o: opracowanie w asne. Measuring stations Nazwa pola Rodzaj atrybutu Opis Domena id Klucz ówny Identyfikator stacji pomiarowej INT(11) name Nazwa stacji pomiarowej VARCHAR(250) place Miejscowo lokalizacji stacji VARCHAR(100) street Ulica VARCHAR(150) postcode Kod pocztowy VARCHAR(10) district Województwo w którym znajduje si stacja pomiarowa VARCHAR(50) Tabela Measuring stations w tej tabeli przechowywane s dane wszystkich stacji pomiarowych, które zosta y wprowadzone do systemu. 37
Tabela 7. Struktura tabeli "Measurements", zdefiniowane atrybuty oraz domeny. ród o: opracowanie w asne. Measurements Nazwa pola Rodzaj atrybutu Opis Domena id Klucz Identyfikator pojedynczego ówny pomiaru INT(11) measuring_station_id Klucz Identyfikator stacji pomiarowej do której obcy przypisany jest pomiar INT(11) template_id Identyfikator szablonu, na Klucz podstawie którego obcy dokonany zosta pomiar INT(11) category Rodzaj dokonywanego pomiaru VARCHAR(150) unit Jednostka pomiarowa VARCHAR(5) value Warto pomiaru FLOAT(4,2) date Dok adna data pomiaru DATETIME Tabela Measurements w tej tabeli przechowywane s wszystkie zgromadzone pomiary. 38
Tabela 8. Struktura tabeli "Templates", zdefiniowane atrybuty oraz domeny. ród o: opracowanie w asne. Templates Nazwa pola Rodzaj atrybutu Opis Domena id Klucz Identyfikator szablonu ówny pomiarowego INT(11) www Adres WWW podstrony z której pobierane s VARCHAR(255) dane keyword owo kluczowe, uwzgl dniane podczas wyszukiwania VARCHAR(150) mierzonej warto ci direction Kierunek poszukiwania warto ci (na lewo od owa kluczowego lub VARCHAR(1) na prawo od s owa kluczowego) separator Separator dziesi tny VARCHAR(1) min_range Minimalny odst p owa kluczowego od poszukiwanej warto ci VARCHAR(10) (liczba znaków) max_range Maksymalny odst p owa kluczowego od poszukiwanej warto ci VARCHAR(10) (liczba znaków) case_sensitive Wielko znaków BOOL frequency_of_measuring Cz stotliwo dokonywania pomiarów VARCHAR(10) (w minutach) last_update Dok adna data ostatniej DATETIME 39