ZASTOSOWANIE WYBRANYCH METOD EKSPLORACJI DANYCH DO TWORZENIA STRESZCZEŃ TEKSTÓW PRASOWYCH DLA JEZYKA POLSKIEGO

Wielkość: px
Rozpocząć pokaz od strony:

Download "ZASTOSOWANIE WYBRANYCH METOD EKSPLORACJI DANYCH DO TWORZENIA STRESZCZEŃ TEKSTÓW PRASOWYCH DLA JEZYKA POLSKIEGO"

Transkrypt

1 Politechnika Poznańska Wydział Informatyki i Zarządzania Instytut Informatyki Praca dyplomowa magisterska ZASTOSOWANIE WYBRANYCH METOD EKSPLORACJI DANYCH DO TWORZENIA STRESZCZEŃ TEKSTÓW PRASOWYCH DLA JEZYKA POLSKIEGO inż. Adam Dudczak Promotor dr hab. inż. Jerzy Stefanowski Poznań,

2 Tutaj przychodzi karta pracy dyplomowej; oryginał wstawiamy do wersji dla archiwum PP, w pozostałych kopiach wstawiamy ksero.

3 Streszczenie Głównym celem tej pracy było stworzenie narzędzia pozwalającego na generowanie dobrych jakościowo automatycznych streszczeń dla tekstów prasowych napisanych w języku polskim i tym samym zweryfikowanie skuteczności dotychczasowych podejść literaturowych stosowanych dla tekstów angielskich. Wszystkie zbadane metody tworzą automatyczne streszczenia w oparciu o selekcję zadanej liczby zdań. W ramach pracy zbadane zostały cztery algorytmy: opierający się na założeniu, że istotność zdania zależy od jego pozycji w akapicie, wykorzystujący schematy tf-idf i okapi bm25 do obliczania istotności zdań oraz algorytm oparty na łańcuchach leksykalnych [BE97]. Przedstawione są również wyniki eksperymentu weryfikującego jakość otrzymanych wyników na korpusie streszczeń utworzonym przez wolontariuszy przy pomocy oprogramowania napisanego przez autora pracy. W ramach implementacji omawianych w pracy zagadnień powstał projekt Lakon. Zaimplementowane w Lakonie metody osiągają średnio wyniki w zakresie od 42% do 53% zgodności (w zależności od algorytmu) ze zbiorem najczęściej wybieranych zdań, stworzonym przez grupę uczestników eksperymentu. Słowa kluczowe: automatyczna sumaryzacja tekstów, przetwarzanie języka naturalnego, eksploracja danych Abstract The main purpose of this thesis was to create a tool for generating qualitatively good text extracts from newspapers articles written in Polish. It was also important to verify whether existing approaches to automatic text summarization, developed for texts written in English are suitable for language with complex inflection and syntax such as Polish. All investigated methods create extracts by selecting given number of sentences from original text. The research had been preceded with analysis of four algorithms: based on assumption that essentiality of sentence depends on its position in paragraph, using tf-idf and okapi bm25 schemes to compute sentence s weight, algorithm based on idea of lexical chains [BE97]. Formal evaluation has been performed, based on set of extracts created by the group of volunteers with usage of web application written by the author of this thesis. Implementation of thesis purposes can be found in Lakon project. Methods implemented in Lakon have reached the average 42% to 53% (in dependence to analysed method) of coverage with the set of most frequently chose sentences (those numbers comes from corpora created by volunteers). Keywords: automatic text summarization, natural language processing, data mining, text mining

4 Spis treści 1 Wprowadzenie Omówienie Cele i założenia pracy Zarys pracy Konwencje typograficzne Przegląd istniejących technik i algorytmów Elementy przetwarzania języka naturalnego Analiza leksykalna Rozpoznawanie wyrazów pospolitych Analiza morfologiczna, lematyzacja i hasłowanie Analiza składniowa Wybrane zagadanienia dotyczące wyszukiwania informacji Budowanie indeksu dokumentów Model wektorowy Automatyczne streszczanie dokumentów Metody statystyczne Spójność leksykalna Łańcuchy leksykalne a streszczanie tekstów System Polsumm Zastosowane rozwiązania Przetwarzanie języka naturalnego dla potrzeb sumaryzacji Rozpoznawanie struktury tekstu Sumaryzacja Metoda wykorzystująca informację o położeniu zdań Metody wykorzystujące automatyczną ocenę jakości słów kluczowych Metody wykorzystujące łańcuchy leksykalne Wyszukiwanie dokumentów podobnych Implementacja Lakon Założenia projektowe I

5 II Główne składniki projektu Technologia Tiller Architektura Model struktury tekstu Przetwarzanie tekstu Tezaurus Konfiguracja Summarizer Architektura Zaimplementowane metody Konfiguracja GUI Funkcjonalność Konfiguracja Dodatkowe elementy stworzonego systemu Budowanie indeksu Aplikacja do zbierania streszczeń Ocena eksperymentalna Opis eksperymentu Przyjęte założenia Przebieg eksperymentu Zebrane dane Ocena jakości Przyjęte założenia Dobór minimalnych wartości wag Otrzymane wyniki Efektywność implementacji Wnioski końcowe Podsumowanie Kierunki dalszego rozwoju Podziękowania Literatura 77 Zasoby internetowe 80 Dodatki 82

6 Rozdział 1 Wprowadzenie Internet zrewolucjonizował świat oferując każdemu narzędzia pozwalające na tworzenia własnych i przetwarzanie już istniejących zasobów informacyjnych. W rezultacie tej rewolucji ilość danych z jaką musi się zmierzyć użytkownik internetu rośnie bardzo szybko. W 2003 szacowono, że Google umożliwia wyszukiwanie w kolekcji zawierającej 3,3 miliarda dokumentów [Sul03]. Po dwóch latach wartość ta zwiększyła się do 8,1 miliarda [Sul05], a rozmiar całego przeszukiwalnego internetu oceniano na 11,5 miliarda dokumentów [GS05]. Aby znaleźć to, czego potrzebujemy, każdy z nas musi codziennie stawić czoło ogromnej ilości informacji. W tym kontekście stworzenie efektywnych narzędzi ułatwiających wybór istotnych dokumentów staje się kwestią niezmiernie ważną. Problem ten to z jednej strony dobre jakościowo wyniki wyszukiwania, z drugiej natomiast ułatwienie podjęcia decyzji co do adekwatności danego wyniku. Automatycznie generowane, sensowne streszczenia dokumentów mogą znacznie przyśpieszyć podjęcie takiej decyzji. Niniejsza praca zawiera przegląd problemów związanych z automatycznym tworzeniem streszczeń dla tekstów w języku polskim. Przedstawione są również wyniki eksperymentu weryfikującego jakość otrzymanych wyników na korpusie streszczeń utworzonym przez wolontariuszy przy pomocy oprogramowania napisanego przez autora pracy. 1.1 Omówienie Automatyczne streszczanie tekstów (ang. Automatic Text Summarization (TS)), zwane żargonowo również sumaryzacją nie jest problemem nowym. Pierwsze prace w tej dziedzinie zostały opublikowane już pod koniec lat pięćdziesiątych XX wieku [Luh58]. Ograniczona moc ówczesnych komputerów nie pozwoliła na implementację rozwiązań dokładnych, stworzono więc proste metody wykorzystujące statystyczne cechy tekstu. Mimo, iż dostępna obecnie moc obliczeniowa wielokrotnie przewyższa możliwości stosowanych wtedy maszyn, koszt przeprowadzenia precyzyjnej komputerowej analizy języka naturalnego jest wciąż relatywnie wysoki, zwłaszcza w rozwiązaniach wymagających przetwarzania w czasie rzeczywistym. Proste algorytmy oparte na statystycznej analizie tekstu są więc wciąż popularne i szeroko stosowane. 1

7 1.1. Omówienie 2 RYSUNEK 1.1: Ogólny schemat procesu tworzenia streszczeń. Streszczenie to treść czegoś, ujęta krótko, zwięźle [PWN07]. W ramach tej bardzo ogólnej definicji możemy wyróżnić dwa rodzaje streszczeń. Streszczenia literackie (ang. summary) twórca wybiera z oryginalnego tekstu najważniejsze informacje, a następnie tworzy zupełnie nową, spójną wypowiedź. Streszczenia automatyczne (ang. extract) twórca (lub program) stara się ocenić, które zdania (lub akapity) niosą najistotniejsze informacje, następnie z tak wyselekcjonowanych zdań składa wynikowe streszczenie. W tym przypadku nie tworzymy nowej wypowiedzi. W powstałym streszczeniu związki logiczne między zdaniami mogą zostać zaburzone utrudnia to zrozumienie tekstu i w skrajnym przypadku może prowadzić do zmiany jego pierwotnego sensu. Tworzenie streszczeń literackich ciężko sobie wyobrazić bez pełnego zrozumienia tekstu, stąd też automatyczne generowanie tego typu wypowiedzi jest problemem trudnym. Streszczenia automatyczne jednak, mimo swoich wad, mogą okazać się niezbędne, gdy przetwarzana jest ogromna ilość danych. We wcześniejszych pracach pokazano, że takie streszczenia (składające się z zaledwie 20% pierwotnego tekstu) mogą zawierać tyle samo wiadomości, co tekst oryginalny [KPC95]. Taka kompresja informacji może znacznie skrócić czas konieczny na podjęcie decyzji o istotności danego dokumentu. Według [Jon93] oraz [BE97] proces tworzenia automatycznego streszczenia można podzielić na następujące etapy (zob. rys. 1.1): 1. tworzenie reprezentacji pośredniej tekstu źródłowego, 2. wybór najważniejszych informacji z reprezentacji pośredniej, 3. synteza wynikowego streszczenia. Powyższy proces może być realizowany przy pomocy różnych algorytmów komputerowych. Stosowane metody można podzielić na trzy grupy: metody statystyczne (oparte zwykle o statystyki częstości występowania słów lub cech w oryginalnym tekście),

8 1.1. Omówienie 3 metody pogłębione (korzystające z dodatkowej wiedzy tezaurusa lub słowników pojęć), metody korzystające z głębokiej analizy tekstu (pełnego rozkładu składniowego). Metody statystyczne (w tym kontekście zwane również heurystykami, choć należy zaznaczyć, że jest to pojęcie znacznie szersze) nie analizują bezpośrednio znaczenia słów, czy też zdań. O tym, czy dany fragment tekstu zawiera ważną informację decyduje zestaw określonych czynników [Luh58, Edm69]. Częstość występowania wyrazów w tekście Słowa które występują często mogą być potraktowane jako wyznacznik treści dokumentu. W tym przypadku zdanie które zawiera najczęściej występujące wyrazy uważa się za istotne. Pozycja zdania w tekście Jeżeli zdanie znajduje się na początku (lub końcu) tekstu (czy akapitu) istnieje szansa, że będzie ono miało charakter podsumowujący. Obecność pewnych zwrotów Zwroty takie jak w sumie albo podsumowując sugerują, że zdanie zawiera jakiegoś rodzaju podsumowanie. Miary oceny ważności słów Istnieją miary pozwalające obliczać istotność (zawartość informacji) poszczególnych słów dla tekstu (szczegółowe omówienie niektórych z nich zostanie przedstawione w dalszych rozdziałach). Inne czynniki Inne czynniki brane pod uwagę to na przykład: długość zdania, obecność w zdaniu wyrazów z tytułu lub rozpoczynających się od wielkiej litery. Można zauważyć, że dla niektórych rodzajów tekstów, przykładowo artykułów prasowych, jedną z najlepszych i najprostszych heurystyk jest wybór pierwszych dziesięciu zdań z tekstu. W wielu przypadkach uzyskana w ten sposób informacja może się okazać wystarczająca. Rozwiązania, które opierają się na metodach statystycznych są z definicji ograniczone [Mau89]. Brak analizy znaczenia tekstu powoduje, że są one bezradne wobec pewnych zjawisk językowych takich jak synonimia czy homonimia. Sytuacje te wymagają rozpatrzenia kontekstu, w jakim dany fragment tekstu (np. słowo) występuje. Przeprowadzenie takiej analizy jedynie w oparciu o metody analizy wystąpień jest raczej trudne (jeżeli nie niemożliwe), konieczne jest więc dostarczenie dodatkowej wiedzy z zewnątrz. Metody pogłębione wykorzystują właśnie takie zewnętrzne źródła wiedzy w postaci tezaurusów i innych zasobów leksykalnych. Dzięki temu są one w stanie uwzględnić informacje zawarte w warstwie semantycznej (znaczeniowej) dokumentu, zachowując przy tym względną prostotę metod heurystycznych. Wymienione powyżej metody budują streszczenia wybierając gotowe zdania z pierwotnego dokumentu. Problem braku spójności takiej wypowiedzi wynika między innymi z istnienia w tekście związków międzyzdaniowych. Jeżeli w zdaniu występuję podmiot domyślny (na przykład... został on wybrany... ), wybór tego zdania do streszczenia spowoduje nie

9 1.2. Cele i założenia pracy 4 tylko utratę pewnej informacji (nie wiemy do kogo odnosi się zaimek on ), ale również obniżenie czytelności wynikowego streszczenia. Aby rozwiązać ten problem konieczna jest pełna analiza tekstu, uwzględniająca kompletny model struktury składniowej (dla języka angielskiego znane są również inne, przybliżone metody, lecz nie będziemy się nimi tutaj zajmowali). Dysponując taką informacją można przeprowadzić analizę warstwy semantycznej i opierając się na stworzonym w ten sposób modelu wygenerować streszczenie literackie [Lie98]. Wymagania obliczeniowe takich algorytmów są zwykle dość wysokie. 1.2 Cele i założenia pracy Istnieje duża liczba opracowań dotyczących problemu automatycznej sumaryzacji dla tekstów w języku angielskim, lecz niewiele w tym względzie zrobiono dotychczas dla języka polskiego. Głównym celem tej pracy jest stworzenie narzędzia pozwalającego na generowanie dobrych jakościowo automatycznych streszczeń dla tekstów prasowych napisanych w języku polskim oraz zweryfikowanie dotychczasowych podejść literaturowych stosowanych dla języka angielskiego. Ze względu na duże koszty obliczeniowe związane z głęboką analizą tekstu, w niniejszej pracy największy nacisk zostanie położony na metody statystyczne oraz pewne aspekty metod pogłębionych. W ramach pracy zostaną zaimplementowane trzy algorytmy tworzące automatyczne streszczania. Aby umożliwić rzetelną analizę wyników przeprowadzony został eksperyment, w czasie którego grupa ochotników stworzyła referencyjny zbiór streszczeń artykułów prasowych (wybór tego rodzaju tekstów jest motywowany ich dobrze określoną strukturą). W pracy przedstawione są wyniki oceny jakości streszczeń otrzymanych w sposób automatyczny w porównaniu ze streszczeniami utworzonymi ręcznie. Dodatkowym aspektem pracy, obok tworzenia streszczeń tekstów prasowych, jest również metoda pozwalająca na wyszukiwanie tekstów podobnych. Rozwiązanie owo opiera się na ekstrakcji słów kluczowych z użyciem rankingu wag. Metoda ta została stworzona z myślą o wyborze najważniejszych zdań, jednak z dobrymi rezultatami może być użyta do pozyskiwania tekstów o zbliżonej zawartości. Podsumowując, najważniejsze cele tej pracy przedstawiono w punktach poniżej. 1. Stworzenie narzędzia pozwalającego na segmentację tekstów w języku polskim, wykrywanie granic zdań i akapitów. 2. Implementacja i ocena jakości niektórych metod wyboru najważniejszych zdań. Rozważane będą następujące metody: pozycyjna waga zdania zależy od jego pozycji w akapicie, oparta o ranking wag tf-idf i okapi bm25 dla poszczególnych wyrazów, oparta o łańcuchy leksykalne [BE97] z użyciem tezaurusa autorstwa Marcina Miłkowskiego.

10 1.3. Zarys pracy 5 3. Zaprojektowanie i implementacja metody pozwalającej na wyszukiwanie tekstów podobnych. 4. Ocena jakości streszczeń automatycznych na podstawie danych zebranych w trakcie eksperymentu, w którym zebrano streszczenia tych samych tekstów od użytkowników. 1.3 Zarys pracy Oprócz rozdziału pierwszego na niniejszą pracę składa się pięć rozdziałów. W rozdziale drugim omówione zostały podstawowe zagadnienia związane z przetwarzaniem języka naturalnego (ang. Natural Language Processing) oraz wyszukiwaniem informacji (ang. Information Retrieval). Te dwie bardzo szerokie dziedziny dostarczają pojęć i narzędzi, które leżą u podstaw automatycznej sumaryzacji tekstów. W dalszej części rozdziału zostaną przedstawione niektóre z opisywanych w literaturze algorytmów tworzenia automatycznych streszczeń. Rozdział drugi kończy krótkie omówienienie systemu Polsumm, który jest jak dotąd jedyną próbą rozwiązania problemu automatycznej sumaryzacji dla tekstów w języku polskim. Szczegółowy opis zastosowanych w pracy rozwiązań znajdzie Czytelnik w rozdziale trzecim. Omówione zostały tam wszystkie zaimplementowane algorytmy, wraz z modyfikacjami, które zostały wprowadzone w stosunku do oryginalnych metod. Przedstawiono tu również liczne przykłady działania zastosowanych algorytmów oraz zasygnalizowane zostały najistotniejsze trudności związane z realizacją postawionych w pracy celów. Rozdział czwarty to opis projektu Lakon, który jest bezpośrednią realizacją zadań postawionych w ramach niniejszej pracy. Omówiona została architektura całego systemu, założenia projektowe oraz poszczególne moduły i ich zadania. Rozdział kończy opis aplikacji internetowej użytej do realizacji eksperymentu ewaluacyjnego. Przedostatni rozdział to szczegółowy opis przeprowadzonego eksperymentu, informacje na temat jego przebiegu, uczestników oraz zebranych danych. W rozdziale piątym omówione zostały również założenia dotyczące przeprowadzonej oceny jakości oraz jej wyniki dla zaimplementowanych algorytmów. W rozdziale szóstym znajdzie Czytelnik podsumowanie pracy oraz dalsze plany rozwoju systemu Lakon. Do pracy dołączona jest płyta CD, opis jej zawartości znajduje się w na stronie 84). Przykładowe streszczenia stworzone za pomocą zaimplementowanych metod załączono na stronie Konwencje typograficzne W niniejszej pracy zastosowano następujące konwencje dotyczące składu tekstu. kursywa zaznaczono oryginalną terminologię angielską, przykłady, cytaty. Czcionka o stałej szerokości ilustruje fragmenty kodu źrodłowego. Czcionka pogrubioną zaznaczono ważne terminy występujące po raz pierwszy w tekście.

11 Rozdział 2 Przegląd istniejących technik i algorytmów W tym rozdziale omówione zostaną pewne elementy przetwarzania języka naturalnego (ang. Natural Language Processing) oraz wyszukiwania informacji (ang. Information Retrieval). Dziedziny te dostarczają pojęć i narzędzi, które leżą u podstaw problemu automatycznej sumaryzacji tekstów. Przedstawione również zostaną istniejące podejścia do automatycznego tworzenia streszczeń. Większość z nich była z powodzeniem stosowana dla języka angielskiego, w niniejszym rozdziale zostaną zasugerowane pewne zagadnienia związane z adaptacją tych metod dla języka polskiego. Przedstawione tutaj informacje nie wyczerpują tematu pogłębiony opis omawianych zagadnień można znaleźć w następujących pracach [BYRN99, DJHS, CGKS04, KPC95, BE97]. W pozostałej części rozdziału stosowana będzie przedstawiona poniżej terminologia. Leksem to wyraz rozumiany jako podstawowa słownikowa jednostka języka. Składa się na niego znaczenie leksykalne oraz zespół wszystkich form gramatycznych np. wyrazy czytać, czytam, czytali są formami tego samego leksemu [Wik07c]. Lemat lub forma podstawowa jest kanoniczną formą leksemu, która używana jest do jego reprezentacji, np. w słowniku lub indeksie dokumentów [Wik07d]. Słowo kluczowe to sekwencja znaków pojawiająca się w indeksie dokumentów i charakterystyczna dla któregoś z nich; w zasadzie mogą one nie mieć słownikowego sensu (np. składać się z symboli, lub być zlepkami alfanumerycznymi). Hipernim terminu tego będziemy używać w stosunku do wyrazów określających dany obiekt w sposób bardziej ogólny np. budowla jest hipernimem słowa zamek [Wik07a]. Hiponim to wyraz który odnosi się tylko do pewnego podzbióru obiektów danego rodzaju np. zamek to hiponim słowa budowla [Wik07b]. 6

12 2.1. Elementy przetwarzania języka naturalnego 7 RYSUNEK 2.1: Schemat procesu automatycznego przetwarzania tekstów. 2.1 Elementy przetwarzania języka naturalnego Przetwarzanie języka naturalnego to bardzo szeroka dziedzina. Jest ona fundamentalna dla komunikacji między człowiekiem a maszyną. Język odwzorowuje pewne rzeczywiste zależności między przedmiotami czy zjawiskami, maszyna jednak nie posiada wiedzy, która pozwoliłaby na jednoznaczną interpretację tych relacji. Powoduje to, że umiejętności, które każdy z nas nabywa w pierwszych latach edukacji (czytanie ze zrozumieniem, samodzielne budowanie zdań) są dla komputerów wciąż ogromnym wyzwaniem. Inne problemy to dynamiczny charakter języka (neologizmy, poprawność językowa) oraz mnogość konstrukcji składniowych wszystko to powoduje, że operacje związane z przetwarzaniem języka naturalnego są zwykle kosztowne obliczeniowo. Automatyczne przetwarzanie tekstu możemy podzielić na kilka etapów [BYRN99]: 1. analiza leksykalna, 2. oznaczanie wyrazów pospolitych, 3. analiza morfologiczna, lematyzacja i hasłowanie, 4. analiza syntaktyczna i semantyczna. Cały opisany powyżej proces można również nazwać analizą lingwistyczną [CGKS04] szkic owej analizy przedstawia rysunek 2.1. Celem analizy lingwistycznej jest zbudowanie modelu języka naturalnego łatwego w przetwarzaniu dla komputera. Przy tworzeniu takiej reprezentacji tracimy przeważnie pewne informacje. Rozważmy następujący przykład: Wlazł kotek na płotek i mruga, ładna to piosenka niedługa. Jeżeli wyraz kotek zostałby użyty zupełnie niezależnie, to nie mielibyśmy problemów z określeniem do czego się on odnosi. Zupełnie inaczej jest w przypadku wyrazów takich jak : i, na, to - samodzielnie nie posiadają one żadnego znaczenia. Gdy usuniemy te wyrazy otrzymamy następujące wypowiedzenie.

13 2.1. Elementy przetwarzania języka naturalnego 8 Wlazł kotek płotek mruga, ładna piosenka niedługa. Komunikat nie jest już tak czytelny, ale mimo usunięcia części wyrazów wciąż wiadomo czego powyższa wypowiedź dotyczy. Słowa, które występują w tekście bardzo często i jednocześnie nie niosą ze sobą samodzielnego znaczenia nazywać będziemy wyrazami pospolitymi (ang. stopwords). W kontekście automatycznego przetwarzania języka naturalnego ważne jest, aby móc odróżnić czy dany wyraz jest pospolity, czy też nie, oraz jaka jest jego rola w strukturze całej wypowiedzi. W przypadku, gdy w tekście występują różne odmiany fleksyjne wyrazu, konieczne jest odnalezienie ich formy podstawowej (leksemu i jego reprezentacji w formie lematu). Pozwoli to określić czy dane słowo jest tylko odmianą tego samego leksemu, czy już zupełnie innym pojęciem. Ziarnko do ziarnka, a zbierze się miarka. Proste porównanie łańcuchów znakowych nie wykaże, że słowo ziarnko i ziarnka to ten sam leksem. Dopiero, gdy określimy formę podstawową każdego z tych wyrazów ( ziarnko ) komputer będzie w stanie określić, że jest to ten sam leksem. Automatyczne przetwarzanie tekstu często jest tylko pierwszym etapem działania właściwego algorytmu. Realizując proces przetwarzania tekstu musimy mieć na uwadze jakie informacje językowe są konieczne w kontekście stosowanej metody. Dla prostych metod częstościowych ważne jest przede wszystkim wydzielenie wspólnego mianownika dla wszystkich form fleksyjnych danego wyrazu aby móc obliczyć ile razy występuje on w tekście. W typowych zastosowaniach związanych z wyszukiwaniem informacji zwykle można zupełnie zignorować strukturę przetwarzanego tekstu. Informacja o granicach akapitów, czy zdań jest jednak niezbędna np. w przypadku automatycznego generowania streszczeń Analiza leksykalna Analiza leksykalna to proces przekształcania ciągu znaków w ciąg wyrazów lub jednostek wyższego rzędu: fraz, zdań, akapitów. W najprostszej postaci proces ten sprowadza się do rozpoznania (usunięcia nadmiarowych) przerw między wyrazami. Mimo, iż implementacja takich operacji wydaje się trywialna, to na etapie rozpoznawania poszczególnych leksemów pojawia się kilka problemów [Fox92]: identyfikacja leksemów wielowyrazowych, znaki takie jak kropka i myślnik, liczby, wielkość liter, elementy pozatekstowe, np. znaczniki w dokumentach HTML.

14 2.1. Elementy przetwarzania języka naturalnego 9 Istotne dla dalszego procesu przetwarzania może być to, jak potraktujemy myślniki łączące wyrazy np. niebiesko-czarni. Każdy z tych wyrazów ma sens rozpatrywany oddzielnie, ale gdy konstrukcja ta zostanie rozdzielona utracimy pierwotne znaczenie całego leksemu. Znak kropki może także występować w różnym znaczeniu jako zakończenie zdania, na końcu skrótowców typu inż. lub w jeszcze bardziej specyficznych kontekstach jak konstrukcje z języków programowania: x.id. Usunięcie kropki ze strumienia znaków spowoduje więc utratę informacji o podziale tekstu na zdania. Leksemy rozpoczynające się od wielkiej litery mogą sugerować, że jest to nazwa własna lub początek zdania. Analogicznie jak w przypadku kropki, gdy chcemy zachować informacje dotyczące struktury tekstu konieczne jest uwzględnienie wielkości liter przy przetwarzaniu. W przypadku dokumentów HTML trzeba w większości przypadków usunąć znaczniki, gdyż nie są one nośnikiem treści, a jedynie elementem warstwy prezentacji. 1 Możemy również pokusić się o pominięcie liczb, ponieważ samodzielnie nie posiadają one w większości konkretnego znaczenia. Jest to istotne zwłaszcza w procesie budowania indeksu dokumentów, gdzie wyrazy powinny mieć jednoznaczną interpretację (zob. rozdział 2.2). Takie podejście jest natomiast niedopuszczalne z perspektywy automatycznej sumaryzacji. Obecność liczb, wielkość liter, pozycja kropki mogą być istotne w zależności od użytego algorytmu streszczania. Jak widać konieczne jest rozpatrywanie tego etapu procesu przetwarzania w kontekście późniejszych zastosowań otrzymanej reprezentacji pośredniej Rozpoznawanie wyrazów pospolitych W każdej kolekcji dokumentów spotkać można wyrazy, które pojawiają się o wiele częściej, niż pozostałe. Takie słowa są raczej nieprzydatne w kontekście wydobywania dokumentu z kolekcji. Wyrazy takie określa się mianem wyrazów pospolitych. Do wyobrębniania (oznaczania) słów pospolitych korzysta się ze słowników frekwencyjnych 2. W internecie dostępnych jest wiele list zawierających najczęściej występujące wyrazy pospolite dla języka angielskiego. Dla języka polskiego został również stworzony słownik frekwencyjny na którego podstawie można stworzyć taką listę [Kur90]. Niezależnie istnieje również lista publikowana i utrzymywana przez polską społeczność Wikipedystów [Wik07e]. Zostały również zaproponowane metody automatyczne, pozwalające na tworzenie list wyrazów pospolitych na podstawie dużych korpusów tekstu. Więcej informacji na temat tych metod znajdzie Czytelnik w pracach [MW00, Wei01] Analiza morfologiczna, lematyzacja i hasłowanie W przypadku języków o bogatej fleksji wyraz może występować w wielu formach. Proces odnajdywania formy podstawowej lematu (jednego bądź kilku, w przypadku wyrazów 1 Niektóre znaczniki HTML mogą być używane do określania struktury tekstu. W zależności od potrzeb znaczniki te mogą również zostać usunięte lub zastąpione odpowiednikami tekstowymi (znak spacji lub nowej linii). 2 Słownik taki zawiera informację o częstości występowania wyrazów. Częstość obliczana jest ona na podstawie analizy dużej liczby tekstów.

15 2.1. Elementy przetwarzania języka naturalnego 10 wieloznacznych) nazywamy lematyzacją (ang. lemmatization). Dla leksemu może istnieć więcej niż jeden lemat, wybranie właściwej formy wymaga przeprowadzenia dezambiguacji morfosyntaktycznej. Dobrym przykładem może być słowo zamek może ono oznaczać budowlę lub zamek do drzwi. Nie dysponując kontekstem trudno określić w jakim znaczeniu zostało użyte dane słowo i jaka jest jego forma podstawowa. W wielu zastosowaniach wystarczy wyodrębnić wspólny rdzeń wszystkich form danego wyrazu nie musi on odpowiadać poprawnej gramatycznie formie bazowej; wystarczy, że będzie jednoznacznie identyfikował dany wyraz i jego odmiany. Proces ten nazywany jest hasłowaniem (ang. stemming). Hasłowanie jest wykorzystywane w wyszukiwaniu dokumentów. Tworzenie indeksu dokumentów w oparciu o hasła (ang. stems), a nie oryginalne formy wyrazu zwykle korzystnie wpływa na jakość otrzymywanych wyników [TKJ97], szczególnie w przypadku języków o bogatej fleksji. Przegląd dostępnych programów do hasłowania dla języka polskiego jest zawarty np. w [HK01, Wei05]. Różnicę między lematyzacją, a hasłowaniem można pokazać przy pomocy prostego przykładu. Rozważmy trzy formy jednego wyrazu: piosenka, piosenki, piosenką. Formą podstawową dla tej grupy będzie wyraz piosenka. Algorytm hasłujący w najprostszym przypadku wyszuka najdłuższy wspólny ciąg znaków: piosenk. Nie jest to poprawny wyraz, niemniej jednak jednoznacznie identyfikuję całą grupę, wydzielając z niej wspólny rdzeń. Algorytmy lematyzacji i hasłowania możemy z grubsza podzielić ze względu na sposób, w jaki dokonują wydzielenia rdzenia na regułowe, słownikowe oraz hybrydowe. Algorytmy regułowe, jak sama nazwa wskazuje, do wyodrębniania rdzenia wykorzystują pewne reguły. Mogą być one tworzone przez człowieka lub wydobywane automatycznie z dużych zbiorów danych. Przykładowa reguła może wyglądać tak: Jeżeli wyraz kończy się na ać (np. pracować) jest to forma podstawowa. Oczywiście w przypadku wielu wyrazów ta reguła spowoduję niepoprawną interpretację i rozpoznany wyraz nie zawsze będzie bezokolicznikiem. Reguły używane w rzeczywistych algorytmach są bardziej skomplikowane, niemniej jednak algorytmy regułowe mogą czasem zwracać niepoprawne wyniki. Metody słownikowe opierają się na wyszukiwaniu odpowiedniej formy w predefiniowanym słowniku. W przypadku gdy wyraz nie znajduję się w słowniku nie jesteśmy w stanie zwrócić poprawnej formy bazowej. Wadą tych rozwiązań jest konieczność zarezerwowanie odpowiednio dużej przestrzeni dyskowej na słownik. W odróżnieniu jednak od rozwiązań regułowych, zwracany wynik zawsze odpowiada lematowi wyrazu. Dla języka polskiego zaprezentowano również rozwiązania hybrydowe, łączące oba powyższe podejścia. W przypadku, gdy lemat dla wyrazu nie zostanie znaleziony w słowniku, stosowany jest algorytm regułowy. Wykazano, że zastosowanie tego podejścia wpływa pozytywnie na ogólną skuteczność (poprawność) procesu wyodrębniania podstawowej formy wyrazu [Wei05]. Głównym celem hasłowania i lematyzacji jest wyodrębnienie formy podstawowej (lub hasłowej). Pojęciem bardziej ogólnym jest analiza morfologiczna. W wyniku takiej analizy

16 2.1. Elementy przetwarzania języka naturalnego 11 RYSUNEK 2.2: Drzewo rozbioru gramatycznego zdania: Wybitny poeta piszę sercem. obrazuje rolę, jaką pełnią poszczególne leksemy w zdaniu (rysunek pochodzi z [D07]). każdemu wyrazowi przypisywana jest jego charakterystyka morfologiczna. Otrzymana w ten sposób kompletna informacja jest konieczna w sytuacji, gdy chcemy przeprowadzić rozbiór składniowy zdania. Dla języka polskiego istnieje kilka analizatorów morfologicznych opis niektórych z nich znajdzie Czytelnik w dalszych rozdziałach Analiza składniowa Zadaniem analizy składniowej (w polskiej literaturze funkcjonuje też nazwa analiza syntaktyczna) jest rozpoznanie ról, jakie pełnią poszczególne wyrazy wewnątrz zdania, a następnie stworzenie drzewa rozbioru gramatycznego (zob. rys. 2.2). Na tym etapie istotne są przede wszystkim: własności fleksyjne poszczególnych wyrazów, pozycja wyrazu w zdaniu (jest to najważniejsze w przypadku języka angielskiego). W języku angielskim głównym nośnikiem powiązań składniowych jest szyk wyrazów. Zupełnie inaczej niż w języku polskim, gdzie pozycja wyrazu w zdaniu ma mniejszy wpływ na składniową strukturę zdania. Rozważmy następujące zdania w języku angielskim: John hit Paul oraz Paul hit John. Podmiot występuje na początku zdania, zmiana kolejności powoduję zmianę sensu całej wypowiedzi. W języku polskim to, jaką funkcję w zdaniu będą pełniły poszczególne wyrazy zależy w dużej mierze od ich formy fleksyjnej: Paweł uderzył Jana, ale Jana uderzył Paweł. Innym istotnym problemem obliczeniowym są związki anaforyczne. Przez związek anaforyczny rozumiemy relację nie między poszczególnymi wyrazami, a między całymi grupami składniowymi. Przykładowo: Dawno, dawno temu, w małym wiejskim domku, mieszkała pewna dziewczynka, której prawdziwego imienia nikt nie pamięta. Związki tego typu mogą występować na poziomie całych zdań, lub ich części składowych. W powyższym przykładzie zdanie podrzędne : której prawdziwego imienia nikt nie pamięta odwołuje się do podmiotu zdania nadrzędnego [Sus05].

17 2.2. Wybrane zagadanienia dotyczace wyszukiwania informacji 12 Dla języka polskiego zostały stworzone gramatyki formalne które umożliwiają nie tylko weryfikację poprawności zdania, ale pełny jego rozbiór. Przykładem takiego formalizmu może być składniowa gramatyka grupująca dla języka polskiego (ang. Syntactic group grammar for Polish language, SGGP) [CGKS04]. Inną próbą implementacji gramatyki języka polskiego w sposób efektywny jest [Mar04] implementacja gramatyki opisanej w książce Składnia współczesnego języka polskiego [SŚ98]. 2.2 Wybrane zagadanienia dotyczące wyszukiwania informacji Wyszukiwanie informacji (ang. Information Retrieval) to bardzo rozległa dziedzina, którą nie sposób omówić w niniejszym rozdziale w pełni. Zagadnienia przedstawione poniżej zostały uznane za istotne w kontekście implementowanych w pracy rozwiązań. Więcej informacji na ten temat znajdzie czytelnik np. w doskonałym podręczniku [BYRN99] lub w dostępnej w internecie książce [MRSar]. W przypadku dużych kolekcji dokumentów, określenie które z dokumentów zawierają istotne informacje staje się sporym problemem. Zapoznanie się z treścią każdego tekstu może trwać bardzo długo. Należy więc stworzyć mechanizm, który pozwoli wybrać te dokumenty, które zawierają istotne informacje. Musimy również określić sposób, w jaki użytkownik będzie specyfikował jakie dane są dla niego istotne. W klasycznym podejściu do tego problemu, każdy dokument jest opisany za pomocą zbioru słów kluczowych. Słowem kluczowym może być w najprostszym przypadku każde słowo z danego dokumentu. Na rozwiązanie problemu wyszukiwania składają się trzy zagadnienia: budowanie struktur pomocniczych, sposób specyfikacji zapytań, algorytm (model) wyboru dokumentów pasujących do zapytania. Wyszukiwanie dokument po dokumencie byłoby bardzo nie efektywne. Jeżeli jednak założymy, że kolekcja dokumentów zmienia się relatywnie rzadko, to opłacalne może być stworzenie pewnych struktur pomocniczych. Struktury te powinny spełniać następujące postulaty: przyspieszać proces wyszukiwania, mieć mały rozmiar (w stosunku do rozmiaru całej kolekcji), być proste w utrzymaniu (w przypadku, gdy zmianie ulegną dokumenty w kolekcji). Przykładem takiej struktury może być indeks odwrotny. W takim indeksie każdemu słowu kluczowemu przyporządkowana jest lista dokumentów, w jakim owo słowo wystąpiło. Pozwala to znacznie przyspieszyć proces wyszukiwania, ogranicza się ono wtedy do: odnalezienia słów z zapytania w indeksie,

18 2.2. Wybrane zagadanienia dotyczace wyszukiwania informacji 13 RYSUNEK 2.3: Wyszukiwarka Ask.com dla zapytania Jaka jest najwyższa góra w Polsce? zwraca poprawną odpowiedź: najwyższa góra w Polsce to Rysy. utworzenia części wspólnej list dokumentów dla każdego ze słów (zakładamy logiczną koniunkcję między słowami w zapytaniu) prezentację wyników użytkownikowi. Istnieją również bardziej skomplikowane systemy, które pozwalają na wydawanie zapytań w języku naturalnym (np. wyszukiwarka działająca dla języka angielskiego, zob. rys. 2.3), jednak nie są one przedmiotem niniejszej pracy. Jednym z najszerzej stosowanych teoretycznych modeli wyszukiwania jest model wektorowy. Każdy dokument jest reprezentowany przez wektor słów kluczowych. Zapytanie jest traktowane jako kolejny dokument w kolekcji. W procesie wyszukiwania obliczamy zwykle miarę podobieństwa między wektorem zapytania a dokumentami (najczęściej cosinus kąta pomiędzy nimi) Wyniki następnie sortujemy malejąco tworząc ranking, na którego szczycie znajdują się dokumenty najlepiej pasujące do zapytania. Ważną cechą modelu wektorowego jest to, że dopuszcza on aby dokumenty, które tylko częściowo spełniają zapytanie, również były umieszczane w wynikach wyszukiwania Budowanie indeksu dokumentów Indeksy i spisy spotyka się na każdym kroku: w każdej bibliotece możemy znaleźć indeks autorów, w większości książek naukowych znajdziemy na końcu skorowidz ważnych terminów. Są to dwa klasyczne przykłady indeksów odwrotnych. Indeks odwrotny wykorzystywany w wyszukiwaniu najbardziej przypomina skorowidz, gdzie dla każdego terminu wypisane są strony na których jest o nim mowa. Proces budowania takiego indeksu możemy podzielić na trzy najważniejsze etapy: wstępne przetwarzanie dokumentu, wybór słów kluczowych, dodanie dokumentu do indeksu.

19 2.2. Wybrane zagadanienia dotyczace wyszukiwania informacji 14 RYSUNEK 2.4: Przykład tradycyjnego indeksu odwrotnego. Wstępne przetwarzanie dokumentu W podrozdziale 2.1 zasygnalizowane zostały pewne zagadnienia związane z przetwarzaniem tekstów na potrzeby budowania indeksów. Należy podkreślić przede wszystkim możliwość : usunięcia interpunkcji oraz większości informacji dotyczących struktury tekstu, eliminacji leksemów niejednoznacznych i występujących zbyt często, hasłowania i lematyzacja. Wymagania te wynikają z natury procesu wyszukiwania opartego o model wektorowy, gdzie zarówno dokumenty, jak i zapytania reprezentowane są przez wektory słów. Bezpośrednim następstwem tego jest marginalizacja roli struktury tekstu oraz znaków interpunkcyjnych. Pozostałe dwa czynniki mają wpływ na wielkość indeksu i wzrost selektywności procesu wyszukiwania. Przykład budowania indeksu odwrotnego Rozważmy następujący dokument: Wrzuciłeś Grzesiu list do skrzynki, jak prosiłam? - List, proszę cioci? List? Wrzuciłem, ciociu miła! - Nie kłamiesz, Grzesiu? Lepiej przyznaj się kochanie!

20 2.2. Wybrane zagadanienia dotyczace wyszukiwania informacji 15 Po usunięciu interpunkcji i wyrazów pospolitych, otrzymujemy: Wrzuciłeś Grzesiu list skrzynki prosiłam List proszę cioci List Wrzuciłem ciociu miła kłamiesz Grzesiu Lepiej przyznaj kochanie Następnie szukamy form podstawowych dla każdego z wyrazów (Tablica 2.1). Dysponując taką postacią dokumentu możemy stworzyć indeks. W poniższym przykładzie (Tablica 2.2) pozycję w tekście numerowane są od 1. TABLICA 2.1: Formy podstawowe wyrazów występujących w przykładowym tekście. Lemat wrzucać grzesiu list skrzynka prosić ciocia miła kłamać lepiej przyznawać kochanie Słowa Wrzuciłeś, Wrzuciłem Grzesiu, Grzesiu list, List skrzynki prosiłam, proszę cioci, ciociu miła kłamiesz lepiej przyznaj kochanie TABLICA 2.2: Gotowy do użycia indeks odwrotny. Słowo Wystąpienia wrzucać 1, 10 grzesiu 2, 14 list 3, 6, 9 skrzynka 4 prosić 5, 7 ciocia 8, 11 miła 12 kłamać 13 lepiej 14 przyznawać 15 kochanie 16 Ponieważ w indeksie zawsze występuje więcej niż jeden dokument, konieczne jest wprowadzenie infromacji o dokumencie z którego pochodzi dane słowo (poniższy przykład wykorzystuję wartości z Tabeli 2.2).

21 2.2. Wybrane zagadanienia dotyczace wyszukiwania informacji 16 list: (Dokument 1, pozycje: 3, 6, 9) Własności indeksu odwrotnego Miejsce wystąpienia danego słowa może być wskazywane z dokładnością do: pozycji w danym dokumencie, bloku, dokumentu. Jeżeli utworzony indeks będzie zawierał informację o pozycji każdego słowa w dokumencie, to będzie można wyszukiwać całe frazy np. Wrzuciłeś Grzesiu. Wyszukujemy wtedy w indeksie wystąpienia wyrazu Wrzuciłeś, a następnie odnajdujemy wystąpienia wyrazu Grzesiu. Jeżeli pozycja Grzesia jest o jeden większa znaleźliśmy szukaną frazę. Nie będziemy w stanie przeprowadzić takiego wyszukiwania dysponując tylko informacją o tym, że wyraz znajduję się w danym dokumencie (bez jego pozycji). Należy jednak podkreślić, że indeks zawierający dokładne informację o pozycji wyrazu może zajmować nawet dwukrotnie większy rozmiar (na dysku) niż indeks o dokładności dokumentu [BYRN99]. Metodą pośrednią jest adresowanie blokowe, w tym wypadku każdy dokument dzielony jest na bloki. W jednym bloku może znajdować się więcej niż jedno słowo kluczowe. W związku z tym przestrzeń adresowa potrzebna, aby oznaczyć wystąpienia wszystkich dokumentów jest mniejsza, niż w przypadku, gdy posługujemy się dokładnymi pozycjami. Rozmiaru używanych bloków to parametr pozwalający określić czy ważniejsza jest dokładność wskazania czy rozmiar indeksu. Wielkość indeksów odwrotnych stosując techniki takie adresowanie blokowe nie powinna przekroczyć 5% rozmiaru całej kolekcji. Naiwna złożoność obliczeniowa procesu wyszukiwania w oparciu o indeks odwrotny to O(n) gdzie n jest liczbą różnych słów w indeksie, a wyrazy znajdują się na zwykłej liście. W przypadku gdy zbiór słów jest zamodelowany za pomocą bardziej zaawansowanych struktur danych (B-drzewo) możemy obniżyć ten koszt nawet do O(logn). Wybór słów kluczowych Gdy tworzymy indeks odwrotny możemy wykorzystać wszystkie słowa zawarte w dokumencie lub tylko niektóre. Budowanie reprezentacji dokumentu w oparciu tylko o niektóre słowa wymaga przeprowadzenia wstępnej selekcji. W klasycznych indeksach bibliotecznych wyboru najważniejszych terminów dokonywał specjalista. Jednak w przypadku dużych kolekcji dokumentów klasyczne podejście wymaga poświęcenia zbyt dużej ilości czasu. Stworzenie automatycznych metod, które pozwalają wyselekcjonować wartościowe słowa kluczowe wymaga określenia jakie cechy powinno ono posiadać. Selektywność jeżeli dane słowo występuje tylko w nielicznych dokumentach pełnej kolekcji, to zwykle można uznać, że dobrze identyfikuje ono te dokumenty.

22 2.2. Wybrane zagadanienia dotyczace wyszukiwania informacji 17 Niezależność znaczeniowa w podrozdziale 2.1 zostało pokazane, że niektóre wyrazy mogą nieść znaczenie niezależnie od kontekstu w jakim zostały użyte. Przykładem takich wyrazów są rzeczowniki.należy jednak zwrócić uwagę na konstrukcje łączące przymiotnik z rzeczownikiem, np. rakiety balistyczne. Jeżeli jako słowa kluczowego użyjemy tylko wyrazu rakiety utracimy część pierwotnego znaczenia pełnej frazy. TF-IDF Jedną z najszerzej stosowanych metod pozwalających na obliczenie wagi danego słowa kluczowego w modelu wektorowym jest schemat tf-idf (skrót pochodzi od angielskiej frazy term frequency inverse document frequency). Dla każdego słowa obliczana jest waga: ( ) D tf-idf = tf log (2.1) d j t j gdzie przez D oznaczamy liczbę dokumentów w kolekcji, a przez d j t j liczbę dokumentów (należących do kolekcji) które zawierają wystąpienia termu t j. tf = n i k n k (2.2) Przez n i rozumiemy liczbę wystąpień danego termu, natomiast k n k oznacza liczbę wszystkich termów [Wik07f]. Dobre słowa kluczowe (wysoka wartość wagi tf-idf) to takie, które występują często w danym dokumencie, ale jednocześnie rzadko pojawiają się w innych dokumentach z rozpatrywanej kolekcji. Okapi BM25 W przypadku długich dokumentów prawdopodobieństwo tego, że dany wyraz pojawi się wiele razy jest wyższa. Spowoduje to wzrost wartości czynnika tf, w efekcie szansa na to, że długi dokument zostanie zwrócony w odpowiedzi na zapytanie użytkownika jest wyższa [SBM96]. BM25 to rodzina funkcji po raz pierwszy, użyta w systemie Okapi, które można wykorzystać do obliczenie wagi wyrazów z uwzględnieniem długości dokumentów [RWHB + 92]. Mając dokument D i wyraz t: f (t,d) (k 1 + 1) bm25(d, t) = idf(t) D f (t,d) + k 1 (1 b + b avgdl ), (2.3) gdzie: f (t,d) liczba wystąpień wyrazu t w dokumencie D. D długośc dokumentu D avdl średnia długość dokumentu w kolekcji k 1 i b wartości stałe (przeważnie przyjmuje się k 1 = 1,2 i b = 0,75).

23 2.2. Wybrane zagadanienia dotyczace wyszukiwania informacji 18 Natomiast IDF (ang. inverse document frequency), jest opisane wzorem: IDF(q i ) = log N n(q i ) + 0,5, (2.4) n(q i ) + 0,5 Zakładamy, że N to liczba wszystkich dokumentów w kolekcji, a n(t) to liczba dokumentów w kolekcji zawierających słowo t Model wektorowy Jak zostało to już wspomniane (por. 2.2), w modelu wektorowym zapytanie oraz każdy z dokumentów w kolekcji są reprezentowane przez wektor słów kluczowych. Wektor ten dla każdego dokumentu składa się z pewnej liczby słów oraz odpowiadających im wag. Przyjmuje się, że wyrazy z indeksu, które nie występują w danym dokumencie mają wagę 0. Obliczanie podobieństwa dokumentów Rozważmy następujące dane: dokument 1: Ziarnko do ziarnka, a zbierze się miarka, dokument 2: Zbierał, zbierał aż uzbierał, zapytanie: ziarnko uzbierał. W indeksie znajduję się 4 różne terminy (nie licząc wyrazów pospolitych) poniżej przedstawione zostały ich formy podstawowe: zbierać, ziarnko, uzbierać, miarka Dokumenty będzie więc reprezentował wektor składający się z 4 liczb (wag) odpowiadających poszczególnym słowom kluczowym. Zaproponowano wiele sposobów na obliczenie wartości wag, najszerzej stosowany sposób opiera się na wykorzystaniu schematu tfidf [SB87]. TABLICA 2.3: Wartości wagi tf-idf, obliczone dla: k n k = 7, D = 2. zbierać ziarnko uzbierać miarka n i tf 0,43 0,29 0,14 0,14 d j t j idf 0 0,3 0,3 0,3 tf-idf 0 0,09 0,04 0,04 Na podstawie przedstawionych w Tablicy 2.3 wartości możemy stworzyć wektory dla wszystkich dokumentów oraz zapytania (por. Tablica 2.4). W modelu wektorowym podobieństwo sim(d j, q) dokumentów jest równe cosinusowi kąta między reprezentującymi je wektorami d j i q.

24 2.3. Automatyczne streszczanie dokumentów 19 TABLICA 2.4: Wektory słów dla omawianego przykładu. zbierać ziarnko uzbierać miarka d 1 0 0,09 0 0,04 d ,04 0 q 0 0,09 0,04 0 sim(d j, q) = cos( d j q) (2.5) Otrzymane wyniki sortujemy malejąco względem otrzymanej wartości miary podobieństwa. Dla powyższego przykładu otrzymamy następujące wartości: sim(d 1, q) = 0,84, sim(d 2, q) = 0,4. Widać zatem, że żaden dokument w pełni nie pasuje do wydanego zapytania, ale w wynikach znajdą się oba (częściowo pasujące) dokumenty. 2.3 Automatyczne streszczanie dokumentów Dysponując odpowiednio przetworzonym tekstem, możemy przystąpić do tworzenia automatycznego streszczenia. Naszym celem jest ustalenie które informacje są najważniejsze, a następnie dokonanie ich selekcji oraz przetworzenie do postaci przyjaznej dla czytelnika. W wyniku tego procesu powinniśmy otrzymać tekst objętościowo mniejszy, ale zawierający jak najwięcej informacji z tekstu pierwotnego. Aby tego dokonać konieczne jest ustalenie funkcji oceny, która określi, które z informacji zawartych w tekście są istotne. Możemy uwzględnić tylko lingwistyczne własności tekstu lub skorzystać z dodatkowej wiedzy. Niniejszy rozdział prezentuje krótką charakterystykę najważniejszych (zdaniem autora) technik automatycznego generowania streszczeń. Przegląd ten w dużej mierze został oparty o [Zec96a] oraz [KPC95]. Wykorzystanie łańcuchów leksykalnych dla potrzeb sumaryzacji zostało szczegółowo opisane w [BE97] Metody statystyczne Ogólny schemat wykorzystywany przez większość metod statystycznych składa się z następujących etapów: wstępne przetwarzanie tekstu, ocena oraz wybór najważniejszych zdań lub akapitów. Podstawowe różnice między istniejącymi rozwiązaniami dotyczą przede wszystkim tego, jak zbudowana jest funkcja oceny zdań. W przypadku prezentowanych w tym podrozdziale technik uprawnione byłoby użycie nazwy metody częstościowe. Obok tej grupy algorytmów, opierających swe działanie na pewnych ogólnych cechach tekstu, istnieją również metody wykorzystujące bardziej zaawansowane narzędzia statystyczne: niejawne modele Markova [CO01] (ang. Hidden Markov Model) czy analizę skupień (ang. clustering).

25 2.3. Automatyczne streszczanie dokumentów 20 Wczesne prace Wczesne prace dotyczące automatycznej sumaryzacji budowały funkcję oceny w oparciu o częstość występowania wyrazów w tekście oraz ich wzajemną odległość w zdaniu. Zakładano przy tym eliminację wyrazów pospolitych, aby uniknąć potencjalnych zakłóceń związanych z ich częstym występowaniem [Luh58]. W latach późniejszych stworzono bardziej zaawansowane systemy, w których częstość była wykorzystywane jako jeden z wielu czynników decydujących o tym, czy zdanie zostanie uwzględnione w streszczeniu lub też jako rozwiązanie referencyjne przy ocenie jakości otrzymanych wyników. [Edm69] wprowadza trzy dodatkowe heurystyki: 1. Metoda sygnałowa (ang. Cue Method) obecność w zdaniu pewnych słów wpływa pozytywnie/negatywnie na istotność całego zdania. Zbiór słów sygnałowych został stworzony metodami statystycznymi na podstawie streszczeń tworzonych przez ludzi. 2. Metoda bazująca na słowach z tytułu (ang. Title Method) obecność w zdaniu słów zawartych w tytule tekstu (lub w nagłówkach akapitów) zwiększa jego szanse na to, by trafić do streszczenia. 3. Metoda wykorzystująca informację o położeniu (ang. Location Method) zakładamy, że zdania występujące na początku lub na końcu tekstu (lub akapitu) mogą zawierać ważniejsze treści są zatem istotniejsze w kontekście zachowania informacji z oryginalnego tekstu. Ocena jakości otrzymanych streszczeń pokazała, że najlepsze wyniki daje użycie kombinacji trzech powyższych heurystyk, z pominięciem częstości słów. Automatyczne streszczanie jako problem klasyfikacji Kontynuację i rozwinięcie idei [Edm69] można znaleźć w pracy [KPC95]. Wybór zdań został potraktowany jako problem klasyfikacji. Został stworzony klasyfikator Bayesowski, który dla każdego zdania s określa prawdopodobieństwo tego, że znajdzie się ono w streszczeniu S. Zakładając niezależność F 1,F 2,...F k : P(s S F 1,F 2,...,F k ) = P(F 1,F 2...,F k s S)P(s S) P(F 1,...,F k ) (2.6) P(s S F 1,F 2,...,F k ) = k j =1 P(F j s S)P(s S) k j =1 P(F j ) (2.7) gdzie: P(s S F 1,F 2,...F k ) to prawdopodobieństwo warunkowe tego, że zdanie s znajdzie się w wynikowym ekstrakcie S dla określonych wartości cech F 1,F 2...,F k. P(s S) prawdopodobieństwo tego, że zdanie s znajdzie się w wyniku. P(F j s S) prawdopodobieństwo wystąpienia danej wartości czynnika F j w zdaniu. Wartość stała, obliczana na podstawie analizy zbioru uczącego. P(F j ) prawdopodobieństwo niezależnego wystąpienia danego czynnika F j.

26 2.3. Automatyczne streszczanie dokumentów 21 Zdania o najwyższej wartości prawdopodobieństwa trafiają do tekstu wynikowego. Opierając się na wcześniejszych pracach [Edm69, Luh58] wzięte zostało pod uwagę pięć cech zdania: pozycja w akapicie (ang. paragraph feature), występowanie ustalonych słów lub fraz (ang. fixed-phrase feature), występowanie słów z tytułu lub nagłówków (ang. thematic word feature), długość zdania (ang. sentence length cut-off feature) występowanie wyrazów rozpoczynających się od wielkiej litery (ang. uppercase word feature). Wagi przyporządkowane poszczególnym cechom zostały obliczone na podstawie analizy zbioru 188 par dokument-streszczenie. Ze względu na mały rozmiar wykorzystywanego korpusu niemożliwe było wydzielenie osobnego korpusu uczącego i testowego, zastosowano weryfikację naprzemienną (ang. cross-validation). Aby zweryfikować jakość otrzymanych automatycznych streszczeń były one porównywane ze streszczeniami literackimi stworzonymi przez ekspertów. Na podstawie porównania identyfikowano odpowiadające sobie zdania z obu rodzajów streszczeń. Najlepsze wyniki otrzymano wykorzystując 3 : informację o pozycji zdania w akapicie, obecności ustalonego słowa/frazy, pomijanie zdania o długości mniejszej niż pewna ustalona wartość. Najgorsze wyniki natomiast dało użycie czynników (pośrednio) opartych o częstość występowania słów czyli: słowa z tytułu oraz wyrazy rozpoczynające się od wielkiej litery. Potwierdza to poczynione przez [Edm69] spostrzeżenie o niskiej jakości streszczeń generowanych przy pomocy metod opartych na częstości słów [Zec96a, KPC95]. Wykorzystanie schematu tf-ifd Z uwagi na słabą jakość streszczeń otrzymanych przy użyciu częstości wyrazów, pewną alternatywą może być użycie schematu tf-idf. Takie rozwiązanie zostało zastosowane w systemie ANES (ang. Automatic News Extraction System) [BMR95], jego głównym zadaniem było tworzenie automatycznych streszczeń wiadomości prasowych. Proces tworzenia streszczenia składał się z następujących etapów. 1. Wykorzystywanie referencyjnego korpusu dokumentów dla każdego wyrazu w tekście obliczamy wartość wagi tf-idf. 3 Więcej na informacji dotyczących technik ewaluacji jakości automatycznych streszczeń znajdzie Czytelnik w rozdziale 5.

27 2.3. Automatyczne streszczanie dokumentów Wybór słów znaczących (ang. signature words), do zbioru wchodzą: słowa kluczowe o najwyższej wadze, wyrazy z tytułu. 3. Obliczanie wagi zdań (ang. sentence weighting) odbywa się poprzez dodanie wag słów znaczących znajdujących się w danym zdaniu. Uwzględniane są również dodatkowe czynniki takie jak pozycja wyrazu w zdaniu. 4. Wybór zdań do streszczenia wybierane są zdania z najwyższymi wagami. Zostało pokazane, że ilość informacji w automatycznych streszczeniach generowanych przy użyciu metod opartych na schemacie tf-idf jest większa niż dla metod prostych (np. wzięcie pierwszych n zdań) [Zec96b]. Problemy związane z metodami statystycznymi Opisane wyżej podejście selekcja zdań na podstawie pewnych statystycznych cech tekstu, posiada liczne wady. Nie jesteśmy w stanie uniknąć sytuacji, w której zostaną zakłócone związki logiczne między zdaniami w tekście wynikowym (głównie za sprawą związków anaforycznych). Pewnym rozwiązaniem tego problemu może być wybór całych akapitów pozwoli to na stworzenie bardziej spójnego streszczenia, choć niestety nie zawsze da się to rozwiązanie zastosować. Żadna metoda oparta w całości na prostych statystykach słów nie jest również w stanie uwzględnić warstwy znaczeniowej dokumentu. Zasygnalizowane wcześniej problemy z synonimami, homonimami, czy metaforami wymagają semantycznej analizy tekstu [Mau89]. Rozważmy następujący przykład: Wiele wytrzymał zamek w Kamieńcu Podolskim za panowania króla Michała Korybuta, kiedy to w 1672 turecka nawałnica zagroziła pokojowi Rzeczypospolitej. Pokój w którym przebywał król Michał Korybut był wyposażony w mosiężny zamek. Sforsować go nie dałaby rady nawet turecka nawałnica z Pierwszy tekst traktuje o roli zamku w Kamieńcu Podolskim w czasie najazdu tureckiego w roku Drugi mimo iż zbudowany jest w dużej mierze z tych samych wyrazów, mówi o pokoju (miejscu), w którym schronił się król Michał Korybut. Zwróćmy uwagę, że słowa zamek i pokój występują w obu zdaniach, jednak ich znaczenie jest zupełnie inne. Informację przenoszą więc nie tylko słowa, ale i ich wzajemne związki. Aby poprawić jakość streszczeń opracowano metody uwzględniające także syntaktyczną i semantyczną strukturę tekstu.

28 2.3. Automatyczne streszczanie dokumentów Spójność leksykalna Dobrze zredagowany tekst jest postrzegany przez odbiorcę jako całość. Spójność ta znajduję odzwierciedlenie w warstwie leksykalnej: w doborze odpowiednich wyrazów, w częstości ich występowania. [BE97] opisuje dwa podstawowe rodzaje spójności leksykalnej: reiteracja występuje między tymi samymi wyrazami (powtórzenia), synonimami, hiponimami. kolokacja występuje między słowami, które często pojawiają się razem w pewnych kontekstach np. Ona pracuje jako nauczyciel w szkole. Wyrazy nauczyciel i szkoła występują razem w konkretnym kontekście znaczeniowym. Spójność leksykalna zachodzi nie tylko między dwoma wyrazami, ale również między sekwencjami wyrazów tworzy wtedy łańcuchy leksykalne (ang. lexical chains). Budowanie łańcuchów leksykalnych Istnieje kilka algorytmów pozwalających na tworzenie łańcuchów leksykalnych. Ogólna procedura przebiega następująco: 1. wybór słów, które będą brane pod uwagę przy tworzeniu łańcuchów, 2. dla każdego z wybranych słów znajdowany jest odpowiadający mu łańcuch leksykalny, 3. jeżeli odpowiedni łańcuch nie istnieje tworzony jest nowy, 4. słowo jest umieszczane w odpowiednim łańcuchu. Analizując powyższy proces należy zwrócić uwagę na kilka czynników, które mogą wpłynąć na jakość stworzonych łańcuchów leksykalnych. Ponieważ nie wszystkie wyrazy są dobrymi nośnikami znaczenia, przy budowie łańcuchów możemy ograniczyć się tylko do rzeczowników. Zmniejsza to liczbę możliwości, które trzeba sprawdzić, dzięki czemu czas konieczny do zbudowania łańcucha jest znacznie krótszy. Istotnym problemem przy konstrukcji łańcuchów jest dezambiguacja poszczególnych wyrazów. Niektóre z istniejących algorytmów nie przeprowadzają jej w ogóle (wybierając dla wszystkich wystąpień pierwsze możliwe znaczenie danego wyrazu). Ponieważ dokładna dezambiguacja jest kosztownym obliczeniowo procesem, zaproponowano pewne heurystyki pozwalające obniżyć ten koszt przy zachowaniu wysokiej trafności [BE97]. Miara jakości dla łańcuchów leksykalnych Aby efektywnie wykorzystać reprezentację jaką są łańcuchy leksykalne należy zdefiniować dla nich miarę jakości (siły). [BE97] zaproponowali następującą funkcję oceny: Ocena(Łańcuch) = l h, (2.8)

29 2.3. Automatyczne streszczanie dokumentów 24 gdzie: l długość (ang. length) to liczba wystąpień elementów składowych łańcucha w tekście, natomiast h jednorodność (ang. homogenity) jest równe (przez d oznaczamy liczbę elementów w łańcuchu): ( d h = 1 l Łańcuchy leksykalne a streszczanie tekstów ). (2.9) Łańcuchy leksykalne mają wiele cech w oparciu o które możemy stworzyć algorytm wybierający zdania do streszczenia. W najprostszym przypadku do streszczenia wybierane będą zdania, w których po raz pierwszy wystąpił leksem zawarty w najsilniejszych łańcuchach (łańcuchy są posortowane malejąco względem miary jakości). Rozważmy następujący przykład: Zamek króla Korybuta był ogromny. O twierdzy tej słyszała cała Europa. Mury zamku sięgały prawie do nieba. Dla którego stworzono następujący łańcuch leksykalny: zamek (2 wystąpienia), twierdza (1 wystąpienie). Załóżmy, że mamy stworzyć streszczenie składające się z jednego zdania. Wybieramy wtedy pierwszy leksem z najsilniejszego łańcucha w tym przypadku jest to leksem zamek. Do streszczenia trafia więc pierwsze zdanie w którym pojawia się forma tego leksemu. W [BE97] zaproponowano również inne algorytmy. Autorzy zauważyli, że pierwszy wyraz w łańcuchu nie musi być jego najlepszym reprezentantem. Autorzy wprowadzają pojęcie wyrazów reprezentatywnych (ang. representative words) są to wyrazy, których częstość występowania (w tekście) jest większa niż średnia częstość w danym łańcuchu. Do wyboru zdań używane są tylko wyrazy reprezentatywne. W powyższym przykładzie średnia jest równa 1,5, słowem reprezentatywnym będzie więc również wyraz zamek. Zastosowanie łańcuchów leksykalnych rozwiązuje tylko część z problemów wspomnianych w sekcji Problemy związane z występowaniem w tekście anafor pozostają nierozwiązane. Niemniej jednak użycie łańcuchów leksykalnych jako reprezentacji pośredniej jest ciekawą metodą pozwalającą obejść niektóre ograniczenia rozwiązań statystycznych. Często zdarza się, że to co można nazwać tematem jest określane w tekście za pomocą kilku wyrazów o podobnym znaczeniu. Rozkład częstości tych wyrazów może być podobny, ale nie muszą być one wcale najczęściej występującymi słowami. Dzięki użyciu łańcuchów leksykalnych możemy wykryć, że kilka wyrazów reprezentuję to samo pojęcie i uwzględnić ich sumaryczną częstość System Polsumm2 Problem automatycznej sumaryzacji tekstów dla języka polskiego został opisany w pracach dotyczących systemu Polsumm2 4 [CGKS04]. Opisane tam rozwiązanie wykorzystuje 4 Polsumm2 nie jest niestety dostępny online.

30 2.3. Automatyczne streszczanie dokumentów 25 głęboką analizę tekstu z użyciem gramatyki języka polskiego SGGP (ang. syntactic group grammar for Polish language, SGGP). System Polsumm2 jest kompletnym rozwiązaniem pozwalającym na tworzenie streszczeń z uwzględnieniem znaczenia wyrazów i związków międzyzdaniowych. RYSUNEK 2.5: Schemat systemu Polsum2, schemat pochodzi z [CGKS04]. Polsum2 potrafi wygenerować dobrej jakości streszczenia nie ograniczając się przy tym tylko do wyboru najważniejszych zdań w niezmienionej formie. Proces tworzenia streszczeń obejmuje [CGKS04]: 1. analizę lingwistyczną tekstu (morfologia, składnia, semantyka), 2. rozwiązywanie niektórych zależności anaforycznych. 3. podział zdań złożonych na proste, 4. wybór najważniejszych zdań, 5. generowanie wynikowego streszczenia linearyzacja. Polsum2 korzysta z utworzonego w Instytucie Informatyki Politechniki Śląskiej serwera analizy lingwistycznej LAS (ang. Linguistic Analysis Server) 5. LAS realizuję wszystkie trzy etapy analizy lingwistycznej: identyfikację morfologiczną wyrazów, tworzenie grup składniowych, rozbiór gramatyczny zdania w oparciu o SGGP oraz analizę semantyczną [Sus05]. Opisywany system implementuję bardzo ciekawą w kontekście sumaryzacji funkcjonalność: rozwiązywanie zależności anaforycznych. Polsum2 jest w stanie zidentyfikować i zastąpić niektóre anafory terminem do którego się ona odnosi. Dzięki temu wygenerowane streszczenie jest zwykle czytelniejsze. 5 Serwer LAS dostępny jest pod adresem:

31 Rozdział 3 Zastosowane rozwiązania Zastosowane w niniejszej pracy rozwiązania w dużej mierze opierają się na pracach opisanych w rozdziale 2. W tej części pracy zostanie omówiona większość modyfikacji, jakie zostały wprowadzone w stosunku do oryginalnych metod. Rozwinięcie informacji zawartych tutaj znajdzie Czytelnik w rozdziale 4, który w całości opisuje szczegóły związane z implementacją zaprezentowanych poniżej algorytmów. 3.1 Przetwarzanie języka naturalnego dla potrzeb sumaryzacji Model języka używany na potrzeby automatycznej sumaryzacji musi spełniać określone wymagania. Poziom komplikacji takiego modelu zależy od ilości informacji, jaka musi być w nim zawarta, a to wynika bezpośrednio z potrzeb używanej metody. Najważniejsze w kontekście sumaryzacji są następujące postulaty. Zachowanie pierwotnej struktury tekstu: podział na zdania i akapity, wyodrębnione nagłówki i tytuł tekstu. Pozyskanie informacji o cechach morfologicznych poszczególnych wyrazów i ich formie podstawowej. Rozpoznanie wyrazów pospolitych Rozpoznawanie struktury tekstu Podstawową jednostką składniową wykorzystywaną przez metody implementowane w ramach tej pracy jest zdanie. Często zdarza się, że tekst jest podzielony na jednostki wyższego rzędu (akapity, sekcje), z których każda poprzedzona jest tytułem. Omawiane metody wykorzystują tylko niektóre z informacji o strukturze wyższego rzędu. Zastosowana heurystyka rozpoznaje granice akapitów, potrafi również rozróżnić, czy dany fragment tekstu to tytuł, czy nowy akapit. 26

32 3.1. Przetwarzanie języka naturalnego dla potrzeb sumaryzacji 27 Granice akapitów Program dzieli najpierw tekst na fragmenty potencjalne akapity następnie są one przeglądane w kolejności wystąpienia. Fragment tekstu jest akapitem gdy: jest dłuższy niż zadana minimalna długość akapitu, jeżeli jest ostatnim wydzielonym fragmentem w tekście. Fragment tekstu jest traktowany jako tytuł następującego po nim akapitu, jeżeli jest krótszy niż zadana minimalna długość akapitu oraz: znajduję się na początku tekstu, występujący bezpośrednio przed nim akapit nie jest tytułem (jest dłuższy niż minimalna długość akapitu). Rozpatrzmy następujący przykład, zakładając, że minimalna długość akapitu to 6 wyrazów: Dobre regulacje Rynek kapitałowy w Polsce nie jest przeregulowany, natomiast zbyt mało jest spółek notowanych na giełdzie. Zakończenie To jednak tylko kwestia czasu. W pierwszym etapie działania algorytm podzieli tekst na cztery części. Dobre regulacje uznajemy za tytuł ponieważ jest krótszy niż zadana minimalna długość akapitu, znajduję się na początku tekstu. Rynek kapitałowy w Polsce... fragment jest dłuższy niż minimalna długość, uznajemy go za akapit. Algorytm zapamiętuje również, że poprzednie zdanie jest tytułem tego akapitu. Zakończenie tekst jest krótszy niż zadany próg, a ponieważ nie znajduje się na końcu tekstu, uznajemy, że to tytuł akapitu. To jednak tylko kwestia czasu. Zdanie to jest krótsze niż zadany próg, ale znajduje się na końcu tekstu; uznajemy je więc za akapit opatrzony tytułem Zakończenie. Jako minimalną długość akapitu przyjęto liczbę 10, wartość ta została wyznaczona na podstawie ręcznej analizy korpusu Rzeczpospolitej [Rze] i innych dostępnych tekstów prasowych.

33 3.2. Sumaryzacja 28 Rozpoznawanie zdań W języku polskim istnieją dwa rodzaje wypowiedzeń: zdania i równoważniki zdań. Wypowiedzenie może być zakończone znakiem kropki, wielokropkiem, znakiem zapytania lub wykrzyknikiem. Będziemy je traktować na równi jako podstawowe elementy budujące automatyczne streszczenie. Kropka w języku polskim jest używana również do oznaczania skrótów. Jeżeli skrót kończy się na literę inną niż oryginalny wyraz należy umieścić na końcu kropkę. W tekstach prasowych często występują jednoliterowe skróty nazwisk np. Adam D.. Znak kropki używany jest również dla liczebników porządkowych takich jak 16. Dywizji, aby podkreślić że chodzi o szesnastą, a nie o szesnaście dywizji. Zastosowany algorytm przegląda tekst słowo po słowie. Gdy po danym wyrazie występuje kropka program sprawdza czy dany ciąg znaków jest skrótem lub liczebnikiem porządkowym. Jeżeli przetwarzane słowo nie jest skrótem, algorytm zakłada że odnalazł koniec zdania. W przypadku pozostałych znaków końca zdania algorytm nie musi sprawdzać czy przetwarzany wyraz to skrót. Ciąg znaków jest oznaczany jako skrót, jeżeli: znajduje się na liście najpopularniejszych skrótów, jest to pojedyncza litera lub liczba zakończona kropką. Wspomniana lista zawiera tylko skróty które zawsze kończą się kropką. Skróty takie jak kg czy zł które oznaczają jednostki fizyczne, pisane są bez kropki. Jeżeli w poprawnie zredagowanym tekście po takim wyrazie pojawi się kropka jednoznacznie wskazuje to na koniec wypowiedzenia. Taka heurystyka działa bardzo dobrze, dla poprawnie zredagowanych tekstów prasowych. Zawodzi ona jednak w przypadku gdy na końcu zdania rozpoznany zostanie skrót, który powinien kończyć się kropką. kropki. W tej sytuacji nie stawia się oczywiście dodatkowej Sztuka zostanie wystawiona 15 dnia bm. Andrzej Grabowski zagra w niej główna rolę. Ponieważ po bm. nie ma przecinka zakładamy, że przedstawiony tekst składa się z dwóch zdań. Algorytm uzna jednak, że kropka po bm. należy do skrótu i w tej sytuacji uzna cały przykładowy tekst za jedno zdanie. 3.2 Sumaryzacja Metoda wykorzystująca informację o położeniu zdań Pisaniem artykułów prasowych (bądź naukowych) rządzą pewne dość ścisłe zasady. Każdy taki tekst posiada wstęp, w którym krótko określona jest jego zawartość. Następnie, w kolejnych akapitach (sekcjach), omawiane są szczegółowo zagadnienia wprowadzone we wstępie. Artykuł kończy się podsumowaniem często właśnie w tej części pojawiają się wnioski,

34 3.2. Sumaryzacja 29 które mogą być najbardziej istotne dla czytelnika. Wiedzę o zasadach redakcji tekstów możemy wykorzystać dla potrzeb automatycznego generowania streszczeń. Stworzona heurystyka wykorzystuje informację o położeniu poszczególnych zdań w tekście. W pierwszej kolejności do streszczenia wybierane są zdania znajdujące się na początku akapitu. Z tak wybranych zdań budowane jest streszczenie, które jest następnie uzupełniane zdaniami znajdującymi się na dalszych pozycjach. Dobre regulacje Rynek kapitałowy w Polsce nie jest przeregulowany, natomiast zbyt mało jest spółek notowanych na giełdzie. Polski rynek prezentuje się dobrze, jest właściwie przygotowany pod względem organizacyjnym i prawnym. Zdaniem prezesa giełdy warunki handlu na rynku giełdowym i pozagiełdowym będą inne, nie będzie więc między nimi konkurencji. Giełda jest przygotowana do rozwoju drugiego parkietu i stworzenia trzeciego. Działanie tego algorytmu najlepiej zobrazuje poniższy przykład. Tekst składa się czterech zdań i 2 akapitów w zależności od zadanej długości w streszczeniu znajdą się następujące zdania: 1. Rynek kapitałowy w Polsce... wybieramy pierwsze zdanie z pierwszego akapitu. Ponieważ osiągnięta została zadana długość streszczenia algorytm kończy działanie. 2. Rynek kapitałowy w Polsce..., Zdaniem prezesa... wybieramy pierwsze zdanie z pierwszego akapitu, sprawdzamy czy osiągnięta została zadana długość, ponieważ istnieje drugi akapit, wybieramy z niego pierwsze zdanie, osiągnięta została zadana długość, algorytm kończy działanie. 3. Rynek kapitałowy w Polsce..., Polski rynek prezentuje, Zdaniem prezesa... pierwsze dwa kroki przebiegają identycznie jak w poprzednim przykładzie, ponieważ nie została osiągnięta zadana długość i nie ma trzeciego akapitu algorytm wraca do pierwszego. Wybiera z niego drugie zdanie i kończy działanie Metody wykorzystujące automatyczną ocenę jakości słów kluczowych W rozdziale na stronie 13 omówione zostały zagadnienia związane z technikami automatycznego wyboru słów kluczowych. Przedstawione zostały dwa schematy (tf-idf oraz bm25) umożliwiające automatyczne określanie ważności poszczególnych słów i od wielu lat z powodzeniem stosowane w wyszukiwaniu informacji. Metody automatycznego ważenia słów można w intuicyjny sposób wykorzystać do określania istotności poszczególnych zdań. Dysponując taką informacją możemy stworzyć automatyczne streszczenie. Zastosowany algorytm w dużej mierze przypomina ten zastosowany w systemie ANES (por. rozdział na stronie 21). Składają się na niego następujące fazy:

35 3.2. Sumaryzacja tworzenie zbioru słów znaczących, a) wybór słów, b) tworzenie rankingu słów, 2. obliczanie wag zdań polega na sumowaniu wag słów znaczących wchodzących w skład danego zdania, 3. Wybór zdań do streszczenia wybierane są zdania z najwyższymi wagami. Przeprowadzenie opisanego powyżej postępowania wymaga zdefiniowania wartości kilku parametrów. Czy wagi są obliczane dla wszystkich słów, czy tylko dla rzeczowników? Wartość progowa jeżeli wartość wagi dla danego wyrazu jest mniejsza, niż zadany próg wyraz jest ignorowany. Liczba słów wchodzących do zbioru znaczącego jeżeli wartość jest określona, w zbiorze znajdzie się tylko n wyrazów o najwyższych wagach. Tworzenie zbioru słów znaczących odbywa się w dwóch etapach. W przypadku gdy algorytm operuje tylko na rzeczownikach, w pierwszym kroku są one oddzielane od pozostałych wyrazów. Dalej, dla przetwarzanego zbioru słów obliczamy wartości wag. Następnie wyliczane są wagi dla poszczególnych zdań, wybierana jest odpowiednia liczba zdań ocenionych najwyżej. W końcowej fazie działania algorytmu, wybrane zdania są ustawiane w kolejności w jakiej występowały w tekście źródłowym. Oba użyte sposoby obliczania wag wymagają dostępu do referencyjnego zbioru dokumentów. Użyty do tego celu został korpus stworzony na podstawie kopii bazy danych polskiej Wikipedii 1. Zawiera on ponad 300 tys. artykułów w języku polskim. W przypadku funkcji bm25 konieczne jest również określenie średniej długości dokumentu w referencyjnej kolekcji. Wartość ta dla opisanego korpusu to około 80 słów. Rozpatrzmy fragment znanego nam już tekstu: Rynek kapitałowy w Polsce nie jest przeregulowany, natomiast zbyt mało jest spółek, notowanych na giełdzie. Polski rynek prezentuje się dobrze, jest właściwie przygotowany pod względem organizacyjnym i prawnym. Załóżmy, że wielkość zbioru znaczącego jest równa 3, dla obliczenia wag użyjemy zarówno tf-idf jak i bm25 biorąc pod uwagę tylko rzeczowniki. Otrzymane słowa kluczowe i wartości ich wag przedstawiono w tabeli 3.1 na następnej stronie. W obu przypadkach wybrane zostanie zdanie Rynek kapitałowy w Polsce.... Zawiera ono wszystkie trzy najlepiej ocenione słowa kluczowe w efekcie czego jego ocena jest najwyższa. 1 Szczegóły dotyczące sposobu pozyskania tych danych znajdzie czytelnik w rozdziale 4

36 3.2. Sumaryzacja 31 TABLICA 3.1: Otrzymane słowa kluczowe wraz z wartościami wag w obu schematach. tf-idf bm25 rynek 0,331 1,061 giełdzie 0,237 0,801 spółek 0,2 0, Metody wykorzystujące łańcuchy leksykalne Zastosowany algorytm w ogólności nie różni się zbytnio od tego przedstawionego w rozdziale Zostały jednak wprowadzone pewne uproszczenia wynikające ze złożonej obliczeniowo natury tego algorytmu. Tezaurus Konstrukcja łańcuchów leksykalnych wymaga dostarczenia informacji o powiązaniach między słowami. Dla języka polskiego dostępny jest darmowy tezaurus ux.pl redagowany przez Marcina Miłkowskiego. Jest on dystrybuowany w kilku formatach: prosty plik tekstowy, format słownikowy wykorzystywany w pakiecie OpenOffice, format słownikowy programu KOffice. Na potrzeby konstrukcji łańcuchów leksykalnych potrzebna jest nie tylko informacja o synonimach, ale również dane o pojęciach nad- i podrzędnych. Opisywany tezaurus nie zawiera tych informacji w prostej wersji tekstowej, konieczne było stworzenie własnego parsera dla formatu słownika pakietu OpenOffice. Tezaurus w tym formacie zbudowany jest z dwóch plików: indeksu i właściwego pliku tekstowego, zawierającego powiązania między wyrazami. Przykładowy wpis w takim pliku tekstowym ma postać: gruzy 2 - gruzowisko resztki ruina rumowisko zgliszcza nieczystości (pojęcie nadrzędne) odpady (pojęcie nadrzędne) - kamienie polne piarg żwir Wyraz gruzy znajduję się w dwóch zbiorach znaczeniowych (ang. synsets). Elementami takiego zbioru mogą być oznaczone jedną bądź kilkoma etykietami, np. pojęcie nadrzędne, pojęcie podrzędne, przestarz., pot., ksiażk., specjalist.. W omawianym przypadku istotna jest dla nas informacja o pojęciach nad- (hipernimach) i podrzędnych (hiponimach), pozostałe etykiety mogą zostać zignorowane, a wyrazy potraktowane jako synonimy. Ponadto każdemu zbiorowi znaczeniowemu przyporządkowany został unikalny liczbowy identyfikator.

37 3.2. Sumaryzacja 32 Budowanie łańcuchów leksykalnych Zastosowany w niniejszej pracy algorytm automatycznego tworzenia streszczeń został oparty na heurystyce uwzględniającej wieloznaczność elementów łańcucha leksykalnego zaproponowanej w [BE97]. W pierwszej fazie działania algorytm tworzy łańcuchy leksykalne, następnie dokonywany jest wybór najważniejszych zdań i synteza wynikowego streszczenia. Budowanie łańcuchów składa się z opisanych poniżej kroków: 1. wybór wyrazów, 2. dla każdego wyrazu: pobranie z tezaurusa grup znaczeniowych, dodanie wyrazu do zbioru możliwych interpretacji, 3. gdy algorytm dotrze do końca zdania usuwane są najmniej obiecujące interpretacje, 4. gdy osiągnięta zostanie granica akapitu: z zebranych interpretacji tworzone są łańcuchy leksykalne, nowe łańcuchy są łączone z łańcuchami z poprzednich akapitów, ze zbioru połączonych łańcuchów wybierane są te najmocniejsze, 5. po przetworzeniu wszystkich akapitów łańcuchy są sortowane malejąco względem miary ich jakości. Do budowy łańcuchów mogą zostać wykorzystane tylko rzeczowniki, bądź wszystkie wyrazy w obu przypadkach wyrazy pospolite zostaną zignorowane. Dla każdego wyrazu (leksemu) pobierana jest z tezaurusa informacja o grupach znaczeniowych do których on należy. Na podstawie otrzymanych grup znaczeniowych tworzone są interpretacje. Gdy algorytm rozpoczyna swoje działanie lista interpretacji jest pusta. Przez interpretację będziemy rozumieć obiekt o następujących cechach: do jednej interpretacji może należeć wiele różnych leksemów, leksem jest opisywany przez liste wystąpień oraz identyfikator zbioru znaczeniowego, Jeżeli wyraz posiada dwa różne znaczenia (znajduję się w dwóch różnych zbiorach znaczeniowych), należy stworzyć dwie oddzielne interpretacje. Dodanie do interpretacji wyrazu (w konkretnym znaczeniu), który już się w niej znajduje spowoduje dodanie kolejnej pozycji na liście jego wystąpień. Ponieważ liczba elementów na liście interpretacji rośnie bardzo szybko, gdy osiągnięty zostanie koniec zdania program sprawdza, czy liczba interpretacji nie przekroczyła zadanej wartości maksymalnej. Jeżeli warunek ten zostanie spełniony, ze stworzonych dotychczas interpretacji wybierane są najsilniejsze. To, czy dana interpretacja jest lepsza od innej zależy od tego, ile spośród jej elementów jest ze sobą powiązanych (im więcej powiązań tym

38 3.2. Sumaryzacja 33 lepiej). Powiązanie występuje między dwoma leksemami, które posiadają ten sam identyfikator zbioru znaczeniowego oznacza to, że według rozpatrywanej interpretacji zostały one użyte w tym samym znaczeniu. Łańcuchy są tworzone w momencie, gdy osiągnięta zostanie granica akapitu. Dla każdej interpretacji wybierane są wszystkie jej elementy. Następnie program sprawdza, które z elementów są ze sobą powiązane. [BE97] proponuje trzy rodzaje relacji między wyrazami: bardzo silna (ang. extra-strong) między wyrazem, a jego powtórzeniem, silna (ang. strong) pomiędzy słowami połączonymi relacją wynikającą z tezaurusa (synonimia, hypernimia), średnia (ang. medium-strong) jeżeli ścieżka łącząca dwa wyrazy (wynikająca z tezaurusa) jest dłuższa niż 1. W zastosowanym rozwiązaniu rozpatrywane są jedynie pierwsze dwa typy relacji. Elementami tego samego łańcucha leksykalnego mogą więc być tylko powtórzenia danego wyrazu lub słowa należące do tego samego zbioru znaczeniowego. Stworzone w ten sposób łańcuchy są łączone z łańcuchami utworzonymi dla poprzednich akapitów. Dwa łańcuchy mogą zostać ze sobą połączone, jeżeli leksemy które je tworzą znajdują się w tym samym zbiorze znaczeniowym. Informacja o znaczeniu w jakim został użyty wyraz wynika z interpretacji na podstawie której został wygenerowany dany łańcuch. Wewnątrz łańcucha każde słowo jest również reprezentowane za pomocą identyfikatora zbioru znaczeniowego i listę wystąpień. W tabeli 3.2 zaprezentowany został przykład łączenia dwóch łańcuchów leksykalnych, których elementy należą do tego samego zbioru znaczeniowego. TABLICA 3.2: Łączenie łańcuchów leksykalnych. słowo wystąpienia łańcuch 1 zamek 1, 1, 2, 3 twierdza 0, 10 łańcuch 2 twierdza 4, 5 cytadela 6, 7 wynik zamek 1, 1, 2, 3 cytadela 6, 7 twierdza 0, 6, 7, 10 Po połączeniu, spośród zebranych z dotychczas przetworzonego tekstu łańcuchów leksykalnych wybierane są silne łańcuchy. W rozdziale przedstawiona została miara siły jakości łańcuchów zaproponowana przez [BE97]. Należy jednak zwrócić uwagę na fakt, że tak sformułowana funkcja oceny, posiada zasadniczą wadę. Rozważmy następujące dwa łańcuchy leksykalne (w nawiasach znaczenie, liczba wystąpień):

39 3.2. Sumaryzacja 34 zamek (budowla, 1), cytadela (budowla, 1), twierdza (budowla, 1), zamek (zasuwa, 1) Zgodnie z zaproponowana przez [BE97] miarą jakości oba te łańcuchy mają taką samą siłę. Oba łańcuchy powstały ze słowa zamek. W przypadku pierwszego, znaczenie wyrazu zamek zostało potwierdzone poprzez odnalezienie w tekście jego synonimów. W tekście natomiast nie wystąpiły wyrazy powiązane ze słowem zamek w znaczeniu zasuwa. Widzimy, więc, że długość łańcucha jest istotna w kontekście poprawnej dezambiguacji wyrazu. Wykorzystując miarę jakości zaproponowaną przez [BE97], istnieje możliwość utraty dłuższego łańcucha na etapie wyboru silnych łańcuchów. W zastosowanej metodzie wprowadzono do funkcji oceny dodatkowy składnik: Ocena(Łańcuch) = l h + d (3.1) Gdzie d to liczba leksemów z których dany łańcuch się składa. Łańcuch leksykalny będziemy nazywali silnym, jeżeli jego ocena jest większa lub równa średniej ocenie łańcuchów z rozpatrywanego zbioru. Gdy algorytm dociera do końca tekstu, łańcuchy leksykalne są sortowane malejąco względem funkcji oceny. Wybór zdań Na podstawie otrzymanych łańcuchów leksykalnych i ich oceny algorytm dokonuje wyboru najważniejszych zdań. Każdy łańcuch leksykalny składa się z wyrazów i ich listy wystąpień. Lista wystąpień to po prostu lista zdań, w których dany wyraz występuje. Waga danego zdania jest równa sumie ocen łańcuchów, których elementy znajdują się w danym zdaniu. Rozpatrzmy następujący przykład: Zamek króla Korybuta był ogromny, o władcy i jego twierdzy słyszała cała Europa. oraz łańcuchy leksykalne (w nawiasach liczba wystąpień, numer zdania): 1. zamek (1,1) i twierdza (1,1) 2. król(1,1) i władca(1,1) Siła tych łańcuchów jest równa 2. Ponieważ zdanie to zawiera dwa wyrazy z pierwszego łańcucha oraz dwa wyrazy z drugiego łańcucha jego łączna waga to: = 8. Zdania których wyrazy nie należą do żadnego z łańcuchów otrzymują wagę 0. Synteza streszczenia polega więc na wyborze n zdań o najwyższych wagach.

40 3.2. Sumaryzacja 35 Przykład Rozważmy prosty przykład: Zamek króla Korybuta był ogromny, o twierdzy tej słyszała cała Europa. Przy budowie łańcucha uwzględnione będą tylko rzeczowniki. Po wstępnym przetworzeniu otrzymamy następującą listę wyrazów: zamek, król,korybut, twierdza, europa Budowę łańcucha rozpoczynamy od wyrazu zamek. Zgodnie z tezaurusem ma on trzy znaczenia: twierdza (1), zamknięcie (2), zamek błyskawiczny (3). Istnieją więc trzy możliwe, wykluczające się interpretacje. Kolejny wyraz: król ma również (wg. tezaurusa) trzy znaczenia: monarcha (1), figura szachowa (2), samiec królika (3). Żadna z interpretacji nie jest powiązana ze słowem zamek (nie jest synonimem, ani hypernimem) musimy więc rozważyć wszystkie możliwe interpretacje ich liczba wzrasta do 9 (patrz rysunek 3.1). RYSUNEK 3.1: Drzewo możliwych interpretacji tworzone w podczas budowania łańcuchów leksykalnych. Słowo korybut nie występuje w tezaurusie, przechodzimy więc do następnego wyrazu. Dla terminu twierdza otrzymujemy również trzy grupy synonimów: cytadela (1), gród (2), zamek (3). Liczba możliwości wzrośnie więc do 27! Dodanie słowa Europa nic już nie zmieni, występuję ono tylko w jednym znaczeniu jako stary kontynent (1). Liczba możliwych interpretacji pozostanie więc taka sama. Po zakończeniu przetwarzania zdania usuwane są najsłabsze interpretacje. Po zakończeniu przetwarzania fragmentu tekstu, tworzone są łańcuchy leksykalne. Najdłuższy łańcuch (jedyny dwuelementowy) w powyższym przykładzie to: zamek-twierdza, poza nim otrzymamy również niżej punktowane łańcuchy jednoelementowe składające się tylko ze słowa zamek.

41 3.3. Wyszukiwanie dokumentów podobnych 36 Liczba możliwych interpretacji rośnie bardzo szybko, nawet w tak prostym przypadku konieczne było rozpatrzenie 27 różnych interpretacji. 3.3 Wyszukiwanie dokumentów podobnych Algorytm wyszukiwania tekstów podobnych na wejściu przyjmuje tekst, a w wyniku zwraca dokumenty (z zadanej kolekcji) o najbardziej zbliżonej zawartości. Jest to de facto prosta realizacja założeń modelu wektorowego (por ). Proces wyszukiwania dokumentów podobnych przebiega w następujących etapach: 1. z tekstu wejściowego utwórz reprezentujące go zapytanie (wektor słów kluczowych), a) oblicz wagi wszystkich słów w tekście wejściowym, b) wybierz n najlepiej ocenionych słów, c) stwórz z najlepszych słów zapytanie, d) przypisz elementom zapytania odpowiednie wagi, 2. dla każdego dokumentu w kolekcji stwórz wektor słów, 3. znajdź dokumenty, dla których podobieństwo między zapytaniem, a wektorem słów kluczowych jest najwyższe. W zastosowanym rozwiązaniu użyty został schemat tf-idf, a do obliczenia wartości wagi wykorzystujemy zadaną kolekcję dokumentów. Dysponując wartościami wag dla wszystkich słów w tekście wejściowym, wybieramy n słów o najwyższych wartościach, gdzie n jest mniejsze lub równe liczbie różnych słów w tekście. Z tych słów tworzone jest zapytanie (wektor słów), którego poszczególnym elementom przypisane są obliczone wcześniej wagi. Następnie spośród dokumentów w zadanej kolekcji wybierane są te, których wektory słów kluczowych są najbardziej podobne do zapytania. Tworzenie wektorów słów dla poszczególnych tekstów odbywa się na podobnej zasadzie jak w przypadku tekstu wejściowego. Podobieństwo jest mierzone za pomocą standardowej miary zdefiniowanej dla modelu wektorowego (por. rozdział 2.2.2). Wynikowe dokumenty są posortowane malejąco względem wartości miary podobieństwa.

42 Rozdział 4 Implementacja Problemem automatycznego generowania streszczeń zajmowano się już wielokrotnie, a wypracowane rozwiązania często nadają się aby wdrożyć je w środowisku produkcyjnym. Brakuje jednak ogólnodostępnej implementacji. Projekt taki mógłby być również środowiskiem umożliwiającym porównywanie i udoskonalanie dotychczas istniejących metod oraz implementację nowych. W niniejszym rozdziale zostaną opisane tylko najważniejsze koncepcje związane z implementacją algorytmów przedstawionych wcześniej. Szczegółowa dokumentacja techniczna znajduje się na płycie dołączonej do pracy. 4.1 Lakon W ramach implementacji omawianych w pracy zagadanień powstał program Lakon, którego nazwa wzięła się od zwrotu mówić lakonicznie czyli krótko, zwięźle i na temat. Warunkiem koniecznym dla dalszego rozwoju stworzonego rozwiązania jest jego ogólna dostępność w najbliższej przyszłości Lakon zostanie udostępniony jako Wolne Oprogramowanie (ang. open-source). Stworzone narzędzia oferują możliwość testowania nowych metod i porównanie ich z już istniejącymi. Przy projektowaniu uwzględniono możliwość rozszerzenia funkcjonalności o obsługę języków innych niż polski Założenia projektowe Główne założenia projektowe to: Modularność Podział wymagań funkcjonalnych na możliwie niezależne części składowe i ich implementacja w formie autonomicznych podprojektów. Przenośność Stworzony program powinien przy możliwie małym nakładzie pracy nadawać się do uruchomienia w ramach wielu platform. 37

43 4.1. Lakon 38 Możliwość dalszej rozbudowy Zastosowanie zasad projektowania obiektowego z uwzględnienim wzorców projektowych gwarantuje, że stworzone rozwiązanie da się bez większych problemów rozszerzyć o nową funkcjonalność. Test driven development (TDD) Wśród wielu praktyk proponowanych przez współczesną inżynierie oprogramowania TDD jest chyba jedną z najważniejszych. Paradygmat ten zakłada, że automatyczny test jednostkowy jest rodzajem kontraktu, który tworzony kod programu musi spełnić. Tworzenie nowej funkcjonalności rozpoczynamy od stworzenia automatycznego testu, który weryfikuje wszystkie wymagania ujęte w specyfikacji. Dopiero dysponując gotowym testem przystępujemy do tworzenia kodu realizującego daną funkcjonalność [Bec02] Główne składniki projektu Projektując wewnętrzną strukturę projektu wzięto pod uwagę, iż niektóre elementy mogą być używane niezależnie. Lakon składa się więc z czterech podprojektów, z których każdy obejmuje swoim zakresem tylko pewien wycinek funkcjonalności. RYSUNEK 4.1: Główne składniki Lakona i ich wzajemne zależności. Tiller Moduł odpowiedzialny za wstępne przetwarzanie tekstu, jest on bezpośrednią realizacją omówionego w rozdziale 3.1 schematu procesu przetwarzania języka naturalnego na potrzeby sumaryzacji. Summarizer W tym podprojekcie znajduje się implementacja wszystkich opisywanych w pracy metod automatycznej sumaryzacji. Ponadto projekt dostarcza środków umożliwiających ocenę jakości generowanych streszczeń.

44 4.1. Lakon 39 GUI Graficzny interfejs użytkownika, umożliwia nie tylko tworzenie streszczeń, ale również eksperymentowanie z parametrami poszczególnych metod. Z poziomu GUI dostępne są również pewne czynności nie związane bezpośrednio z samym tworzeniem streszczeń np. wyszukiwanie dokumentów podobnych czy wyszukiwanie synonimów w oparciu o tezaurus. Aplikacja do zbierania streszczeń jest to aplikacja internetowa, której głównym zadaniem było udostępnienie grupie ochotników środków potrzebnych do tworzenia streszczeń. Zebrane w ten sposób dane posłużyły do oceny jakości wyników otrzymanych z metod automatycznych. Niezależnie od Lakona stworzone zostało narzędzie nazwane Wiki i umożliwiające budowanie indeksu z kolekcji dokumentów. Wiki zostało użyte do stworzenia indeksu odwrotnego w oparciu o kopię zapasową bazy danych polskiej wersji Wikipedii. Indeks ten jest wykorzystywany przez niektóre metody automatycznego tworzenia streszczeń Technologia Lakon został w całości napisany w języku Java. Java to nowoczesny, obiektowy język programowania o jego sile najlepiej świadczy ogromna liczba projektów ze swobodnie dostępnych kodem źródłowym napisanych właśnie w Javie. Spośród wielu zalet tego języka jedną z najważniejszych jest niezależność od środowiska w jakim aplikacja jest uruchamiana. Lakon przy stosunkowo niewielkim nakładzie pracy może być uruchamiany pod teoretycznie dowolnym systemem operacyjnym. W stworzonej implementacji użyte zostały następujące biblioteki: Lucene Jest to bardzo wydajne i elastyczne narzędzie służące do wyszukiwania pełnotekstowego. Biblioteka ta jest wykorzystywana przy wyszukiwaniu dokumentów podobnych oraz budowaniu indeksu z kolekcji dokumentów. Więcej informacji o możliwościach tego narzędzia można znaleźć na stronach projektu: Morfeusz To stworzony przez Marcina Wolińskiego komputerowy słownik morfologiczny dla języka polskiego, wykorzystujący dane i gramatykę formalną zaproponowaną w [SŚ98]. Morfeusz nie jest biblioteką Javową, dostępny jest w formie biblioteki łączonej dynamicznie (ang. Dynamic link library, DLL). Dostępny jest jednak moduł umożliwiający korzystanie z Morfeusza z poziomu programów napisanych w Javie. Morfeusz do oznaczania części mowy wykorzystuje system znaczników morfosyntaktycznych korpusu IPI PAN [Wol04]. Stempelator To hybrydowy lematyzator dla języka polskiego. Składa się on właściwie z dwóch części: Lametyzator (lematyzator słownikowy), oraz Stempel (lematyzator heurystyczny). W przypadku gdy właściwa forma nie zostanie odnaleziona w słowniku, uruchamiany jest lematyzator heurystyczny. Więcej informacji na temat Stempelatora znajdzie Czytelnik w [Wei05].

45 4.2. Tiller 40 Ponadto w projekcie użyty został Apache Maven jest to narzędzie służące do zarządzania konfiguracją i automatyzacji podstawowych czynności związanych z tworzeniem oprogramowania. Maven wprowadza obiektowy model projektu (ang. Project Object Model), który określa nie tylko strukturę wewnętrzną projektu, ale również większość czynności związanych z poszczególnymi fazami wytwarzania oprogramowania [MvZ07]. Realizacja postulatów TDD była możliwa dzięki użyciu systemu JUnit (w wersji 3.8) 1. W ramach całego projektu powstało około stu testów jednostkowych, obejmujących swoim zakresem większość zaimplementowanej funkcjonalności. Oprócz wymienionych narzędzii w implementacji aplikacji do zbierania streszczeń użyto dodatkowych bibliotek, najważniejsze z nich to: Spring Jest to jedna z najbardziej znanych bibliotek szkieletowych (ang. framework) przyśpieszających tworzenie aplikacji internetowych. Spring jest rodzajem kleju, który ułatwia integrację wielu bibliotek Javowych w tworzonej aplikacji. Hibernate To narzędzie pozwalające w łatwy sposób stworzyć odwzorowanie między schematem relacyjnej bazy danych, a modelem obiektowym. Ponieważ sama Java jest językiem obiektowym, operowanie na obiektach jest o wiele łatwiejsze. Hibernate rozwiązuje również wiele standardowych problemów związanych z wykorzystaniem bazy danych np. obsługa puli połączeń, czy obsługa pamięci podręcznej wyników zapytań. Velocity biblioteka składa się z dwóch najważniejszych elementów: języka (ang. Velocity Template Language, VTL) oraz silnika obsługi szablonów stron HTML. HSQLDB prosta baza danych, przechowująca dane w plikach tekstowych. JQuery implementacja wszystkich skyptów w języku Javascript została oparta o bibliotekę JQuery. Jest to bardzo proste narzędzie ułatwiające realizację złożonych operacji na strukturze DOM strony HTML oraz elastyczną obsługę zdarzeń (np. kliknięcie w dany odsyłacz, załadowanie strony). 4.2 Tiller Tiller to moduł odpowiedzialny za wstępne przetwarzanie języka naturalnego, realizuje on wszystkie postulaty sformułowane w podrodziale 3.1. Głównym zadaniem projektu jest przygotowanie na podstawie tekstu wejściowego modelu, którym będą się mogły posługiwać pozostałe składowe systemu Architektura Moduł ten składa się z następujących pakietów: 1 Więcej informacji na temat omawianych tutaj narzędzi znajdzie Czytelnik w internecie, lista wszystkich odnośników została zebrana w sekcji

46 4.2. Tiller 41 org.grejpfrut.tiller.entities oraz jego podpakiet impl interfejsy i klasy zawarte w tych pakietach reprezentują wewnętrzną strukturę tekstu. Definiują również podstawowy zbiór operacji dostępnych dla poszczególnych jednostek strukturalnych tekstu (np. akapitów, zdań). org.grejpfrut.tiller.builders budowanie modelu określonego przez klasy z pakietów entities. Tutaj odbywa się właściwe przetwarzanie tekstu wejściowego oraz wydzielanie poszczególnych jednostek strukturalnych. org.grejpfrut.tiller.analysis klasy odpowiadające za analizę leksykalną, morfologiczną oraz rozpoznawanie wyrazów pospolitych. org.grejpfrut.tiller.utils.thesaurus tezaurus używany w programie OpenOffice zawiera sporo nadmiarowych danych. Aby zwiększyć jego użyteczność dla potrzeb projektu stworzony został parser, który przygotowuje wersje pozbawioną powtórzeń. Ponieważ tworzenie takiej reprezentacji zajmuję dłuższą chwilę, stworzono narzędzia umożliwiające zapis i odczyt z dysku tezaurusa w formacie już przetworzonym. org.grejpfrut.tiller.utils zawiera klasy pomocnicze. W głównym pakiecie org.grejpfrut.tiller znajdują się przykładowe programy wykorzystujące interfejs programistyczny zdefiniowany w tym module Model struktury tekstu Model struktury tekstu wykorzystywany przez Lakona zbudowany jest z czterech poziomów. Poziom artykułu obejmuje on cały tekst. Każdy artykuł posiada listę akapitów, z których się składa, może też posiadać tytuł (nie jest to wymagane). Poziom akapitu każdy akapit zbudowany jest z pewnej liczby zdań, ponadto może posiadać nagłówek. Poziom zdania składa się z pojedynczych wyrazów, znaków interpunkcyjnych oraz znaku końca zdania. Poziom wyrazu w stworzonym modelu wyraz posiada dwie formy: oryginalną (taką jak w tekście wejściowym), oraz możliwe formy podstawowe. Dla form podstawowych przechowywana jest również informacja o ich charakterystyce morfologicznej. Ponadto każdy wyraz może zostać oznaczony jako pospolity. Dla każdego z wymienionych poziomów strukturalnych został zdefiniowany pewien zbiór operacji. Obejmuję on odwołania do atrybutów dostępnych na danym poziomie (np. tytułu dla artykułu, czy form podstawowych na poziomie wyrazu). Dla jednostek powyżej poziomu zdania dostępne są również odwołania do własności jednostek podrzędnych np. dla akapitu

47 4.2. Tiller 42 RYSUNEK 4.2: Wszystkie operacje dostępne dla poszczególnych jednostek strukturalnych mamy możliwość pobrania wszystkich należących do niego wyrazów. Wszystkie dostępne operacje zostały przedstawione na diagramie (rysunek 4.2). Dodatkowego komentarza wymagają: gettext() zwraca oryginalny, nieprzetworzony tekst. getstemmedtext() zwraca ona tekst oczyszczony ze znaków interpunkcyjnych, gdzie zamiast oryginalnych wyrazów użyte zostały ich formy podstawowe (w przypadku gdy dany wyraz posiada kilka form, brana pod uwagę jest tylko pierwsza). getnumberofoccur(token token) zwraca liczbę wystąpień danego wyrazu w bieżącej jednostce tekstu. interfejs Token:

48 4.2. Tiller 43 enumeracja PartOfSpeech żaden z zaimplementowanych algorytmów nie wymagał dokładnego rozpoznawania cech morfologicznych wyrazu. W większości przypadków wystarczyła informacja o tym, czy dany wyraz jest rzeczownikiem. Rozpoznawane są więc tylko trzy kategorie wyrazów: rzeczowniki (ang. nouns), przymiotniki (ang. adjectives) i czasowniki (ang. verbs), pozostałym przyporządkowywana jest etykieta nieznany (ang. unknown). getinfo() oraz getfirstinfo() pierwsza zwraca informację o kategorii morfologicznej do jakiej należą formy podstawowe wyrazu. getbaseform() zwraca pierwszą formę podstawową wyrazu. getterm() interfejsu Token w Lucene odpowiednikiem interfejsu Token jest klasa org.apache.lucene.index.term. Metoda umożliwia konwersję do obiektu wykorzystywanego w Lucene. interfejs Article getdocument() zwraca ona instancję klasy org.apache.lucene.document-.document, która jest wykorzystywana przez bibliotekę Lucene do budowania indeksu dokumentów. Stworzony dokument składa się z trzech pól: * title gdzie znajduję się tytuł artykułu (jeżeli został zdefiniowany), * text oryginalny tekst, * stems wynik działania metody getstemmedtext() Przetwarzanie tekstu Proces rozpoznawanie struktury tekstu został omówiony szczegółowo w podrozdziale 3.1. Realizacją przedstawionych tam algorytmów zajmują się klasy z pakietu org.grejpfrut.tiller.builders. Na rysunku 4.3 przedstawiony został diagram klas, należących do omawianego pakietu. ArticleBuilder tworzy instancję klasy implementującej interfejs Article. ParagraphBuilder odpowiada za wyodrębnienie akapitów z tekstu wejściowego, jest to dokładna implementacja algorytmu opisanego w podrozdziale SentenceBuilder zadaniem tej klasy jest wykrycie w zadanym tekście granic zdań (por ). TokenBuilder tworzy instancję klasy Token, która reprezentuję pojedynczy wyraz. Klasa ta realizuję następujące czynności: wykrycie, czy dany wyraz jest wyrazem pospolitym, w przypadku, gdy dostępny jest odpowiedni analizator, odnalezienie formy podstawowej (bądź formy hasłowej),

49 4.2. Tiller 44 RYSUNEK 4.3: Diagram klas dla pakietu org.grejpfrut.tiller.builders. w przypadku, gdy dostępny jest analizator morfologiczny, przydzielenie odnalezionym formom podstawowym odpowiednich etykiet morfologicznych. Każda z powyższych klas może być używana samodzielnie np. dla zadanego tekstu pobierane są wyłącznie zdania, pomijamy tworzenie akapitów. Przetwarzaniem na poziomie pojedynczych wyrazów zajmują się klasy z pakietu org.grejpfrut.tiller.analysis (por. rysunek 4.4). StopWordsTokenizer klasa jest odpowiedzialna za: usunięcie wszystkich znaków interpunkcyjnych przyklejonych do wyrazu, ustalenie, czy dany wyraz znajduję się na liście wyrazów pospolitych. Tworzy ona instancję klasy implementującej interfejs Token, obiekt ten jako formę podstawową wyrazu przyjmuję oczyszczony z interpunkcji wyraz oryginalny. StempelatorTokenizer realizuję te same czynności co StopWordsTokenizer, potrafi jednak odnaleźć formę hasłową wyrazu, wykorzystuję do tego Stempelator. MorpheusTokenizer rozszerza funkcjonalność StopWordsTokenizer o wszystkie formy podstawowe wyrazu, wraz z ich charakterystyką morfologiczną (przy użyciu słownika morfologicznego zaimplementowanego w Morfeuszu). Wszystkie trzy omówione klasy implementują interfejs TillerTokenizer, który definiuję metodę: gettoken(string word) zwracającą instancję klasy implementującej interfejs Token.

50 4.2. Tiller 45 RYSUNEK 4.4: Hierarchia klas w pakiecie org.grejpfrut.tiller.analysis Tezaurus SynSet klasa implementująca ten interfejs reprezentuje zbiór znaczeniowy, posiada on następujące cechy: listę wyrazów o tym samym znaczeniu (synonimów), listę pojęć nadrzędnych (hipernimów), listę pojęć podrzędnych (hiponimów), identyfikator danego zbioru znaczeniowego. ThesaurusParser przetwarza plik tekstowy z tezaurusem w formacie programu OpenOffice, rozpoznaje elementy oznaczone jako pojęcie nadrzędne i pojęcie podrzędne. Przygotowuję również indeks, który umożliwia szybkie odnalezienie identyfikatora zbioru znaczeniowego, do którego należy szukany wyraz. ThesaurusFactory klasa odpowiedzialna za:

51 4.2. Tiller 46 stworzenie instancji klasy Thesaurus na podstawie wyników działania ThesaurusParser, serializację i deserializację instancji Thesaurus, pełni również funkcję pamięci podręcznej, ponieważ deserializacja danych z dysku zajmuję dłuższą chwilę, klasa ta zapamiętuję raz wczytany tezaurus i przy każdym kolejnym żądaniu zwraca tę samą instancję. Thesaurus klasa reprezentująca tezaurus, udostępnia ona dwie metody: getsynsets(string term) zwraca listę elementów typu SynSet, w których znajduję się szukany wyraz, getbyid(int id) zwraca obiekt reprezentujący zbiór znaczeniowy od danym identyfikatorze Konfiguracja W rozdziałach poświęconych automatycznej analizie języka naturalnego zostało zasygnalizowane, że niektóre etapy tego procesu mogą być w zależności od zastosowania pomijane. Takimi opcjonalnymi czynnościami są między innymi: analiza morfologiczna lematyzacja, rozpoznawanie struktury wewnętrznej tekstu, oznaczanie wyrazów pospolitych odróżnianie nagłówków od akapitów. To, które etapy mają być realizowane i w jakim zakresie określane jest w konfiguracji. Domyślne ustawienia zawarte są w pliku tiller-conf.xml (plik ten znajduję się w katalogu: lakon/tiller/src/main/resources). Każda z klas wykorzystywanych do przetwarzania tekstu (pakiety builders i analysis) przyjmuję w konstruktorze instancję TillerConfiguration. Udostępnia ona domyślną konfigurację, którą można zmodyfikować według potrzeb. Zostały zdefiniowane następujące parametry konfiguracyjne: tokenizer.class.name w zależności od potrzeb możemy wyspecyfikować która z klas pakietu analysis ma zostać użyta przy tworzeniu obiektów reprezentujących wyrazy, min.paragraph.length minimalna długość akapitu, jeżeli nie chcemy, aby Tiller rozpoznawał nagłówki akapitów, należy ustawić tu 0. path.to.thesaurus ścieżka do pliku tekstowego, w którym znajduję się tezaurus w formacie programu OpenOffice,

52 4.3. Summarizer 47 stop.words lista wyrazów pospolitych, abbr.list lista najczęściej występujących skrótowców. 4.3 Summarizer Drugą składową systemu jest Summarizer. W module tym znajdują się implementacje wszystkich omówionych dotychczas metod. Krótki opis zagadnień związanych z implementacją tych algorytmów znajdzie czytelnik w rozdziale Moduł ten zawiera również narzędzia służące do oceny jakości generowanych streszczeń Architektura W skład omawianego modułu wchodzą następujące pakiety: org.grejpfrut.lakon.summarizer.methods wraz podpakietami weights i lc zawierają implementacje metod automatycznego generowania streszczeń. org.grejpfrut.lakon.summarizer.settings to klasy odpowiedzialne za zarządzające parametrami konfiguracyjnymi poszczególnych metod. org.grejpfrut.lakon.summarizer.evaluation głównym zadaniem klas w tym pakiecie jest przeprowadzenie analizy wyników działania automatycznych metod w oparciu o wyniki eksperymentu ewaluacyjnego (por. rozdział 5). org.grejpfrut.lakon.summarizer.utils klasy pomocnicze. W głównym pakiecie org.grejpfrut.lakon.summarizer znajdują się przykładowe programy wykorzystujące interfejs programistyczny zdefiniowany w tym module Zaimplementowane metody Dla celów porównawczych zaimplementowane zostały również dwie dodatkowe metody: losowy wybór zdań, wybór pierwszych n zdań. Summarizer udostępnia w sumie sześć metod automatycznego generowania streszczeń. Wszystkie implementacje rozszerzają klasę SummarizerBase, która z kolei implementuje interfejs Summarizer, zależności te zostały zaprezentowane na rysunku 4.5 na następnej stronie. RandomSummarizer klasa ta w sposób losowy wybiera n zdań z przekazanego na wejściu tekstu. LocationBasedSummarizer działa ona w dwóch trybach: FIRST jako streszczenie zwracane jest pierwsze n zdań z tekstu,

53 4.3. Summarizer 48 RYSUNEK 4.5: Hierarchia klas w pakiecie org.grejpfrut.tiller.summarizer. FIRST_IN_PARAGRAPH streszczenie jest tworzone zgodnie z algorytmem omówionym w rozdziale WeightsBasedSummarizer jest to dokładna implementacja algorytmu omówionego w rozdziale dotyczącym metod opartych na technikach automatycznego wyboru najważniejszych wyrazów (por. rozdział 3.2.2). Obok parametrów takich jak długość streszczenia, czy rodzaj branych pod uwagę słów, należy określić jaki schemat obliczania wag ma być użyty. Dostępne są dwa (odpowiednie klasy znajdują się w pakiecie...summarizer.methods.weights): tf-idf (klasa TFIDFWeight), Okapi bm25 (klasa BM25Weight). LexicalChainsSummarizer obszerne omówienie zastosowanego tu algorytmu znajdzie czytelnik w rozdziale Omawiana metoda posiada następujące parametry konfiguracyjne: maksymalna liczba interpretacji, jakie części mowy są brane pod uwagę przy konstrukcji łańcuchów leksykalnych, czy przy tworzeniu streszczenia uwzględniać tylko wyrazy reprezentatywne Konfiguracja Za konfigurację poszczególnych metod odpowiedzialna jest klasa Settings wraz z podklasami. Głównym zadaniem klas konfigurujących jest wczytanie wartości domyślnych z plików i uzupełnienie ich wartościami użytkownika. Zdefiniowane są tutaj wszystkie enume-

54 4.3. Summarizer 49 racje określające dopuszczalne wartości parametrów oraz nazwy wszystkich kluczy które identyfikują wartości poszczególnych parametrów. Wartości domyślne znajdują się w pliku summarizer-conf.properties w (katalog summarizer/src/main/resource). Poniżej przedstawione zostały najważniejsze parametry konfiguracyjne. Metody wykorzystujące wagi tf-idf i bm25. ref.index.dir ścieżka do katalogu w którym znajduję się indeks stworzony na podstawie referencyjnej kolekcji dokumentów jest on używany: przy obliczaniu wartości wag, oraz wyszukiwaniu tekstów podobnych. ave.doc.length jest to średnia długość dokumentu znajdującego się w indeksie referencyjnym. Wartość ta jest oczywiście różna w zależności od tego, jaka kolekcja dokumentów została wykorzystana do stworzenia indeksu. Lakon dostarcza narzędzi umożliwiających obliczenie średniej długości dokumentu w zadanym indeksie, ich działanie zostanie omówione w następnym podrozdziale. min.tfidf i min.bm25 minimalna wartości dla wag tf-idf i bm25. Słowa o charakteryzujące się niższą wartością wagi nie będą uwzględniane przy: obliczaniu istotności zdań, wyszukiwaniu dokumentów podobnych. weight.type jaka waga zostanie użyta aby obliczać siłę poszczególnych zdań, możliwe wartości to: TFIDF, BM_25. signature.words.type jakiego typu słowa są brane pod uwagę przy tworzeniu zbioru słów znaczących możliwe wartości to: ALL wszystkie słowa, NOUNS tylko rzeczowniki. no.of.keywords ile słów ma być wziętych pod uwagę przy tworzeniu zbioru słów znaczących (por. rozdział 3.2.2). Jeżeli przy tworzeniu mają być wykorzystane wszystkie słowa, których waga przekroczyła wartość progową, należy przypisać temu parametrowi wartość -1. Sumaryzacja z wykorzystaniem łańcuchów leksykalnych. only.nouns czy przy tworzeniu łańcuchów leksykalnych mają być brane pod uwagę tylko rzeczowniki (wartość true) czy wszystkie wyrazy (wartość false). max.interpretation maksymalna liczba interpretacji, które są rozpatrywane w trakcie tworzenia łańcuchów. representative.mode do tworzenia streszczenia wykorzystywane są tylko wyrazy reprezentatywne.

55 4.4. GUI GUI Głównym zadaniem tego modułu jest: prezentacja wyników działania zaimplementowanych algorytmów, eksperymenty z wartościami parametrów konfiguracyjnych, Poniżej zostanie krótko opisana aplikacja okienkowa realizująca wymienione powyżej cele. Została ona stworzona z wykorzystaniem biblioteki Swing, która jest częścią biblioteki klas dostarczanych z językiem Java. Poza nią wykorzystane zostały: fragmenty kodu źródłowego projektu C ar r ot 2 ( biblioteki JGoodies Forms oraz JGoodies Looks ( Funkcjonalność Funkcjonalność aplikacji możemy podzielić na dwie części: 1. demonstracje działania algorytmów: a) wykrywanie struktury wewnętrznej tekstu, b) informacje o strukturze wewnętrznej tekstu długość tekstu, liczba zdań i akapitów, c) demonstracja działania tezaurusa, d) wyszukiwanie dokumentów podobnych, e) konstrukcja łańcuchów leksykalnych, f) automatyczna sumaryzacja tekstu: losowy wybór zdań, wybór pierwszych n zdań, metoda wykorzystująca informacje o położeniu zdania w tekście, metoda wykorzystująca schematy wag tf-idf oraz bm25, w oparciu o łańcuchy leksykalne. 2. czynności dodatkowe: a) tworzenie lakonicznej reprezentacji tezaurusa w oparciu o plik tekstowy w formacie programu OpenOffice, b) obliczanie średniej długości dokumentu w indeksie zbudowanym na podstawie referencyjnej kolekcji dokumentów,

56 4.4. GUI 51 RYSUNEK 4.6: Główne okno aplikacji oraz najważniejsze jego elementy. Główne okno aplikacji Rysunek 4.6 przedstawia najważniejsze elementy głównego okna aplikacji. 1. Główne okno aplikacji. 2. Przycisk powodujący ukrycie panelu z parametrami konfiguracyjnymi (na rysunku panel oznaczony został numerem 6). 3. Pierwszy przycisk (ikonka rakiety) uruchamia aktualnie wybraną metodę, natomiast drugi otwiera okienko dialogowe z wyborem pliku, na którym będziemy operować. Plik musi być prostym plikiem tekstowym kodowanym zgodnie z UTF Znajduje się tu lista dostępnych metod (demonstracji). 5. Obszar w którym możemy wpisywać tekst ręcznie lub wczytać plik za pomocą opisanego powyżej przycisku. 6. Panel z ustawieniami dostępny jest dla większości zaimplementowanych metod. Każda zmiana wartości zostanie natychmiast uwzględniona w części prezentującej wyniki. 7. Ta część prezentuje wyniki działania poszczególnych metod. W przypadku algorytmów generujących streszczenia wyniki mogą być wyświetlane w dwóch trybach: wy-

57 4.4. GUI 52 brane zdania są wyróżnione w tekście oryginalnym lub prezentowane jest tylko samo streszczenie. RYSUNEK 4.7: Wyniki działania niektórych z zaimplementowanych algorytmów. Rysunek 4.7 przedstawia przykładowe wyniki działania niektórych algorytmów. 1. Tiller demo pierwszy poziom wypunktowania to akapity, drugi to należące do nich zdania. W przypadku akapitów poprzedzonych nagłówkiem jest on wypisany przy numerze akapitu. 2. Text info prezentuje podstawowe statystyki dotyczące analizowanego tekstu. 3. Lexical chains builder demonstruje wyniki działania zastosowanego w programie algorytmu budowy łańcuchów leksykalnych. Każdy łańcuch jest opisany za pomocą: elementów (wyrazów), które go tworzą, siły łańcucha (score), listy elementów, które uznane zostały za reprezentatywne. Każdy z elementów łańcucha opisany jest za pomocą dwóch wartości tego ile razy wyraz wystąpił w tekście oraz identyfikatora zbioru znaczeniowego, który został danemu elementowi przypisany.

58 4.4. GUI 53 Narzędzia dodatkowe Część z utworzonych narzędzi została udostępniona z poziomu głównego menu. Na rysunku 4.8 na następnej stronie pokazane zostało okienko dialogowe (na rysunku oznaczone jako 1 ) służące do konwersji tezaurusa z formatu programu OpenOffice do reprezentacji używanej w projekcie. Numer 2 to okienko dialogowe pozwalające na wyszukiwanie synonimów podanego wyrazu. Szukane słowo wpisujemy w pole tekstowe u góry okienka, a w głównej jego części zostaną wyświetlone wszystkie zbiory znaczeniowe, w których dany wyraz występuje. Wyświetlany jest cały zbiór znaczeniowy: identyfikator, należące do niego synonimy, hiponimy i hipernimy. Wybranie opcji oznaczonej na rysunku numerem 3 spowoduje wyświetlenie okienka dialogowego. Należy wskazać ścieżkę pod którą znajduję się indeks dla którego ma zostać policzona średnia długość dokumentu. Ostatnią z dostępnych opcji jest uruchomienie aplikacji wyszukującej dokumenty podobne. Widok głównego okna tej aplikacji został przedstawiony na rysunku 4.9 na następnej stronie. 1. W pasku narzędziowym ( 1 na rysunku) dostępne są następujące opcje (od lewej): uruchomienie wyszukiwania, wczytanie zawartości prostego pliku tekstowego (kodowanie UTF-8), nowa zakładka w polu edycji tekstu, ukrycie panelu konfiguracyjnego. 2. W polu edycyjnym ( 2 ) może znajdować się wiele otwartych plików, każda z zakładek może być w każdej chwili zamknięta. 3. Na podstawie tekstu umieszczonego w aktywnej zakładce tworzony jest ranking ( 3 ) najbardziej wartościowych słów (w oparciu o schemat tf-idf). 4. Lista ( 4 ) zawiera tytuły artykułów, które zostały uznane za najbardziej podobne do tekstu znajdującego się w aktywnej zakładce edycyjnej. 5. Panel konfiguracyjny ( 5 ) działa analogicznie jak w przypadku aplikacji demonstrującej działanie algorytmów automatycznej generacji streszczeń Konfiguracja Cała konfiguracja znajduję się w pliku gui-conf.xml, aby uruchomić aplikację konieczne jest podanie trzech parametrów: ref.index.dir ścieżka do indeksu zawierające dane o referencyjnym zbiorze dokumentów. path.to.thesaurus ścieżka do katalogu w którym znajduję się tezaurus w wewnętrznej reprezentacji.

59 4.4. GUI 54 RYSUNEK 4.8: Dodatkowe czynności oferowane z poziomu GUI. RYSUNEK 4.9: Główne okno aplikacji służącej do wyszukiwania dokumentów podobnych.

60 4.5. Dodatkowe elementy stworzonego systemu 55 preload.thesauri ponieważ wczytywanie pliku tezaurusa z dysku, zajmuje dłuższą chwilę. Istnieje możliwość skonfigurowania aplikacji tak, aby na starcie zawczasu wczytywały plik z tezaurusa do późniejszego wykorzystania. 4.5 Dodatkowe elementy stworzonego systemu Oprócz głównych składowych projektu wykorzystywanych bezpośrednio do tworzenia streszczeń powstały również inne moduły Budowanie indeksu Wikipedia udostępnia kopie zapasowe zawierające wszystkie artykuły oraz materiały dodatkowe 2. Kopie te dostępne są w dwóch formatach: statycznych stron HTML, pliku XML. Dane te są dostępne dla wszystkich wersji językowych Wikipedii. Do stworzenia referencyjnej kolekcji dokumentów wykorzystana została kopia polskiej wikipedii w formacie XML. Kopia zapasowa w tym formacie składa się z kilku plików, zawierających między innymi informacje o historii modyfikacji stron, grupach użytkowników, tytułach artykułów i ich treści. Plik zawierający kopie artykułów (pages-articles.xml.bz2) w wersji spakowanej zajmuje około 260MB, po rozpakowaniu jest kilkakrotnie większy. Stworzone narzędzie przetwarza opisany powyżej plik i na podstawie uzyskanych w ten sposób informacji buduje indeks odwrotny umożliwiający wyszukiwanie (tutaj również wykorzystana została biblioteka Lucene). Do redakcji Wikipedii wykorzystywany jest specjalny zbiór znaczników (ang. Wiki markup) 3. Ponieważ tworzony indeks jest wykorzystywany głównie jako źródło pewnych statystycznych informacji związanych z występowaniem różnych wyrazów (obliczanie wag tf-idf oraz bm25), informacja o znacznikach występujących w tekście jest zbędna. Najbardziej interesujące z naszego punktu widzenia są strony zawierające artykuły z opisem poszczególnych haseł, oprócz nich Wikipedia zawiera wiele informacji technicznych, takich jak odnośniki do grafik, szablony stron, czasem również fragmenty kodu w języku PHP. Strony zawierające takie informacje nie są uwzględniane w procesie budowania indeksu. Po usunięciu stron specjalnych w utworzonym indeksie znalazło się ponad 300 tysięcy artykułów. Stworzony na tej podstawie indeks odwrotny zajmuję 305MB. Program potrafi utworzyć indeks na bazie dowolnego pliku XML, którego struktura zgodna jest z przedstawioną poniżej: 2 Więcej informacji dostępnych jest na stronie 3 Dokładny ich opis znajdzie czytelnik pod adresem: edit_a_page

61 4.5. Dodatkowe elementy stworzonego systemu <page> <title>...</title> <text>...</text> </page>... Konfiguracja i uruchamianie Każde z omówionych zagadnień zostało sparametryzowane, konfiguracji podlegają następujące elementy: usuwanie znaczników specjalnych (Wiki markup), tytuły stron specjalnych, które są pomijane przy tworzeniu indeksu, wykorzystywana stop lista, lista zawierające znaki (lub łańcuchy znaków) które są pomijane. Domyślna konfiguracja zakłada również, że w indeksie umieszczane będą formy podstawowe wyrazów; użyty w tym celu może zostać Morfeusz lub Stempelator. Na dołączonej płycie znajduję się gotowa do użycia wersja dystrybucyjna, samo narzędzie służące do budowania indeksu można uruchomić z linii poleceń: java -jar wiki-1.0.jar -p -dd... -cp.. -o... Po przełączniku dd podajemy ścieżkę do pliku zawierającego XML zgodny z opisaną wcześniej (por. strona 56) strukturą. cp ścieżka do pliku zawierającego dodatkową konfigurację (ten przełącznik jest opcjonalny), so ścieżka gdzie ma zostać zapisany wynikowy działania programu Aplikacja do zbierania streszczeń Na potrzeby eksperymentu (którego dokładny opis znajdzie czytelnik w następnym rozdziale) stworzona została aplikacja internetowa. Aby korzystać z większości zasobów konieczne jest posiadanie konta użytkownika, można je uzyskać wypełniając prosty formularz rejestracyjny. Zostały zdefiniowane trzy poziomy uprawnień: 1. użytkownik nie zalogowany strona główna, strona z informacjami o projekcie, 2. zwykły użytkownik dodatkowo możliwość tworzenia streszczeń,

62 4.5. Dodatkowe elementy stworzonego systemu 57 RYSUNEK 4.10: Główna strona modułu do zbierania streszczeń. RYSUNEK 4.11: Tworzenie nowego streszczenia. 3. administrator dostęp do panelu administracyjnego. Gdy po zalogowaniu użytkownik przejdzie do działu Ocena jakości (patrz rysunek 4.11), zostanie mu zaprezentowany tekst dla którego dany użytkownik nie stworzył jeszcze streszczenia. Jeżeli istnieje kilka takich tekstów wybierany jest ten, dla którego stworzono najmniej streszczeń. Zadanie użytkownika polega na zapoznaniu się z jego treścią i wyborze najważniejszych zdań. Aby dane zdanie trafiło do streszczenia wystarczy umieścić nad nim kursor

63 4.5. Dodatkowe elementy stworzonego systemu 58 myszki i kliknąć (zaznaczone zdania są widoczne na rysunku 4.11 jako tekst z szarym tłem). Ponowne kliknięcie powoduję odznaczenie zdania. Opcja Podgląd powoduje wyświetlenie tylko tych zdań, które zostały już wybrane do streszczenia. Gdy użytkownik wybierze już odpowiednią liczbę zdań może zatwierdzić swoje streszczenie. Sposób w jaki określana jest liczba zdań wchodzących do streszczenia (dla danego tekstu) zostanie dokładnie objaśniony w kolejnym rozdziale. RYSUNEK 4.12: Opcje dostępne z poziomu panelu administracyjnego. Użytkownicy z uprawnieniami administratorów mają również dostęp do panelu administracyjnego (rysunek 4.12). Na głównej stronie nie ma bezpośredniego odnośnika do tej części aplikacji; aby przejść do niej należy wpisać w przeglądarce adres bezpośredni np.../evaluations.html,../users.html. Panel oferuje następującą funkcjonalność: przeglądanie listy wszystkich stworzonych streszczeń, eksport stworzonych streszczeń w formacie XML, lista zarejestrowanych użytkowników, dodawanie, usuwanie i modyfikacja danych użytkowników, lista artykułów znajdujących się w systemie, dodawanie, usuwanie i modyfikacja artykułów.

64 Rozdział 5 Ocena eksperymentalna Aby ocenić jakość otrzymywanych wyników przeprowadzony został eksperyment. W czasie jego trwania zadaniem grupy ochotników było tworzenie streszczeń artykułów prasowych. Dzięki zbudowanemu w ten sposób korpusowi możliwe było określenie jak skuteczne są zaimplementowane metody automatycznej selekcji zdań. 5.1 Opis eksperymentu Głównym celem przeprowadzonego eksperymentu było skompilowanie referencyjnego zbioru streszczeń. Wszystkie zaimplementowane metody rozwiązują problem tworzenia automatycznych streszczeń poprzez wybór pewnej liczby zdań. Uznano za zasadne postawić przed podobnym problemem ochotników biorących udział w eksperymencie Przyjęte założenia [KPC95] do oceny jakości wykorzystali tworzone przez ekspertów streszczenia literackie. Rozwiązanie to zostało odrzucone z następujących powodów: 1. Proste porównywanie zarówno streszczenia automatyczne jak i te stworzone w ramach eksperymentu składają się z tych samych zdań. Łatwo jest więc porównać wyniki otrzymane z obu źródeł. W rozwiązaniu opisanym przez [KPC95] określone zostały różne rodzaje dopasowań częściowych. Zaproponowanie dokładnego algorytmu obliczania takich dopasowań może się okazać dość trudne. Wystarczy bowiem wyobrazić sobie sytuację, gdy do reprezentacji tego samego pojęcia użyty zostanie inny wyraz. 2. Minimalny koszt stworzenia streszczenia tworzenie streszczeń literackich na pewno wymagałoby od ochotników większego zaangażowania niż w przypadku prostego wyboru zdań. Ponadto założono, że większość uczestników eksperymentu nie będzie posiadała profesjonalnego przygotowania w zakresie przygotowywania streszczeń. Aby zapewnić reprezentatywność zebranych danych istotne było również uzyskanie odpowiednio dużej liczby streszczeń dla każdego z artykułów. Dzięki skróceniu czasu 59

65 5.1. Opis eksperymentu 60 koniecznego do utworzenia streszczenia szansa na uzyskanie odpowiedniej ich liczby znacznie wzrosła. Aby w jak największym stopniu ułatwić zadanie uczestnikom do realizacji eksperymentu użyto aplikacji internetowej (dokładniejszy jej opis znajduję się w rozdziale 4.5.2). Dla celów eksperymentu pozyskano 10 artykułów prasowych o zróżnicowanej długości i charakterze. Zostały one zaczerpnięte z korpusu Rzeczpospolitej [Rze] (3 artykuły) oraz z zebranego na potrzeby tej pracy zbioru tekstów z Gazety Wyborczej (7 artykułów). W użytym do oceny zbiorze tekstów znalazły się zarówno teksty krótkie (typowe newsy ) oraz dłuższe artykuły o bardziej rozbudowanej strukturze. Dołożono również wszelkich starań, aby tematyka wybranych artykułów była możliwie zróżnicowana. Podstawowe statystyki liczbowe dla użytych artykułów przedstawiono w tabeli 5.1, a ich tytuły i pochodzenie w tabeli 5.2. Wszystkie użyte artykuły znajdują się na płycie dołączonej do pracy. TABLICA 5.1: Informacje dotyczące artykułów wykorzystanych w eksperymencie. numer liczba słów liczba zdań śr. długość zdania TABLICA 5.2: Tytuły artykułów użytych w eksperymencie. numer źródło tytuł 1 Rz Dobre regulacje, mało spółek 2 Rz Dziecko i potwór 3 Rz Zjazd S rolników indywidualnych w Zgierzu 4 GW Rząd Ukrainy bez Pomarańczowych 5 GW Ségolene Royal kandydatem socjalistów w wyborach prezydenckich 6 GW Były dyktator Urugwaju Juan Maria Bordaberry poszedł za kraty 7 GW Albo młodość, albo rak 8 GW Włoska telewizja wykryła narkotyki u deputowanych 9 GW Zapomniany ojciec kina 10 GW Internauci budują samochód zgodnie z filozofią open-source Dla każdego artykułu zostało określone z ilu zdań musi składać się jego streszczenie. Według [KPC95], streszczenie składające się z zaledwie 20% oryginalnego tekstu może zawierać tyle samo informacji co jego pierwotna wersja. Przyjęte zostało więc, że długość streszczenia odpowiada liczbie zdań zawartych w około 20% oryginalnego tekstu (por. tabela 5.3).

66 5.1. Opis eksperymentu 61 TABLICA 5.3: Wyznaczone długości streszczeń dla poszczególnych artykułów. numer liczba zdań długość streszczenia Przebieg eksperymentu Eksperyment trwał około miesiąca od do Aktywny udział wzięło 60 ochotników, stworzyli oni w sumie 285 streszczeń. Poszczególne artykuły posiadają od 27 do 30 streszczeń (por. Tablica 5.4). TABLICA 5.4: Informacje dotyczące liczby zebranych streszczeń. numer zebrano streszczeń W eksperymencie wzięli udział głównie studenci oraz absolwenci studiów magisterskich. Osoby te w większości są (lub były) związane z uczelniami poznańskimi. Uczestników eksperymentu można podzielić na cztery grupy (względem reprezentowanych specjalności): nauki ścisłe: informatyka, ekonomia, nauki przyrodniczo-medyczne: fizjoterapia, farmacja, psychologia, nauki humanistyczne: prawo, filologia polska, kulturoznawstwo, socjologia, filozofia, filologia angielska, sinologia, filologia klasyczna, bibliotekoznawstwo, inne w przypadku gdy nie udało się zdobyć informacji o uczestnikach. W tabeli 5.5 przedstawiono udział poszczególnych specjalności wśród uczestników. Tak duża różnorodność wśród uczestników eksperymentu powinna pozwolić na wyciągniecie obiektywnych, ogólnych wniosków. TABLICA 5.5: Udział specjalności zawodowych wśród biorących udział w eksperymencie. ścisłe medyczne humanistyczne inne liczba uczestników W tabeli 5.6 przedstawiono rozkład liczby streszczeń stworzonych przez pojedynczego uczestnika eksperymentu. Nie jest zaskoczeniem, że uczestnicy przeważnie poprzestawali na 1 do 3 streszczeń. Ciekawe jest jednak, że liczba osób które stworzyły streszczenia dla wszystkich 10 tekstów jest tak duża w porównaniu z przedziałem 7 9.

67 5.1. Opis eksperymentu 62 TABLICA 5.6: Informacje dotyczące liczby zebranych streszczeń. liczba streszczeń liczba użytkowników Zebrane dane W pracy [GJRR61] pokazano, że między czterema ekspertami dokonującymi wyboru zdań część wspólna to zaledwie 25%. Zaobserwowano również, że dwa automatyczne streszczenia stworzone przez tą samą osobę w pewnym odstępie czasowym pokrywają się zaledwie w 50%. Aby sprawdzić, jak bardzo różniły się streszczenia stworzone przez uczestników eksperymentu dla każdej pary streszczeń dotyczących tego samego artykułu obliczono ich część wspólną. Otrzymane wartości uśredniono, wyniki opisanej analizy zostały zestawione w tabeli 5.7. Wszystkie wartości zostały wyrażone jako liczba zdań, aby móc porównywać ze sobą wyniki otrzymane dla artykułów o różnej długości. Otrzymane wartości zostały znormalizowane względem długości streszczenia (w tabeli przedstawione jako wartości procentowe). TABLICA 5.7: Różnice między streszczeniami stworzonymi przez uczestników eksperymentu. Przez L oznaczono długość streszczenia. część wspólna id L średnia % średnia % 1 5 1,97 39% 0,99 20% 2 4 2,19 55% 0,85 21% 3 4 1,85 46% 0,77 19% 4 5 2,81 56% 0,92 18% ,08 41% 1,34 13% 6 7 3,79 54% 1,35 19% ,05 37% 1,48 13% 8 3 1,64 55% 0,65 22% ,91 45% 1,31 12% ,88 49% 1,4 12% σ Większość uczestników eksperymentu była zgodna co do tego, że postawione przed nimi zadanie selekcji zdań było trudniejsze dla artykułów dłuższych. Wynika z tego, że dla tekstów dłuższych streszczenia stworzone przez uczestników eksperymentu powinny się wyraźnie różnic. Opinia ta wydaje się być uzasadniona, ponieważ prawdopodobieństwo tego, że dwa streszczenia o tej samej długości będą identyczne spada wraz ze wzrostem długości oryginalnego artykułu. Zebrane dane wydają się potwierdzać tę obserwację. Rzeczywiście

68 5.1. Opis eksperymentu 63 dla tekstów dłuższych (5, 7, 9, 10) część wspólna jest mniejsza, niż w przypadku pozostałych tekstów. Niskie wartości odchylenia standardowego (σ) dla tych artykułów potwierdzają tylko tę tendencję. Wykresy przedstawione na rysunku 5.1 przedstawiają zależność między tym, ile razy dane zdanie zostało wybrane, a jego pozycją w tekście. Na rysunku granice akapitów zostały oznaczone za pomocą zmiany koloru tła. W tabeli 5.8 zestawiono informacje o pozycji (w akapicie) najczęściej wybieranych zdań. Pod uwagę wzięto n najczęściej wybieranych zdań, gdzie n odpowiada długości streszczenia dla danego artykułu. Długość artykułu oraz długość streszczenia wyrażona została jako liczba zdań. W przypadku kolumn początek i koniec brane pod uwagę były pierwsze i ostatnie zdania w akapitach. Czcionką pogrubioną oznaczono artykuły, które zawierają akapity o długości jednego zdania. TABLICA 5.8: Pozycja zdań (wewnątrz akapitu) najczęściej wybieranych przez uczestników eksperymentu. numer dł. artykułu dł. streszczenia początek koniec środek Z badań przeprowadzonych dla języka angielskiego [PBY02, BMR95] wynika, że w przypadku artykułów prasowych najlepiej sprawdza się metoda polegająca na wyborze pierwszych n zdań. Streszczenia tworzone w ramach wspomnianych badań były bardzo krótkie (od jednego do czterech zdań). Brakuje niestety informacji o długości artykułów dla których te analizy zostały przeprowadzone. Zebrane dane potwierdzają opisane powyżej spostrzeżenia, rzeczywiście zdania znajdujące się na początku artykułów charakteryzują się bardzo wysoką liczbą wyborów. Zarówno tabela, jak i wykresy wyraźnie pokazują także inną tendencje; wśród najczęściej wybieranych zdań zdecydowana większość to zdania znajdujące się na początku akapitów. Głównym celem uczestników eksperymentu był wybór zdań, które w ich opinii zawierają najważniejsze informacje. Z obserwacji części uczestników wynika, że byli oni gotowi odrzucić zdania zawierające ważne informacje, aby zwiększyć czytelność otrzymanego streszczenia. Spadek czytelności jest bezpośrednio związany z występowaniem związków anaforycznych (np. podmiot domyślny w zdaniach : Spotkał się on... ). Zdania znajdujące się na początku akapitu są w dużej mierze wolne od tego typu zjawisk językowych.

69 5.1. Opis eksperymentu 64 RYSUNEK 5.1: Zależność między pozycją zdania w tekście, a częstością z jaką było ono wybierane.

Lingwistyczny system definicyjny wykorzystujący korpusy tekstów oraz zasoby internetowe.

Lingwistyczny system definicyjny wykorzystujący korpusy tekstów oraz zasoby internetowe. Lingwistyczny system definicyjny wykorzystujący korpusy tekstów oraz zasoby internetowe. Autor: Mariusz Sasko Promotor: dr Adrian Horzyk Plan prezentacji 1. Wstęp 2. Cele pracy 3. Rozwiązanie 3.1. Robot

Bardziej szczegółowo

Wydział Elektrotechniki, Informatyki i Telekomunikacji. Instytut Informatyki i Elektroniki. Instrukcja do zajęć laboratoryjnych

Wydział Elektrotechniki, Informatyki i Telekomunikacji. Instytut Informatyki i Elektroniki. Instrukcja do zajęć laboratoryjnych Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych wersja: 1.0 Nr ćwiczenia: 12, 13 Temat: Cel ćwiczenia: Wymagane przygotowanie

Bardziej szczegółowo

Text mining w programie RapidMiner Michał Bereta www.michalbereta.pl

Text mining w programie RapidMiner Michał Bereta www.michalbereta.pl Text mining w programie RapidMiner Michał Bereta www.michalbereta.pl 1. Wstęp Aby skorzystać z możliwości RapidMinera w zakresie analizy tekstu, należy zainstalować Text Mining Extension. Wybierz: 1 Po

Bardziej szczegółowo

Semantyczne podobieństwo stron internetowych

Semantyczne podobieństwo stron internetowych Uniwersytet Mikołaja Kopernika Wydział Matematyki i Informatyki Marcin Lamparski Nr albumu: 184198 Praca magisterska na kierunku Informatyka Semantyczne podobieństwo stron internetowych Praca wykonana

Bardziej szczegółowo

Elementy modelowania matematycznego

Elementy modelowania matematycznego Elementy modelowania matematycznego Modelowanie algorytmów klasyfikujących. Podejście probabilistyczne. Naiwny klasyfikator bayesowski. Modelowanie danych metodą najbliższych sąsiadów. Jakub Wróblewski

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Lokalizacja Oprogramowania

Lokalizacja Oprogramowania mgr inż. Anton Smoliński anton.smolinski@zut.edu.pl Lokalizacja Oprogramowania 16/12/2016 Wykład 6 Internacjonalizacja, Testowanie, Tłumaczenie Maszynowe Agenda Internacjonalizacja Testowanie lokalizacji

Bardziej szczegółowo

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa Autorzy scenariusza: SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

AUTOMATYKA INFORMATYKA

AUTOMATYKA INFORMATYKA AUTOMATYKA INFORMATYKA Technologie Informacyjne Sieć Semantyczna Przetwarzanie Języka Naturalnego Internet Edytor Serii: Zdzisław Kowalczuk Inteligentne wydobywanie informacji z internetowych serwisów

Bardziej szczegółowo

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych autor: Robert Drab opiekun naukowy: dr inż. Paweł Rotter 1. Wstęp Zagadnienie generowania trójwymiarowego

Bardziej szczegółowo

Co wylicza Jasnopis? Bartosz Broda

Co wylicza Jasnopis? Bartosz Broda Co wylicza Jasnopis? Bartosz Broda Analiza języka polskiego Ekstrakcja tekstu Dokument narzędzie do mierzenia zrozumiałości Analiza morfologiczna Analiza morfosyntaktyczna Indeksy Klasa trudności:

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Forma. Główny cel kursu. Umiejętności nabywane przez studentów. Wymagania wstępne:

Forma. Główny cel kursu. Umiejętności nabywane przez studentów. Wymagania wstępne: WYDOBYWANIE I WYSZUKIWANIE INFORMACJI Z INTERNETU Forma wykład: 30 godzin laboratorium: 30 godzin Główny cel kursu W ramach kursu studenci poznają podstawy stosowanych powszechnie metod wyszukiwania informacji

Bardziej szczegółowo

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa). Algorytmy definicja, cechy, złożoność. Algorytmy napotykamy wszędzie, gdziekolwiek się zwrócimy. Rządzą one wieloma codziennymi czynnościami, jak np. wymiana przedziurawionej dętki, montowanie szafy z

Bardziej szczegółowo

PRÓBNY EGZAMIN GIMNAZJALNY Z NOWĄ ERĄ 2016/2017 JĘZYK POLSKI

PRÓBNY EGZAMIN GIMNAZJALNY Z NOWĄ ERĄ 2016/2017 JĘZYK POLSKI PRÓBNY EGZAMIN GIMNAZJALNY Z NOWĄ ERĄ 2016/2017 JĘZYK POLSKI ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ Copyright by Nowa Era Sp. z o.o. Zadanie 1. (0 1) 2) wyszukuje w wypowiedzi potrzebne informacje [ ]. PP Zadanie

Bardziej szczegółowo

Wyszukiwanie informacji w internecie. Nguyen Hung Son

Wyszukiwanie informacji w internecie. Nguyen Hung Son Wyszukiwanie informacji w internecie Nguyen Hung Son Jak znaleźć informację w internecie? Wyszukiwarki internetowe: Potężne machiny wykorzystujące najnowsze metody z różnych dziedzin Architektura: trzy

Bardziej szczegółowo

Multimedialne bazy danych. Andrzej Łachwa, WFAiIS UJ 2011

Multimedialne bazy danych. Andrzej Łachwa, WFAiIS UJ 2011 2 Multimedialne bazy danych Andrzej Łachwa, WFAiIS UJ 2011 Bazy tekstów języka naturalnego Wiele systemów wyszukiwania informacji w tekstach nie działa na oryginalnym materiale tekstowym, ale na opisach

Bardziej szczegółowo

Zapisywanie algorytmów w języku programowania

Zapisywanie algorytmów w języku programowania Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym

Bardziej szczegółowo

Po wstawieniu tabeli (i zawsze wtedy, gdy w tabeli jest kursor) pojawia się na wstążce nowa grupa zakładek o nazwie Narzędzia tabel.

Po wstawieniu tabeli (i zawsze wtedy, gdy w tabeli jest kursor) pojawia się na wstążce nowa grupa zakładek o nazwie Narzędzia tabel. Tabelę można szybko wstawić do dokumentu, korzystając z przycisku Tabela w zakładce Wstawianie na wstążce. Komputer umożliwia zakreślenie myszką, ile wierszy i kolumn ma mieć tabela. Można też skorzystać

Bardziej szczegółowo

Ekstrakcja informacji oraz stylometria na usługach psychologii Część 2

Ekstrakcja informacji oraz stylometria na usługach psychologii Część 2 Ekstrakcja informacji oraz stylometria na usługach psychologii Część 2 ws.clarin-pl.eu/websty.shtml Tomasz Walkowiak, Maciej Piasecki Politechnika Wrocławska Grupa Naukowa G4.19 Katedra Inteligencji Obliczeniowej

Bardziej szczegółowo

Systemy organizacji wiedzy i ich rola w integracji zasobów europejskich bibliotek cyfrowych

Systemy organizacji wiedzy i ich rola w integracji zasobów europejskich bibliotek cyfrowych Systemy organizacji wiedzy i ich rola w integracji zasobów europejskich bibliotek cyfrowych Adam Dudczak Poznańskie Centrum Superkomputerowo-Sieciowe (maneo@man.poznan.pl) I Konferencja Polskie Biblioteki

Bardziej szczegółowo

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2017/2018

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2017/2018 EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2017/2018 CZĘŚĆ 1. JĘZYK POLSKI ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ ARKUSZ GH-P2 KWIECIEŃ 2018 Zadanie 1. (0 1) 9) wyciąga wnioski wynikające z przesłanek

Bardziej szczegółowo

Programowanie i techniki algorytmiczne

Programowanie i techniki algorytmiczne Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.

Bardziej szczegółowo

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2018/2019

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2018/2019 EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2018/2019 CZĘŚĆ 1. JĘZYK POLSKI ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ ARKUSZ GH-P7 KWIECIEŃ 2019 Zadanie 1. (0 1) PF Zadanie 2. (0 1) II. Analiza i interpretacja

Bardziej szczegółowo

SPIS TREŚCI. Do Czytelnika... 7

SPIS TREŚCI. Do Czytelnika... 7 SPIS TREŚCI Do Czytelnika.................................................. 7 Rozdział I. Wprowadzenie do analizy statystycznej.............. 11 1.1. Informacje ogólne..........................................

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

Bardziej szczegółowo

Web frameworks do budowy aplikacji zgodnych z J2EE

Web frameworks do budowy aplikacji zgodnych z J2EE Web frameworks do budowy aplikacji zgodnych z J2EE Jacek Panachida promotor: dr Dariusz Król Przypomnienie Celem pracy jest porównanie wybranych szkieletów programistycznych o otwartym kodzie źródłowym

Bardziej szczegółowo

Wyszukiwanie binarne

Wyszukiwanie binarne Wyszukiwanie binarne Wyszukiwanie binarne to technika pozwalająca na przeszukanie jakiegoś posortowanego zbioru danych w czasie logarytmicznie zależnym od jego wielkości (co to dokładnie znaczy dowiecie

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Wymagania edukacyjne z języka angielskiego dla klasy czwartej

Wymagania edukacyjne z języka angielskiego dla klasy czwartej Szkoła Podstawowa z Oddziałami Integracyjnymi nr 162 im. Władysława Szafera Rok szkolny 2018/ 2019 Wymagania edukacyjne z języka angielskiego dla klasy czwartej (podręcznik: Brainy ) 1 Wymagania edukacyjne

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie

Bardziej szczegółowo

PRÓBNY EGZAMIN GIMNAZJALNY Z NOWĄ ERĄ 2015/2016 JĘZYK POLSKI

PRÓBNY EGZAMIN GIMNAZJALNY Z NOWĄ ERĄ 2015/2016 JĘZYK POLSKI PRÓBNY EGZAMIN GIMNAZJALNY Z NOWĄ ERĄ 2015/2016 JĘZYK POLSKI ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ Copyright by Nowa Era Sp. z o.o. Zadanie 1. (0 1) Wymagania szczegółowe 2) wyszukuje w wypowiedzi potrzebne

Bardziej szczegółowo

Algorytm. Krótka historia algorytmów

Algorytm. Krótka historia algorytmów Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne

Bardziej szczegółowo

WK, FN-1, semestr letni 2010 Tworzenie list frekwencyjnych za pomocą korpusów i programu Poliqarp

WK, FN-1, semestr letni 2010 Tworzenie list frekwencyjnych za pomocą korpusów i programu Poliqarp WK, FN-1, semestr letni 2010 Tworzenie list frekwencyjnych za pomocą korpusów i programu Poliqarp Natalia Kotsyba, IBI AL UW 24 marca 2010 Plan zajęć Praca domowa na zapytania do Korpusu IPI PAN za pomocą

Bardziej szczegółowo

Procesy ETL. 10maja2009. Paweł Szołtysek

Procesy ETL. 10maja2009. Paweł Szołtysek Procesy 10maja2009 Paweł Szołtysek 1/12 w praktyce w praktyce 2/12 Zagadnienie Business Inteligence w praktyce 3/12 Czym jest proces? w praktyce Dane: dowolny zbiór danych ze źródeł zewnętrznych. Szukane:

Bardziej szczegółowo

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2015/2016

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2015/2016 EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2015/2016 CZĘŚĆ 1. JĘZYK POLSKI ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ ARKUSZ GH-P2 KWIECIEŃ 2016 Zadanie 1. (0 1) 9) wyciąga wnioski wynikające z przesłanek

Bardziej szczegółowo

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane Extensible Markup Language (XML) Wrocław, 15.03.2019 - Java - technologie zaawansowane Wprowadzenie XML jest językiem znaczników (ang. markup language) używanym do definiowania zbioru zasad rozmieszczenia

Bardziej szczegółowo

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2015/2016

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2015/2016 EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2015/2016 CZĘŚĆ 1. JĘZYK POLSKI ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ ARKUSZ GH-P8 KWIECIEŃ 2016 Zadanie 1. (0 1) 2) wyszukuje w wypowiedzi potrzebne informacje

Bardziej szczegółowo

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2015/2016

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2015/2016 EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2015/2016 CZĘŚĆ 1. JĘZYK POLSKI ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ ARKUSZ GH-P7 KWIECIEŃ 2016 Zadanie 1. (0 1) 9) wyciąga wnioski wynikające z przesłanek

Bardziej szczegółowo

Inteligentne wydobywanie informacji z internetowych serwisów społecznościowych

Inteligentne wydobywanie informacji z internetowych serwisów społecznościowych Inteligentne wydobywanie informacji z internetowych serwisów społecznościowych AUTOMATYKA INFORMATYKA Technologie Informacyjne Sieć Semantyczna Przetwarzanie Języka Naturalnego Internet Edytor Serii: Zdzisław

Bardziej szczegółowo

użytkownika 1 Jak wybrać temat pracy 2 Spis treści 3 Część pierwsza problematyka 4 Część druga stosowane metody 5 Część trzecia propozycja rozwiązania

użytkownika 1 Jak wybrać temat pracy 2 Spis treści 3 Część pierwsza problematyka 4 Część druga stosowane metody 5 Część trzecia propozycja rozwiązania 1 Jak wybrać temat pracy 2 Spis treści 3 Część pierwsza problematyka 4 Część druga stosowane metody 5 Część trzecia propozycja rozwiązania 6 Część czwarta dokumentacja techniczna i dokumentacja użytkownika

Bardziej szczegółowo

Kryteria oceniania języka angielskiego w Szkole Podstawowej nr 16 w Zespole Szkolno-Przedszkolnym nr 1 w Gliwicach

Kryteria oceniania języka angielskiego w Szkole Podstawowej nr 16 w Zespole Szkolno-Przedszkolnym nr 1 w Gliwicach Kryteria oceniania języka angielskiego w Szkole Podstawowej nr 16 w Zespole Szkolno-Przedszkolnym nr 1 w Gliwicach Gramatyka i słownictwo Potrafi poprawnie posługiwać się w wysokim stopniu zakresem środków

Bardziej szczegółowo

CLARIN rozproszony system technologii językowych dla różnych języków europejskich

CLARIN rozproszony system technologii językowych dla różnych języków europejskich CLARIN rozproszony system technologii językowych dla różnych języków europejskich Maciej Piasecki Politechnika Wrocławska Instytut Informatyki G4.19 Research Group maciej.piasecki@pwr.wroc.pl Projekt CLARIN

Bardziej szczegółowo

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6 Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki

Bardziej szczegółowo

Propozycja rozszerzenia składni zapytań programu Poliqarp o elementy statystyczne

Propozycja rozszerzenia składni zapytań programu Poliqarp o elementy statystyczne Propozycja rozszerzenia składni zapytań programu Poliqarp o elementy statystyczne Aleksander Buczyński 2006.06.26 Poliqarp - stan obecny Zwracane są kolejne konteksty wystąpień ciągów segmentów pasujących

Bardziej szczegółowo

Analiza wyników egzaminu gimnazjalnego 2013 r. Test humanistyczny język polski Test GH-P1-132

Analiza wyników egzaminu gimnazjalnego 2013 r. Test humanistyczny język polski Test GH-P1-132 Analiza wyników egzaminu gimnazjalnego 2013 r. Test humanistyczny język polski Test GH-P1-132 Zestaw zadań egzaminacyjnych z zakresu języka polskiego posłużył do sprawdzenia poziomu opanowania wiedzy i

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

Automatyczna selekcja zdań dla tekstów prasowych w języku polskim

Automatyczna selekcja zdań dla tekstów prasowych w języku polskim Automatyczna selekcja zdań dla tekstów prasowych w języku polskim Adam Dudczak adam.dudczak@man.poznan.pl Poznan Supercomputing and Networking Center Dawid Weiss dawid.weiss@cs.put.poznan.pl Poznan University

Bardziej szczegółowo

Niektóre zasady pisania prac dyplomowych

Niektóre zasady pisania prac dyplomowych Niektóre zasady pisania prac dyplomowych Praca dyplomowa licencjacka/inżynierska Wymaga samodzielnego rozwiązania problemu zawodowego, technicznego lub badawczego w zakresie wiedzy zdobytej podczas studiów.

Bardziej szczegółowo

Typy, klasy typów, składnie w funkcji

Typy, klasy typów, składnie w funkcji Typy, klasy typów, składnie w funkcji Typy w Haskell Każde wyrażenie w Haskell posiada zdefiniowany typ. Dzięki temu już na etapie kompilacji kodu następuje sprawdzenie poprawności kodu i zabezpiecza nas

Bardziej szczegółowo

#1 Wartościowa treść. #2 Słowa kluczowe. #3 Adresy URL

#1 Wartościowa treść. #2 Słowa kluczowe. #3 Adresy URL #1 Wartościowa treść Treść artykułu powinna być unikatowa (algorytm wyszukiwarki nisko ocenia skopiowaną zawartość, a na strony zawierające powtórzoną treść może zostać nałożony filtr, co skutkuje spadkiem

Bardziej szczegółowo

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2016/2017

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2016/2017 EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2016/2017 CZĘŚĆ 1. JĘZYK POLSKI ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ ARKUSZ: GH-P2 KWIECIEŃ 2017 Zadanie 1. (0 1) FP Zadanie 2. (0 1) B Zadanie 3. (0 1)

Bardziej szczegółowo

Narzędzia do automatycznego wydobywania słowników kolokacji i do oceny leksykalności połączeń wyrazowych

Narzędzia do automatycznego wydobywania słowników kolokacji i do oceny leksykalności połączeń wyrazowych Narzędzia do automatycznego wydobywania słowników kolokacji i do oceny leksykalności połączeń wyrazowych Agnieszka Dziob, Marek Maziarz, Maciej Piasecki, Michał Wendelberger Politechnika Wrocławska Katedra

Bardziej szczegółowo

Spacery losowe generowanie realizacji procesu losowego

Spacery losowe generowanie realizacji procesu losowego Spacery losowe generowanie realizacji procesu losowego Michał Krzemiński Streszczenie Omówimy metodę generowania trajektorii spacerów losowych (błądzenia losowego), tj. szczególnych procesów Markowa z

Bardziej szczegółowo

Wyszukiwanie tekstów

Wyszukiwanie tekstów Wyszukiwanie tekstów Dziedzina zastosowań Elektroniczne encyklopedie Wyszukiwanie aktów prawnych i patentów Automatyzacja bibliotek Szukanie informacji w Internecie Elektroniczne teksy Ksiązki e-book Artykuły

Bardziej szczegółowo

STRESZCZENIE. rozprawy doktorskiej pt. Zmienne jakościowe w procesie wyceny wartości rynkowej nieruchomości. Ujęcie statystyczne.

STRESZCZENIE. rozprawy doktorskiej pt. Zmienne jakościowe w procesie wyceny wartości rynkowej nieruchomości. Ujęcie statystyczne. STRESZCZENIE rozprawy doktorskiej pt. Zmienne jakościowe w procesie wyceny wartości rynkowej nieruchomości. Ujęcie statystyczne. Zasadniczym czynnikiem stanowiącym motywację dla podjętych w pracy rozważań

Bardziej szczegółowo

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Autoreferat do rozprawy doktorskiej OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Michał Mazur Gliwice 2016 1 2 Montaż samochodów na linii w

Bardziej szczegółowo

Analiza wyników egzaminu gimnazjalnego 2014 r. Test humanistyczny język polski

Analiza wyników egzaminu gimnazjalnego 2014 r. Test humanistyczny język polski Analiza wyników egzaminu gimnazjalnego 2014 r. Test humanistyczny język polski Zestaw standardowy zawierał 22 zadania, w tym 20 zadań zamkniętych i 2 zadania otwarte. Wśród zadań zamkniętych dominowały

Bardziej szczegółowo

Metody systemowe i decyzyjne w informatyce

Metody systemowe i decyzyjne w informatyce Metody systemowe i decyzyjne w informatyce Laboratorium JAVA Zadanie nr 2 Rozpoznawanie liter autorzy: A. Gonczarek, J.M. Tomczak Cel zadania Celem zadania jest zapoznanie się z problemem klasyfikacji

Bardziej szczegółowo

Maciej Piotr Jankowski

Maciej Piotr Jankowski Reduced Adder Graph Implementacja algorytmu RAG Maciej Piotr Jankowski 2005.12.22 Maciej Piotr Jankowski 1 Plan prezentacji 1. Wstęp 2. Implementacja 3. Usprawnienia optymalizacyjne 3.1. Tablica ekspansji

Bardziej szczegółowo

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je. Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie

Bardziej szczegółowo

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Dział Zagadnienia Wymagania podstawowe Wymagania ponadpodstawowe Arkusz kalkulacyjny (Microsoft Excel i OpenOffice) Uruchomienie

Bardziej szczegółowo

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2017/2018

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2017/2018 EGZAMIN W KLASIE TRZEIEJ GIMNAZJUM W ROKU SZKOLNYM 2017/2018 ZĘŚĆ 1. JĘZYK POLSKI ZASADY OENIANIA ROZWIĄZAŃ ZADAŃ ARKUSZ GH-P7 KWIEIEŃ 2018 Zadanie 1. (0 1) 9) wyciąga wnioski wynikające z przesłanek zawartych

Bardziej szczegółowo

Narzędzia do automatycznej analizy semantycznej tekstu na poziomach: leksykalnym i struktur

Narzędzia do automatycznej analizy semantycznej tekstu na poziomach: leksykalnym i struktur Narzędzia do automatycznej analizy semantycznej tekstu na poziomach: leksykalnym i struktur Maciej Piasecki, Paweł Kędzia Politechnika ska Katedra Inteligencji Obliczeniowej Grupa Naukowa G4.19 Plan prezentacji

Bardziej szczegółowo

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2014/2015

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2014/2015 EGZMIN W KLSIE TRZECIEJ GIMNZJUM W ROKU SZKOLNYM 2014/2015 CZĘŚĆ 1. JĘZYK POLSKI ZSDY OCENINI ROZWIĄZŃ ZDŃ RKUSZ GH-P7 KWIECIEŃ 2015 Zadanie 1. (0 1) PP Zadanie 2. (0 1) Zadanie 3. (0 1) II. naliza i interpretacja

Bardziej szczegółowo

Sposoby prezentacji problemów w statystyce

Sposoby prezentacji problemów w statystyce S t r o n a 1 Dr Anna Rybak Instytut Informatyki Uniwersytet w Białymstoku Sposoby prezentacji problemów w statystyce Wprowadzenie W artykule zostaną zaprezentowane podstawowe zagadnienia z zakresu statystyki

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie

Bardziej szczegółowo

Narzędzia do automatycznego wydobywania kolokacji

Narzędzia do automatycznego wydobywania kolokacji Narzędzia do automatycznego wydobywania kolokacji Jan Kocoń, Agnieszka Dziob, Marek Maziarz, Maciej Piasecki, Michał Wendelberger Politechnika Wrocławska Katedra Inteligencji Obliczeniowej marek.maziarz@pwr.edu.pl

Bardziej szczegółowo

Jak pisać publikacje naukowe? Nie o naukowej, a technicznej stronie pisania artykułu

Jak pisać publikacje naukowe? Nie o naukowej, a technicznej stronie pisania artykułu XXVIII Letnia Szkoła Naukowa Metodologii Nauk Empirycznych Zakopane, 12-14.05.2014 Jak pisać publikacje naukowe? Nie o naukowej, a technicznej stronie pisania artykułu Maciej Zaborowicz Instytut Inżynierii

Bardziej szczegółowo

Raport z analizy badania diagnostycznego uczniów klas czwartych 2016

Raport z analizy badania diagnostycznego uczniów klas czwartych 2016 Raport z analizy badania diagnostycznego uczniów klas czwartych 216 Zgodnie z Uchwałą Rady Pedagogicznej z dnia 17 czerwca 21 roku objęto badaniem diagnozującym stopień opanowania umiejętności polonistycznych,

Bardziej szczegółowo

Analiza korespondencji

Analiza korespondencji Analiza korespondencji Kiedy stosujemy? 2 W wielu badaniach mamy do czynienia ze zmiennymi jakościowymi (nominalne i porządkowe) typu np.: płeć, wykształcenie, status palenia. Punktem wyjścia do analizy

Bardziej szczegółowo

Technologie informacyjne - wykład 12 -

Technologie informacyjne - wykład 12 - Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski

Bardziej szczegółowo

KRYTERIA OCENIANIA Z JĘZYKA ANGIELSKIEGO DLA KLASY VI

KRYTERIA OCENIANIA Z JĘZYKA ANGIELSKIEGO DLA KLASY VI Ocena celująca KRYTERIA OCENIANIA Z JĘZYKA ANGIELSKIEGO DLA KLASY VI Poziom kompetencji językowej ucznia wykracza poza wiadomości i umiejętności przewidziane dla klasy szóstej. - uczeń potrafi przyjąć

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Faza Określania Wymagań

Faza Określania Wymagań Faza Określania Wymagań Celem tej fazy jest dokładne określenie wymagań klienta wobec tworzonego systemu. W tej fazie dokonywana jest zamiana celów klienta na konkretne wymagania zapewniające osiągnięcie

Bardziej szczegółowo

Informacje i materiały dotyczące wykładu będą publikowane na stronie internetowej wykładowcy, m.in. prezentacje z wykładów

Informacje i materiały dotyczące wykładu będą publikowane na stronie internetowej wykładowcy, m.in. prezentacje z wykładów Eksploracja danych Piotr Lipiński Informacje ogólne Informacje i materiały dotyczące wykładu będą publikowane na stronie internetowej wykładowcy, m.in. prezentacje z wykładów UWAGA: prezentacja to nie

Bardziej szczegółowo

INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA.

INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Autorzy scenariusza:

Bardziej szczegółowo

KRYTERIA OCENIANIA KLASA I KLASA II KLASA III

KRYTERIA OCENIANIA KLASA I KLASA II KLASA III KRYTERIA OCENIANIA II ETAP EDUKACYJNY - JĘZYK ANGIELSKI KLASA I KLASA II KLASA III DOPUSZCZAJĄCY: rozumie proste polecenia nauczyciela, poparte gestem; rozumie proste zwroty grzecznościowe i proste pytania;

Bardziej szczegółowo

Cele kształcenia wymagania ogólne

Cele kształcenia wymagania ogólne Cele kształcenia wymagania ogólne konieczne ocena: dopuszczająca podstawowe ocena: dostateczna rozszerzone ocena: dobra dopełniające ocena: bardzo dobra ponadprogramowe ocena: celująca I Kształcenie literackie

Bardziej szczegółowo

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Zastosowanie średnich w statystyce i matematyce. Podstawowe pojęcia statystyczne. Streszczenie.

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Zastosowanie średnich w statystyce i matematyce. Podstawowe pojęcia statystyczne. Streszczenie. SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Autorzy scenariusza:

Bardziej szczegółowo

Programowanie dynamiczne

Programowanie dynamiczne Programowanie dynamiczne Ciąg Fibonacciego fib(0)=1 fib(1)=1 fib(n)=fib(n-1)+fib(n-2), gdzie n 2 Elementy tego ciągu stanowią liczby naturalne tworzące ciąg o takiej własności, że kolejny wyraz (z wyjątkiem

Bardziej szczegółowo

GRAMATYKA I SŁOWNICTWO

GRAMATYKA I SŁOWNICTWO GRAMATYKA I SŁOWNICTWO dobrze opanował i swobodnie stosuje w praktyce zagadnienia gramatyczne określone w rozkładzie materiału i niektóre wykraczające poza nakreślone ramy potrafi budować złożone zdania,

Bardziej szczegółowo

KATEGORIA OBSZAR WIEDZY

KATEGORIA OBSZAR WIEDZY Moduł 3 - Przetwarzanie tekstów - od kandydata wymaga się zaprezentowania umiejętności wykorzystywania programu do edycji tekstu. Kandydat powinien wykonać zadania o charakterze podstawowym związane z

Bardziej szczegółowo

Narzędzia do automatycznego wydobywania kolokacji

Narzędzia do automatycznego wydobywania kolokacji Narzędzia do automatycznego wydobywania kolokacji Jan Kocoń, Agnieszka Dziob, Marek Maziarz, Maciej Piasecki, Michał Wendelberger Politechnika Wrocławska Katedra Inteligencji Obliczeniowej marek.maziarz@pwr.edu.pl

Bardziej szczegółowo

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor S O M SELF-ORGANIZING MAPS Przemysław Szczepańczyk Łukasz Myszor Podstawy teoretyczne Map Samoorganizujących się stworzył prof. Teuvo Kohonen (1982 r.). SOM wywodzi się ze sztucznych sieci neuronowych.

Bardziej szczegółowo

Szablon i zasady pisana pracy dyplomowej. Aneta Poniszewska-Marańda

Szablon i zasady pisana pracy dyplomowej. Aneta Poniszewska-Marańda Szablon i zasady pisana pracy dyplomowej Aneta Poniszewska-Marańda Spis treści Spis treści powinien zawierać spis wszystkich rozdziałów oraz podrozdziałów wraz z numerami stron, na których się rozpoczynają

Bardziej szczegółowo

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na Techniki indeksowania w eksploracji danych Maciej Zakrzewicz Instytut Informatyki Politechnika Poznańska Plan prezentacji Zastosowania indeksów w systemach baz danych Wprowadzenie do metod eksploracji

Bardziej szczegółowo

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych B.1. Dostęp do urządzeń komunikacyjnych Sterowniki urządzeń zewnętrznych widziane są przez procesor jako zestawy rejestrów

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

PROCES TWORZENIA DOKUMENTU

PROCES TWORZENIA DOKUMENTU PROCES TWORZENIA DOKUMENTU 1. PLANOWANIE 2. ANALIZA ASPEKTÓW PRAWNYCH I ETYCZNYCH 3. GROMADZENIE INFORMACJI 4. ORGANIZOWANIE (STRUKTURALIZOWANIE) INFORMACJI 5. TWORZENIE PLANU (STRUKTURY) DOKUMENTU 6.

Bardziej szczegółowo

Wykaz tematów prac magisterskich w roku akademickim 2018/2019 kierunek: informatyka

Wykaz tematów prac magisterskich w roku akademickim 2018/2019 kierunek: informatyka Wykaz tematów prac magisterskich w roku akademickim 2018/2019 kierunek: informatyka L.p. Nazwisko i imię studenta Promotor Temat pracy magisterskiej 1. Wojciech Kłopocki dr Bartosz Ziemkiewicz Automatyczne

Bardziej szczegółowo

Ćwiczenie numer 4 JESS PRZYKŁADOWY SYSTEM EKSPERTOWY.

Ćwiczenie numer 4 JESS PRZYKŁADOWY SYSTEM EKSPERTOWY. Ćwiczenie numer 4 JESS PRZYKŁADOWY SYSTEM EKSPERTOWY. 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z przykładowym systemem ekspertowym napisanym w JESS. Studenci poznają strukturę systemu ekspertowego,

Bardziej szczegółowo

9.9 Algorytmy przeglądu

9.9 Algorytmy przeglądu 14 9. PODSTAWOWE PROBLEMY JEDNOMASZYNOWE 9.9 Algorytmy przeglądu Metody przeglądu dla problemu 1 r j,q j C max były analizowane między innymi w pracach 25, 51, 129, 238. Jak dotychczas najbardziej elegancka

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 8b: Algebra relacyjna http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2009/tpi-2009 Prof. dr hab. Elżbieta Richter-Wąs 1 Algebra relacyjna Algebra relacyjna (ang.

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo