• Nie Znaleziono Wyników

2. Wykorzystanie technik analizy tekstów w ocenie szkolnych prac 29

2.3. Opis systemu

zło-˙zono´sci, z zasadami logiki i retoryki.

2.2.2. Metodyka oceniania prac z j˛ezyka polskiego

Bezpo´srednie kryteria oceny poszczególnych rodzajów prac nie s ˛a jedno-znacznie okre´slone. Ich opracowaniem zajmuj ˛a si˛e szkoły na podstawie ich Wewn ˛atrzszkolnych Systemów Oceniania, programów nauczania (opracowywa-nych przez twórców podr˛eczników), dodatkowych rozporz ˛adze ´n Ministra Edu-kacji oraz materiałów Centrów EduEdu-kacji Narodowej. Maria Madejowa w swoich dwóch publikacjach [3, 4] stara si˛e dokona´c syntezy wielu prac w celu stworzenia definicji wypracowania, a tak˙ze, co wa˙zniejsze, sposobu jego obiektywnej oceny. Przy ka˙zdej ocenie brane s ˛a pod uwag˛e nast˛epuj ˛ace elementy:

1. cz˛e´s´c koncepcyjna, obejmuje stopie ´n rozumienia tekstu, pomysł na jego opracowanie, wybór formy i znajomo´s´c zagadnienia,

2. cz˛e´s´c semantyczna (tre´sciowa), definiuje ilo´s´c i jako´s´c zawartych informacji, 3. cz˛e´s´c kompozycyjna, istotna w niej jest kolejno´s´c przedstawionych

informa-cji, zachowanie proporcji pomi˛edzy cz˛e´sciami pracy,

4. cz˛e´s´c redakcyjna, okre´sla poprawno´s´c u˙zycia j˛ezyka, spójno´s´c gramatyczn ˛a, ortografi˛e i interpunkcj˛e.

2.3. Opis systemu

2.3.1. Analiza funkcjonalna

Projektowane narz˛edzie ma by´c przeznaczone docelowo dla nauczycieli j˛e-zyka polskiego i słu˙zy´c im z pomoc ˛a przy ocenianiu prac. Technicznie rzecz bio-r ˛ac dane wej´sciowe maj ˛a pochodzi´c z pliku tekstowego, zawieraj ˛acego krótkie wypracowanie kodowanego w UTF-8. Dane wyj´sciowe za´s maj ˛a przybra´c form˛e zestawienia wybranych wielko´sci statystycznych, jak równie˙z wyników oceny do-konanej przez zaimplementowane algorytmy. Zakłada si˛e, ˙ze u˙zytkownik b˛edzie mógł za pomoc ˛a systemu:

• otrzyma´c informacj˛e o znalezionych bł˛edach ortograficznych, a tak˙ze wybra-nych interpunkcyjwybra-nych,

• zobaczy´c statystyki dotycz ˛ace wyrazów u˙zytych w pracy,

• odczyta´c wynik działania prototypowej funkcji oceniaj ˛acej warto´s´c meryto-ryczn ˛a tekstu,

• oceni´c indeks czytelno´sci FOG (okre´slaj ˛acy przyst˛epno´s´c tekstu w zale˙zno´sci od poziomu edukacji autora),

• wykorzysta´c aplikacj˛e jako baz˛e słownikow ˛a.

Diagram obrazuj ˛acy przepływ danych podczas pracy z narz˛edziem przedsta-wiono na rys. 2.2.

Rys. 2.2: Diagram przepływu danych.

2.3.2. Analiza niefunkcjonalna

Budowa systemu oceniaj ˛acego prace pisemne według opisanego klucza wy-maga zastosowania odpowiednich narz˛edzi. Przy ich doborze nale˙zy zwróci´c szczególn ˛a uwag˛e na oferowane funkcje, skuteczno´s´c przepływu informacji po-mi˛edzy poszczególnymi modułami oraz mo˙zliwo´s´c zrealizowania jak najwi˛ekszej ilo´sci zaplanowanych zada ´n. Dlatego przed przyst ˛apieniem do prac implementa-cyjnych dokonano przegl ˛adu wybranych narz˛edzi lingwistyki informatycznej dla j˛ezyka polskiego. Jednym z głównych cech, które brano pod uwag˛e, było licencjo-nowanie tych narz˛edzi, pozwalaj ˛ace na ich nieodpłatne wykorzystanie do celów edukacyjnych.

´Srodowiskiem pracy, w którym testowano opisywane aplikacje, biblioteki oraz słowniki, był darmowy system Linux Ubuntu 12.04. Wi˛ekszo´s´c u˙zytecznych dla projektu aplikacji posiada wersje dost˛epne dla tego ´srodowiska. O jego wyborze zadecydowała ponadto łatwo´s´c, z jak ˛a mo˙zna dokona´c ich integracji oraz zapew-ni´c mo˙zliwo´s´c komunikacji.

Kolejn ˛a spraw ˛a był wybór j˛ezyka programowania do implementacji głównego trzonu budowanego systemu. Obecnie w zagadnieniach zwi ˛azanych z przetwa-rzaniem tekstu i sztuczn ˛a inteligencj ˛a jednym z najcz˛e´sciej wykorzystywanych j˛ezyków programowania jest j˛ezyk Java. Zalet ˛a stosowanie tego j˛ezyka jest prze-no´sno´s´c aplikacji oraz du˙ze wsparcie oferowane przez ró˙znorodne toolkity po-zwalaj ˛ace na przetwarzanie j˛ezyka naturalnego (takich jak Apache OpenNLP).

Du˙z ˛a popularno´sci ˛a, je´sli chodzi o przetwarzanie du˙zej ilo´sci tekstu, ciesz ˛a si˛e takie j˛ezyku jak Perl i Python. W kontek´scie planowanej implementacji główn ˛a

2.3. Opis systemu ich zalet ˛a jest łatwo´s´c obsługi ła ´ncuchów znakowych, wczytywania/zapisywania plików oraz dost˛epno´s´c sporej ilo´sci narz˛edzi i modułów - szczególnie dla celów lingwistyki informatycznej. Warto podkre´sli´c, ˙ze przeno´sno´s´c programów uzy-skuje si˛e przy stosunkowo małych zmianach w kodzie (pod warunkiem, ˙ze wyko-rzystywane narz˛edzia i moduły wyst˛epuj ˛a w wersjach zarówno na systemy Linux, Windows czy OS X). Zalet ˛a przemawiaj ˛ac ˛a na korzy´s´c wykorzystywania j˛ezyka Py-thon jest mo˙zliwo´s´c skorzystania z biblioteki NLTK (ang. Natural Language

Tool-kit)) [5], oferuj ˛acej dedykowane korpusy, parsery oraz funkcje do pracy z tekstem (w tym mo˙zliwo´s´c współpracy z Wordnetem - sieci ˛a leksykalno-semantyczn ˛a). NLTK współpracuje ze starsz ˛a (ale wci ˛a˙z rozwijan ˛a) gał˛ezi ˛a 2.x j˛ezyka Python.

W celu wyszukiwania relacji pomi˛edzy słowami wykorzystuje si˛e sieci leksykalno-semantyczne. Jedn ˛a z najwi˛ekszych istniej ˛acych jest angielski Word-net. Jednostki leksykalne ł ˛aczone s ˛a w niej za pomoc ˛a relacji semantycznych pomi˛edzy jednostkami [6]. Wordnet opisuje relacje ’is-a’ (jest) oraz ’has-a’ (na-le˙zy do) pomi˛edzy poj˛eciami oraz zwi ˛azki pomi˛edzy słowami. Przykładowo, słowa rise i fall s ˛a opisane jako antonimy (przeciwie ´nstwa), finger jest meroni-mem hand (palec jest cz˛e´sci ˛a r˛eki) [6]. Rozgraniczono tak˙ze znaczenie wyra-zów - osobnymi poj˛eciami, niezwi ˛azanymi ze sob ˛a znaczeniowo, s ˛a rzeczownik

fall<–>jesie ´n i czasownik fall<–>spada´c.

Polskim odpowiednikiem Wordnetu jest tworzona na Politechnice Wrocław-skiej Słowosie´c [7]. Udost˛epniona wersja Słowosieci 2.0 liczy 116000 synsetów, 160000 jednostek leksykalnych i niemal 350000 relacji leksykalnych. Zawiera ona zwi ˛azki ł ˛acz ˛ace rzeczowniki, przymiotniki i czasowniki w j˛ezyku polskim.

Kolejnym zestawem narz˛edzi, wa˙znym z punktu widzenia planowanej imple-mentacji, s ˛a słowniki i tezaurusy, uzupełniaj ˛ace sieci semantyczno-leksykalne oraz pomagaj ˛ace w sprawdzaniu ortografii i wyszukiwaniu wyrazów bliskoznacz-nych. Najwi˛ekszym, ogólnodost˛epnym i darmowym polskim słownikiem rozpro-wadzanym w formie elektronicznej (na licencji GNU GPL) jest słownik j˛ezyka pol-skiego (http://marek01.pop.e-wro.pl/lit). Został on stworzony dla gry Li-teraki i zawiera obecnie prawie 2,5 miliona polskich wyrazów. Ponadto bardzo pomocne okazały si˛e inne ´zródła udost˛epniane na otwartej licencji, jak np. słow-nik zawieraj ˛acych dyftongi (takie jak auto czy Europa) utworzone na podstawie zbioru pochodz ˛acego z serwisu Wikisłownik (pl.wiktionary.org).

Istotnym narz˛edziem stosowanym w analizie tekstów jest program Morfeusz, dost˛epny pod adresemsgjp.pl/morfeusz/[8]. Pozwala on przeprowadza´c ana-lizy morfologiczne słów w j˛ezyku polskim. Dzi˛eki niemu dla danego słowa mo˙zna uzyska´c wszystkie formy wszystkich leksemów. Morfeusz nie uwzgl˛ednia jednak kontekstu słów. Aby ten kontekst uwzgl˛edni´c mo˙zna posłu˙zy´c si˛e programem Ta-KiPi (Tager Korpusu IPI PAN)) [9]. Program ten pomaga odgadn ˛a´c interpretacj˛e danego słowa w danym kontek´scie. Przykładowo, słowo mam mo˙ze zosta´c zinter-pretowane jako dopełniacz liczby mnogiej słowa mama, forma czasownika

ma-mi´c oraz forma czasownika mie´c. Narz˛edzi tych u˙zyto pó´zniej, ju˙z na etapie

im-plementacji, w celu opisania poszczególnych słów (w tym nazw własnych) oraz analizy fleksyjnej.

Wa˙zn ˛a funkcj ˛a, któr ˛a miało realizowa´c projektowane narz˛edzie, była mo˙zli-wo´s´c sprawdzenie poprawno´sci gramatycznej zda ´n. Według wiedzy autorów, je-dyn ˛a polsk ˛a gramatyk ˛a, któr ˛a udało si˛e zweryfikowa´c za pomoc ˛a metod kompu-terowych jest gramatyka opisana w pracy habilitacyjnej prof. dr hab. Marka ´Swi-dzi ´nskiego [10].

W celu próby oceny zaawansowania tekstu wobec wieku u˙zytkownika testo-wano mo˙zliwo´s´c zastosowania współczynnika mglisto´sci tekstu FOG dla j˛ezyka polskiego [11]. Współczynnik ten wykorzystywany jest do oceny poziomu przy-st˛epno´sci tekstu - im wi˛ekszy, tym mniej zrozumiały dla młodszych czytelników.

Projektowane narz˛edzie programowe ma by´c aplikacj ˛a konsolow ˛a, działaj ˛ac ˛a w systemie Linux Ubuntu, zaimplementowan ˛a w j˛ezyku Python (wersja 2.7.3). Du˙zym problemem w przypadku pracy z korpusami tekstu jest potrzeba spo-rego nakładu obliczeniowego (np. je´sli przeszukujemy słowniki). Zmniejsza to znacz ˛aco pr˛edko´s´c działania aplikacji. W przypadku omawianego, prototypo-wego rozwi ˛azania, przewidziano wykonywanie analiz małych obj˛eto´sciowo tek-stów, o niskim stopniu skomplikowania. St ˛ad te˙z szacunkowy czas wykonywania operacji dla statystycznego u˙zytkownika nie powinien przekroczy´c kilku sekund. Pr˛edko´s´c działania aplikacji zwi˛ekszy si˛e w przypadku jej uruchomienia na kom-puterze dysponuj ˛acym wi˛eksz ˛a moc ˛a obliczeniow ˛a. Mo˙ze to by´c istotne w pod-czas oceny setek lub wi˛ecej prac w jednym eksperymencie.

Zało˙zono, ˙ze aplikacja b˛edzie miała architektur˛e modułow ˛a. Moduły b˛ed ˛a wzbogaca´c aplikacj˛e o wybrane funkcje i b˛ed ˛a rozprowadzane na zasadach wol-nej licencji. Dzi˛eki temu zało˙zeniu mo˙zliwa b˛edzie łatwa ich wymiana lub roz-budowa. Na podobnych zasadach odbywa´c si˛e ma zwi˛ekszanie bazy wiedzy pro-gramu (przykładowo poprzez dodanie nowych słowników).

Aplikacja powinna by´c odporna na awarie oraz zapewnia´c komfort pracy u˙zyt-kownika. Dodatkowo, jako program uruchamiany na lokalnych komputerze, po-winna ona spełnia´c wymagania bezpiecze ´nstwa.

Powiązane dokumenty