• Nie Znaleziono Wyników

Normalizacja jednostek czasowych i przestrzennych

Rozdział 6. Opis systemu Hipisek

6.1. Zagadnienia implementacyjne

6.1.2. Normalizacja jednostek czasowych i przestrzennych

W systemie Hipisek normalizacja jednostek czasowych i przestrzennych pole-ga na transformacji oznaczonych jednostek czasowych i przestrzennych do postaci formalnej, niezbędnej do dalszego przetwarzania. W procesie normalizacji można wyróżnić dwa aspekty:

• normalizację jednostek przestrzennych, która polega na przyporządkowaniu

oznaczonej jednostce odpowiedniej jednostki z bazy wiedzy przestrzennej,

• normalizację jednostek czasowych, która polega na utworzeniu logicznej

re-prezentacji danej jednostki.

Zadanie normalizacji wykonuje moduł HipiNEN (od ang. Hipisek Named Entity

Normalization).

Jednostki przestrzenne

W przypadku normalizacji jednostek przestrzennych przetwarzane są wyłącznie jednostki, które oznaczone były za pomocą mechanizmu typu gazeter (czyli takie, których nazwa znajduje się w zebranej bazie wiedzy). W takim przypadku zadanie normalizacji redukuje się do odpowiedniego zapytania do bazy wiedzy przestrzennej. Problemem w przypadku normalizacji jednostek przestrzennych jest niejedno-znaczność nazw (porównaj identyczny problem w przypadku zbierania bazy wie-dzy przestrzennej opisany w podrozdziale 4.2). Niektóre nazwy mogą odnosić się do różnych pojęć. Na przykład nazwa Poznań odnosi się do stolicy Wielkopolski lub niewielkiej wsi w województwie Lubelskim.

Jako częściowe rozwiązanie tego problemu zastosowano zestaw heurystyk ujed-noznaczniających. W przypadku gdy jedna nazwa odnosi się do więcej niż jednej jednostki w bazie wiedzy, jednostki te sortowane są według zestawu heurystyk. Osta-tecznie wynikiem normalizacji jest jedna jednostka z bazy wiedzy dla danej nazwy (o najwyższej ocenie według zaagregowanej oceny heurystyk).

Wykorzystano następujące heurystyki:

• występowanie słów kluczowych — w przypadku wykrycia pewnych słów

kluczo-wych w pobliżu oznaczonej jednostki (zwykle przed jej oznaczeniem) premiowa-ne są jednostki, o typie zgodnym5 z typem przypisanym do słowa kluczowego (np. wystąpienie słowa osada przed nazwą Poznań spowoduje premiowanie jed-nostki o typie wieś),

• priorytety typów jednostek — niektórym typom jednostek mają wyższy priorytet

(np. typy kontynent i państwo mają ustawiony wysoki priorytet),

• kryterium liczby ludności — jednostki przestrzenne o większej liczbie ludności

są traktowane jako bardziej prawdopodobna interpretacja,

• kryterium zawierania — zakładamy że kontekstem przestrzennym jest Polska,

dlatego jednostki położone na terenie Polski są premiowane.

Działanie heurystyk ujednoznaczniających ilustrują następujące przykłady:

• Czy Poznań jest w Wielkopolsce? • Czy wieś Poznań jest w Wielkopolsce?

W pierwszym przypadku system Hipisek utożsamia nazwę Poznań z nazwą mia-sta będącego stolicą województwa Wielkopolskiego. Do ujednoznacznienia wykorzy-stano heurystykę wykorzystującą liczbę ludności oraz priorytety typów jednostek (typ miasto ma ustawiony wyższy priorytet niż typ wieś). Odpowiedzią na tak zin-terpretowane pytanie jest tak. Z wyjaśnienia dostarczanego przez system dowiadu-jemy się, że Poznań jest położony w gminie miejskiej Poznań, która jest położona w województwie Wielkopolskim. Odpowiedź systemu Hipisek została przedstawiona na rysunku 6.1.

Rysunek 6.1. Odpowiedź na pytanie Czy Poznań jest w Wielkopolsce?

W drugim przypadku system Hipisek utożsamia nazwę Poznań z nazwą wsi. Odpowiedzią na tak zinterpretowane pytanie jest nie. Z wyjaśnienia dostarczanego przez system dowiadujemy się, że wieś Poznań jest położona w gminie Serokomla, która jest położona w powiecie łukowskim, który jest położony w województwie

Lubel-skim. Ponieważ każde dwa województwa są regionami rozłącznymi, system stwierdził

nieprawdziwość hipotezy zawartej w pytaniu. Odpowiedź systemu Hipisek została przedstawiona na rysunku 6.2.

Jednostki czasowe

Normalizacja jednostek czasowych w systemie Hipisek polega na transformacji oznaczonej jednostki do formalnej reprezentacji daty. Reprezentacja ta została opar-ta o uproszczony format TIMEX3 (zredukowany do dat). Daopar-ta w systemie Hipisek składa się z następujących pól:

Rysunek 6.2. Odpowiedź na pytanie Czy wieś Poznań jest w Wielkopolsce?

• numer miesiąca w roku, • numer dnia w miesiącu, • numer dnia w tygodniu, • godzina,

• minuta, • sekunda.

Każde z pól może mieć jedną z dwóch typów wartości:

• wartość liczbowa,

• wartość niezdefiniowana — brak informacji na temat wartości danego pola.

Mechanizm transformacji

Transformacja jednostek czasowych do formalnej reprezentacji jest przeprowa-dzana przez mechanizm regułowy. Format reguł został oparty o formalizm reguł SPADE [BP2008].

Reguła transformacji składa się z czterech elementów:

• nazwy reguły,

• typu jednostki, dla której uruchamiana jest reguła,

• sekcji match, która definiuje do jakiego ciągu tokenów dopasuje się reguła, • niepustego ciągu instrukcji konwersji.

Instrukcje konwersji są predefiniowanymi operacjami, które mogą być uruchamia-ne na wybranych tokenach przetwarzauruchamia-nej jednostki. Obejmują następujące operacje:

• ustawienie jednego z pól daty,

• operacje arytmetyczne na dacie i dacie kontekstowej,

• modyfikacje tokenu (np. usunięcie znaków, podział według wyrażenia

regularne-go, normalizacja wielkości liter, pobranie formy bazowej wyrazu itp.),

• transformacja nazw (np. nazwy miesiąca na numer miesiąca).

Przykładową regułą transformującą jest: Rule: day_number + month_name

Entity: date

Match: <used~([01]|[12][0-9]|0?[1-9])> <ne=month_name> Convert: 1 => to_property(’day_number’)

Convert: 2 => month_name_to_month_number

Powyższa reguła działa na jednostkach, które oznaczono typem data (date). Reguła jest dopasowywana do jednostek składających się z dwóch tokenów. For-ma tekstowa pierwszego tokenu musi spełniać wyrażenie regularne będące opisem dopuszczalnej liczby dni w miesiącu (od 1 do 31). Drugi token powinien być jed-nostką nazwaną o typie nazwa miesiąca (month name). Na dopasowanej jednostce uruchomione są dwie instrukcje konwersji:

• pobranie wartości tekstowej pierwszego tokenu i zapisanie do wartości pola numer dnia w miesiącu,

• transformacja nazwy miesiąca pobranej z formy tekstowej drugiego tokenu do

war-tości pola numer miesiąca w roku.

Opisywana reguła uruchomiana na oznaczonej jednostce czasowej o postaci tek-stowej: 16 czerwca, utworzy formalną reprezentację daty, w której ustawione są na-stępujące wartości pól:

• numer miesiąca w roku — wartość 6, • numer dnia w miesiącu — wartość 16,

• pozostałe pola — wartość niezdefiniowana.

Problem kontekstu czasowego

W procesie normalizacji jednostek czasowych niezbędne jest uwzględnienie kon-tekstu. W systemie Hipisek wyróżniono dwa rodzaje kontekstu:

• kontekst wypowiedzi — aktualny czas,

• kontekst dokumentu — data opublikowania dokumentu z którego pochodzi

prze-twarzany tekst.

Dzięki uwzględnieniu dwóch rodzajów kontekstu jednostka czasowa reprezentują-ca względne wyrażenie czasowe (np. w zeszłym roku) jest normalizowana do różnych

wartości, w zależności od kontekstu, w jakim została użyta (porównaj przykłady pytań z warunkami czasowymi w podrozdziale 5.5.2).

Z problemem obsługi kontekstu związany jest problem identyfikacji fokusu

pyta-nia (patrz opis modelu Lehnert w podrozdziale 3.1.3). Problem ten ilustruje

nastę-pujący przykład pytania:

Czy w lutym kot pogryzł psa?

W zależności od fokusu pytania pytanie może być interpretowane dwojako: 1. Czy w lutym [tego roku] kot pogryzł psa?

2. Czy w lutym [dowolnego roku] kot pogryzł psa?

Jednostka lutym jest przetransformowana mechanizmem regułowym na datę, w której zdefiniowane jest jedno pole (numer miesiąca w roku). Pole rok jest nie-zdefiniowane, co interpretowane jest jako dowolna wartość. Oznacza to, że pytanie

Czy w lutym kot pogryzł psa? jest interpretowane przez system jako:

Czy w lutym dowolnego roku kot pogryzł psa?

W obecnej wersji systemu druga interpretacja pytania (w lutym tego roku) nie jest obsługiwana. Użytkownik musi jawnie wyrazić fokus, aby uzyskać taką interpretację. Na rysunku 6.3 przedstawiono odpowiedzi systemu Hipisek na pytanie: Czy w

lu-tym kot pogryzł psa? oraz pytanie z jawnie wyrażonym fokusem: Czy w lulu-tym tego roku kot pogryzł psa? System zwrócił różne odpowiedzi, ze względu na różną

inter-pretację fokusu pytania.