Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Składowanie i przetwarzanie danych językowych w relacyjnej bazie danych - korpus PELCRA i MySQL Piotr Pęzik.

Podobne prezentacje


Prezentacja na temat: "Składowanie i przetwarzanie danych językowych w relacyjnej bazie danych - korpus PELCRA i MySQL Piotr Pęzik."— Zapis prezentacji:

1 Składowanie i przetwarzanie danych językowych w relacyjnej bazie danych - korpus PELCRA i MySQL Piotr Pęzik

2 Powszechne formaty składowania danych korpusowych Pliki tekstowe, bez anotacji (najczęściej nieindeksowane) Pliki tekstowe z anotacją linearną (bez zewnętrznie definiowanej hierarchii znaczników) Pliki tekstowe ze sformalizowaną, hierarchiczną strukturą danych opartą na popularnych standardach przenoszenia/składowania danych (np. XML). Specjalnie implementowane struktury danych serializowane do postaci binarnej. Model, na którym oparte są takie struktury zależy od użytej platformy programistycznej. Rozwiązania łączone. Relacyjne bazy danych. (Formaty binarne oparte na szeroko przyjętym modelu relacyjnym, z interfejsami programistycznymi oraz językiem zapytań).

3 Kryteria wyboru systemu składowania i przetwarzania danych językowych Przejrzystość i łatwość zarządzania/rozbudowy przyjętego modelu danych Zapewnienie dostępności przez Internet (obsługa protokołów i technologii sieciowych) Minimalizacja wymogów sprzętowych i dodatkowego oprogramowania po stronie klienta Dystrybucja aktualizacji Zarządzanie użytkownikami/profilowanie dostępu Skalowalność Możliwości konwersji do innych formatów Zgodność z różnymi platformami programistycznymi

4 Model RDB – rys historyczny Po raz pierwszy opisany w latach 70-tych w raporcie technicznym IBM (RJ599). Edgar Frank Codd. A Relational Model of Data for Large Shared Data Banks Communications of the ACM, Vol. 13, No. 6, June 1970, pp Copyright © 1970, Association for Computing Machinery, Inc. 12 reguł modelu relacyjnego Codda. Czasem spotykana jest też dodatkowa (nieco tautologiczna) reguła: Dane przechowywane w relacyjnym systemie zarządzania danymi muszą być przetwarzane tylko i wyłącznie zgodnie z zasadami relacyjnego systemu danych. W praktyce oznacza to, że wiele implementacji baz danych to systemy quasi-relacyjne. 5 reguła Codda podkreśla potrzebę opracowania języka zapytań dla modelu RDB. Mimo, że pierwsza próba wypracowania ścisłego standardu języka SQL miała miejsce w 1992 roku (rewidowana w 1999 roku), to istniejące obecnie wersje języka SQL nie do końca spełniają jego wymogi

5 Korpus PELCRA w bazie MySQL Systemy RDB brane pod uwagę: POSTGRES, ORACLE, MySQL Ogólna opinia o MySQL – duża szybkość, ale stosunkowo słabo rozbudowana wersja SQL. MySQL 4.1, MySQL 5.0 – 1 milion pobrań w ciągu pierwszych 3 tygodni głównie ze względu na znaczne ulepszenia Korpus PELCRA – ponad 100,000,000 rekordów w 130 tabelach

6 Model RDB dla danych językowych 1 Podstawowe tabele (wszystkich130) Słowo – Zdanie – Akapit – Tekst Wiązanie przez klucz obcy. Ważne pole pozwalające przywrócić pierwotną strukturę linearną tekstu: sekwencja.

7 Tabela słowa

8 Tabela zdania

9 Tabela akapitu

10 Tabela tekstu

11 Przykładowe zapytanie wiążące tabele słowa i zdania select w.word_num, w.word lewe_slowo, w1.word prawe_slowo from pnc_word_token w, pnc_word_token w1, pnc_sentence s where w.word = 'życiowa'# warunek dla słowa w and w1.sentence_num = w.sentence_num# słowo w1 w tym samym zdaniu and w1.sequence = w.sequence + 1# pierwsze po prawej and w.sentence_num = s.sentence_num # wiązanie z tabelą zdania and s.type_num = 3# tylko pytania

12 Wynik

13 Płaskie tabele Czasem ze względów praktycznych warto złamać reguły relacyjne poprzez powtórzenie w różnych tabelach danych, które teoretycznie dałoby się wydobyć poprzez wiązania (na poziomie zdania i akapitu) oraz poprzez użycie tabel płaskich (nierelacyjnych), np. tabela corpus_frequency: frequency_numfrequencywordstop ,y y wy iy y sięy zy

14 Modelowanie i zarządzanie danymi

15 Dostępność zasobów przez Internet i wymagania po stronie klienta I Architektura Serwer RDB – Serwer WWW – Przeglądarka. Ograniczenia: Większość operacji formatowania danych (sortowanie, ograniczanie kontekstu – tylko poprzez skrypty) musi być zdefiniowana przed wysłaniem zapytania. Zalety: terminal z najprostszą przeglądarka pozwala na skorzystanie z pełnych możliwości sprzętowych i programistycznych serwera RDB oraz WWW: Serwer RDB (MySQL) Serwer RDB (MySQL) Serwer WWW (Linux/Apache/ PHP, ew. JSP) Serwer WWW (Linux/Apache/ PHP, ew. JSP) Przeglądarka

16 Dostępność zasobów przez Internet i wymagania po stronie klienta II Architektura Serwer RDB – Aplikacja Klienta (np. MySQL - Java JDBC). Wady: większe wymagania po stronie klienta. Zalety: szerokie możliwości przetwarzania wyników zapytań po stronie klienta. Serwer RDB MySQL Serwer RDB MySQL Aplikacja klienta (np. Java)

17 Dystrybucja aktualizacji Centralny system serwowania danych. Natychmiastowa aktualizacja. Wady: problemy z serwerem są odczuwane przez wszystkich użytkowników systemu. MySQL – replikowanie bazy.

18 Zarządzanie dostępem Poprzez tabelę user w bazie mysql Z wykorzystaniem warstwy aplikacji

19 Skalowalność I Zapytanie na tabeli word_token (93+ miliony rekordów. 1 serwer PENTIUM GHz, 2 GB RAM): select * from pnc_word_token WHERE word = 'woda' # 3876 wierszy w 0.91s

20 Skalowalność II select * from pnc_word_token WHERE word like 'wodn%' # 3138 wierszy w 1.19s select * from pnc_sentence WHERE sentence like '% woda %' # 2168 wierszy w 1.09s (6 millionów rekordów w tabeli).

21 Skalowalność III Efektywność spada znacznie przy: Stosowaniu skomplikowanych wiązań (szczególnie tzw. left-joins/outer-joins). Warto wiązać z możliwie najwyższego poziomu (stąd płaskie tabele i powtórzenie danych w różnych polach na różnych poziomach – ale nie chaotycznie). Grupowaniu na całej tabeli. Zastosowaniu złożonych wyrażeń regularnych na tabelach niskiego poziomu (REGEX i LIKE na word_token). Dużo zależy od stopnia przetworzenia przechowywanych w bazie danych.

22 Skalowalność IV Wykorzystanie indeksów typu FULL TEXT select * from pnc_sentence s where match(s.sentence) against('woda' in boolean mode) # 3834 rekordy w 0.5 sekundy (6 millionów rekordów w tabeli). select * from pnc_paragraph p where match(p.paragraph) against('woda' in boolean mode) # 3800 rekordów w 0.4 sekundy (2,5 milliona rekordów w tabeli

23 Skalowalność V Architektura rozproszona w MySQL 5.0 (klaster)

24 Konwersja do innych formatów, interfejsy programistyczne Wszelkie formaty tekstowe z poziomu SQL Do formatów binarnych przez interfejsy programistyczne, np. JDBC Szeroka kompatybilność, interfejsy dostarczane przez producentów bazy i platform programistycznych

25 Ograniczenia systemów RDB Ładowanie danych Centralizacja modelu: bezpieczeństwo danych, ograniczenia liczby jednoczesnych użytkowników (ale: możliwości automatycznego replikowania bazy) Ograniczenia implementacji języka SQL. Np. wbudowane funkcje wyrażeń regularnych zwracają jedynie wartości prawda/fałsz, a nie na przykład indeksy pasującego podłańcucha. Ewolucja MySQL: 4.0 sub-selects 4.1 group_concat() 5.0 własne (choć ograniczone) funkcje definiowane z poziomu SQL, formalnie definiowane klucze obce, tabele dynamiczne (tzw. widoki), wyzwalacze, definiowanie funkcji, procedury składowane, np.:

26 CREATE PROCEDURE `get_st_tt_ratio`() # Możliwe argumenty BEGIN BEGIN DECLARE v INT; DECLARE lim INT; DECLARE s_tt_r DOUBLE; SET v = 0; SET s_tt_r = 0; select 0 select count(*)/1000 from pnc_word_token into lim; WHILE limit 1000) mee; select max(word_num) from (select * from pnc_word_token where word_num limit 1000) sss; SET v = v + 1; SET s_tt_r = s_tt_r END WHILE; SET s_tt_r = (s_tt_r/lim); select s_tt_r; END; END;

27 Wnioski końcowe Bazy RDB wydają się szczególnie interesującym rozwiązaniem w sytuacji, gdy zachodzi potrzeba składowania i zarządzania dużą ilością wysoko przetworzonych danych językowych. Oferują one bardzo wysoką przejrzystość struktur danych i relacji między nimi, a także kompatybilność z każdą liczącą się platformą programowania aplikacji WWW oraz aplikacji typu Desktop. Na uwagę zasługuje również ich skalowalność, szczególnie w architekturze rozproszonej. Nieco gorzej systemy RDB wypadają w projektach o charakterze mocno eksperymentalnym, w których struktura modelu podlega wielokrotnym modyfikacjom i w których zachodzi potrzeba analizy niskoprzetworzonych danych.


Pobierz ppt "Składowanie i przetwarzanie danych językowych w relacyjnej bazie danych - korpus PELCRA i MySQL Piotr Pęzik."

Podobne prezentacje


Reklamy Google