České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů
Bakalářská práce Aplikace pro výuku cizího jazyka pomocí obrazové databáze Petr Nobst
Vedoucí práce: Mgr. Michal Vavrečka, Ph.D. Studijní program: Otevřená informatika, Bakalářský Obor: Softwarové systémy 3. ledna 2014
Čestné prohlášení Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně. Veškeré použité podklady, ze kterých jsem čerpal informace, jsou uvedeny v seznamu použité literatury a citovány v textu podle normy ČSN ISO 690.
V Praze dne 3. 1. 2014
............................... Petr Nobst
Poděkování Děkuji Michalu Vavřečkovi za odborné vedení práce, věcné připomínky, dobré rady a vstřícnost při konzultacích a vypracovávání bakalářské práce.
Abstrakt Tato bakalářská práce se věnuje problematice výuky cizího jazyka na mobilním zařízení. Na základě analýzy dostupných aplikací definuje jejich nedostatky a silné stránky. Z nich poté vzniká návrh nové aplikace, která tyto nedostatky adresuje. Pro aplikaci byla vybrána platforma Android jako jedna z nejrozšířenějších na chytrých mobilních zařízením a tabletech. Cílem práce je vytvoření funkčního prototypu aplikace a vytvoření postupů pro její další rozšíření.
Klíčová slova Android, aplikace, výuka cizích jazyků, obrazová databáze, WordNet
Obsah 1 Úvod ..................................................................................................................................................... 6 2 Současné možnosti ............................................................................................................................... 7 2.1 Babbel ............................................................................................................................................ 7 2.2 Duolingo ...................................................................................................................................... 10 2.3 Hello-Hello ................................................................................................................................... 12 2.4 Závěr ............................................................................................................................................ 14 3 WordNet ............................................................................................................................................. 14 3.1 Definice WordNetu...................................................................................................................... 14 3.2 Struktura WordNetu .................................................................................................................... 15 3.3 Analýza záznamu ......................................................................................................................... 16 4. ImageNet ........................................................................................................................................... 16 4.1 Definice ImageNetu ..................................................................................................................... 16 4.2 Struktura ImageNetu ................................................................................................................... 16 5 Vlastní řešení ...................................................................................................................................... 17 5.1 Použité technologie ..................................................................................................................... 17 5.2 Popis projektu.............................................................................................................................. 17 5.3 Uživatelské rozhraní .................................................................................................................... 19 5.4 Rozbor kódu ................................................................................................................................ 20 5.5 Zhodnocení aplikace .................................................................................................................... 23 5.6 Možnosti rozšíření ....................................................................................................................... 23 6 Závěr ................................................................................................................................................... 24
1 Úvod Znalost alespoň jednoho cizího jazyka je v současné době schopnost téměř nutná. Ať je to při hledání práce, nebo v běžném životě, tato znalost nám pomáhá a usnadňuje život. Důvody, podle kterých si vybíráme jazyk, který se budeme učit, se různí, od „mluví se s ním v okolních zemích“ po „potřebuji ho v zaměstnání“. Pro angličtinu, ačkoli jako mateřský jazyk je až na třetím místě[1], se rozhodne mnoho lidí i díky značnému rozšíření v informačních technologiích. Při výuce, respektive procvičování, cizího jazyka je potřeba neustálého opakování probrané látky. V hodinách se probírá hlavně gramatika a jazyková pravidla a slovní zásoba, jenž je časově náročná se obvykle nechává na studentech ve formě domácích úkolů či procvičování. Ačkoli ke konverzaci na několik málo témat není potřeba rozsáhlé slovní zásoby, získání dostatečné a široké slovní zásoby je nutné pro použití jazyka v každodenních situacích. Mobilní telefony, hlavně jejich chytří nástupci (smartphone) dali uživatelům do rukou nástroj, který se dá použít nejen ke komunikaci, ale i k zábavě či výuce. Není divu, že mezi mnoha aplikacemi, které jsou pro chytré telefony (a tablety) k dispozici, se objevily i programy na výuku jazyka. Výhodou výukových programů v telefonu je, že nemusíte nosit nic navíc, než normálně nosíte, tzn., odpadá nošení učebnice a telefon je, většinou, i menší než kniha. Další nezanedbatelnou výhodou je možnost spuštění programu kdykoli, např. během jízdy městskou dopravou, při čekání na zkoušku nebo ve frontě při nákupu. Tyto příklady dávají tušit i omezení, které pro využití telefonu, jako výukového nástroje platí. Telefon nenahradí učebnici a uživatel se k němu uchýlí hlavně v případě, že klasický způsob učení je nemožný nebo nepraktický. Všechny příklady využití mají společné další omezení a to je nedostatek času. Pokud má být telefon, resp. jeho aplikace využitelná pro výuku musí být rychlá, přehledná a snadno ovladatelná. Důvodem pro výběr tohoto tématu je můj zájem o mobilní technologie, potřeba a nemožnost klasického procvičování cizího jazyka a také množství času stráveného na cestách.
[1] The World Factbook [online]. The Central Intelligence Agency. (platné ke 2009). Dostupné z https://www.cia.gov/library/publications/the-world-factbook/fields/2098.html#xx.
6
2 Současné možnosti Prvním krokem vývoje nového softwaru je analýza trhu, zda se nový produkt upotřebí a jestli bude mít nějaké zájemce. Protože jsem se rozhodl vyvíjet aplikaci pro Android, hledal jsem podobné aplikace, konkurenci, na Google Play. Programů na výuku jazyka je ke stažení mnoho, ale aplikací, které by kombinovaly text s obrazovou informací je velice málo. Rozhodl jsem se otestovat a porovnat tři aplikace od výrobců Babbel, Duolingo a Hello-Hello. Všechny testy probíhaly na přístroji ASUS Transformer Pad TF300TG s operačním systémem Android 4.2.1. Každou aplikaci jsem porovnával z několika aspektů – slovní zásoba, uživatelská přívětivost a ostatní. Každé porovnání je ve formě krátké recenze, doplněné snímky obrazovky, kde na konci jsou uvedeny klady a zápory aplikace a technické informace o testované verzi.
2.1 Babbel Od Babbelu jsem se rozhodl otestovat aplikaci „Learn Spanish with Babbel“ (dále jen Babbel).
Obrázek 1: Úvodní stránka Learn Spanish with Babbel
Aplikace Babbel má dva režimy ve kterých funguje. Základní režim, který nevyžaduje přihlášení a rozšířený, který se zpřístupní po přihlášení do aplikace. Přihlásit se je možné pomocí účtu na sociální síti Facebook nebo pomocí účtu Babbel, jehož vytvoření je zdarma a je možné přímo v aplikaci.
7
Babbel má dva režimy – výuku a testování. Testování je možné pouze po přihlášení, ale výuka je dostupná v obou režimech, i když v základním pouze omezeně. Aplikace obsahuje 31 různých pevně definovaných kategorií, každá z nich obsahuje několik skupin slov. Počet skupin se různí od 4 v kategorii „Rockstars and Fans“ po 16 skupin slov v kategorii „Food and Drinks“. Počet slov ve skupině není pevně daný, ale většinou se pohybuje kolem 10 slov. Základní verze je omezeně počtem skupin, které jsem dostupné (většinou pouze jedna na kategorii), obsahuje tedy kolem 350 slov. Rozšířená verze je na tom v tomto ohledu mnohem lépe a obsahuje kolem 2500 slov. Nevýhodou je nutnost nezákladní skupiny dodatečně stáhnout z internetu.
Obrázek 2: Kategorie a skupiny slov v kategorii „Food and Drinks“. Skupiny s šedou šipkou jsou z rozšířené verze
Skupiny je možné procházet třemi způsoby. První je seznámení, což je kombinací výuky, která spočívá v zobrazení obrazu, textu a přečtení slova, zopakování si slov pomocí dvou testů. Pořadí testů je vždy stejné- první kde musíte správně určit obrázek ze čtyř možných, druhý kde vybíráte první písmeno slova zobrazeného pomocí obrázku. Celá skupina je rozdělena do podskupin po 4 slovech, která se učíte společně. Druhý způsob procházení je opakování, kde je testována znalost slov z celé skupiny, ve stejných podskupinách jako byly ve výuce. Testy jsou složitější a rozmanitější. Určování obrázku podle slova zůstalo, ale tentokrát obrázky mění svoji pozici, dále je tu doplnění
8
správného slova z nabídky do věty. Věta je napsaná celá anglicky a španělsky, kde je označena pozice chybějícího slova. Poslední test je zapsání slova pomocí nabídnutých písmen. Třetí a poslední způsob je zobrazení celé skupiny a možnost poslechu jednotlivých slov a otestování vlastní výslovnosti. Toto otestování zobrazí i nějaké skóre, nejspíše v rozmezí 0-100 podle toho jak přesně je to vysloveno. Ale je velice obtížné dostat více než 80 a méně než 50, s výjimkou 0. Bohužel, dokud se vám nepodaří získat jiné skóre než 0 tak se nedostanete k jinému slovu. Po delším používání aplikace a přihlášení do rozšířené verze je k dispozici funkce opakování slov. Tato možnost se synchronizuje se servery Babbelu, tzn., pokud se přihlásíte na jiném přístroji se stejným účtem, budou na vás čekat stejná slovíčka k opakování. Babbel nevysvětluje, jak vybírá slovíčka k opakování, ale odhaduje, že je to na času od prvního učení slova, popř. posledního opakování.
Obrázek 3: Výuka a testy slovní zásoby
Výhodou Babbelu je veliká slovní zásoba po přihlášení, jednoduché přihlášení a registrace, uživatelská přívětivost, hlavně díky dostatečně velkým tlačítkům a minimu prvků, které by rozptylovaly pozornost nebo u kterých není jasná jejich funkce. Další výhodou je možnost
9
poslechnout si každé slovo několikrát a otestovat si vlastní výslovnost. Obrazová a zvuková část je dobře provedená, a nenarazil jsem na žádný obrázek, který by byl matoucí. Nevýhodami Babbelu je velikost aplikace (37MB základní verze a dalších 26MB rozšířená) a nutnost přihlášení, pokud chci využívat všechny funkce a celou slovní zásobu, nemožnost v testu pokračovat dále pokud nesplním současný krok a relativní jednoduchost testů – v žádném testu není postih za chyby a všechny testy jdou splnit pouhým klikáním na nevyzkoušené možnosti. Nevýhodou je také omezená slovní zásoba. Kompletní sice obsahuje přes 2500 slov, ale ty jsou pevně daná a rozdělená do skupin, takže pokaždé když si zobrazím jednu ze skupin, budou tam ta stejná slova ve stejném pořadí. Nevýhodou zvukového záznamu je rozmanitost hlasů, které to namluvily. Ne všechny jsou stejně srozumitelné a občas je potřeba si to poslechnout několikrát.
2.2 Duolingo Duolingo je jedna aplikace, která obsahuje 5 jazyků, s možností učit se z angličtiny do vybraného jazyka nebo naopak. Aplikace je postavená jako hra, ve které získáváte zkušenosti a úrovně podle toho jak se vám daří, což je určitě zajímavý nápad, ale nemusí to být pro každou věkovou skupinu. Vzhledem k tomu, že je to postavené jako hra je nutné mít někde uložené výsledky, což vede k tomu, že bez přihlášení se dál nedostanete. Přihlášení je možné pomoci účtů Facebook, Google+ nebo účtu jen pro Duolingo, který si můžete vytvořit přímo v aplikaci.
Obrázek 4: Vlevo – statistiky uživatele a v pozadí výukový plán. Vpravo – výuka nového slova
10
Aplikace má připravený výukový plán, který si lze nahlédnout. Pokud nejste začátečník a chcete část přeskočit, je tu možnost použít jednu z několika testů, které po úspěšném splnění dovolí přeskočit část výukového plánu. Každá kapitola výukového plánu se skládá z několika lekcí. Výuka probíhá pomocí testů, které jsou ve formě výběru správného obrázku, přeložení slova do angličtiny nebo cizího jazyka, popř. čtení věty. Jelikož je to hra, jsou k dispozici 4 životy, které mizí v případě chyby. Pokud ztratíte všechny životy se nutné celou lekci opakovat. V případě úspěšného splnění lekce jsou odměnou zkušenosti, které „hráči“ zvyšují úroveň. Úroveň ani zkušenosti nemají žádný dopad na výuku samotnou, jsou tu pouze jako motivační prvek. Lze si také najít přátele pomocí emailu nebo uživatelského jména a porovnávat se s nimi.
Obrázek 5: Vlevo – chyba při testu. Vpravo – i v testu jsou nová slova vysvětlena
Mezi výhody Duolinga patří hravý způsob provedení a motivace k úspěchu, možnost přeskočit část výuky pro pokročilejší uživatele, nebo možnost vypnout zvukové úlohy. Patří sem i možnost nastavit si posílání různých připomínek, např. připomenutí procvičování, když mne některý z přátel předběhne apod. Výhodou je i možnost přepnutí jazyka v rámci jedná aplikace bez nutnosti dalšího stahování. Aplikace je ze všech zkoušených nejmenší s pouhými 11MB.
11
Velkou nevýhodou je nutnost přihlášení, bez kterého nelze spustit. Nemožnost vybrat si lekci, kterou se chci naučit je drobnost, horší je ztráta veškerého postupu ať už v lekci, nebo v testu v případě, že se vrátím na úvodní stránku. Dokud nedokončíte celou lekci nebo test najednou tak se nedostanete dál. Občas je i problém, že se v testu objeví slovo, které nebylo dříve vysvětlené. Vzhledem k nemožnosti zjistit co se skrývá v zamčených lekcích je v nevýhodách i rozsah vyučované slovní zásoby. Odhad založený na počtu kapitol, jednotlivých lekcí v nich a počtu slov v dostupných lekcích odhaduji počet slov přes 2000.
2.3 Hello-Hello Od vydavatele Hello-Hello je několik aplikací. Rozhodl jsem se testovat „Basic Italian“. Na rozdíl od předchozích aplikací je primárně určen pro telefony a jako lze zobrazit pouze na výšku. Při spuštění dostanete na výběr jazyka pro překlad, ve chvíli kdy žádný nezvolíte, tak se automaticky nastaví italština. Tato aplikace má volně dostupnou pouze jednu z devíti kategorií, zbytek je dostupný pouze po koupi, s tím, že jednotlivá kategorie stojí 3.99€. Kategorie „Základy“ obsahuje 9 skupin slov rozdělených podle zaměření. Počet slov ve skupině se pohybuje mezi 12 v „Měsíce“ a 26 v „rodina“. Celkem je zdarma k dispozici kolem 160 slov, což je nejméně ze všech testovaných aplikací.
Obrázek 6: Vlevo – seznam skupin v kategorii „Základy“. Vpravo – seznam slov v jednom druhu zobrazení
12
Basic Italian obsahuje možnost výuky a testování znalostí. Výuka probíhá jen formou zobrazení a přečtení vybraného slova. Je na uživateli, které slovo si vybere, a není tu žádná kontrola, které slova již byla vybrána. Slovíčka je možné zobrazit třemi způsoby. První je seznam slov v angličtině a po straně se zobrazuje, druhý způsob je ve formě kartiček, mezi kterými uživatel přechází v daném pořadí. Kartička má z obou stran stejný obrázek ale text se liší podle jazyka, je to tedy možnost zkoušení se. Poslední způsob zobrazení jsou všechna slova v cizím jazyku a jejich obrázky najednou. Tato verze má z uživatelského pohledu nejvíce chyb, jelikož zde chybí anglická verze slova, takže nemám kontrolu, že jsem obrázek poznal správně a posun celé stránky, vzhledem k velkému množství obrázků je velice pomalý. Všechny zobrazení mají možnost nechat si slovo přečíst.
Obrázek 7: Vlevo – procvičování čtení. Vpravo – procvičování poslechu
Procvičování má čtyři módy. Čtení, kde se doplňuje slovo z nabídky podle obrázku. Mluvení, kde je možnost namluvit slovo a porovnat záznam s již namluveným. Bohužel u této možnosti není žádná automatická kontrola správnosti. Třetím módem je procvičování poslouchání. Podle poslechu se musí vybrat správný obrázek. Jako u Babbelu, zde chybí trest za nesprávně vybraný. Poslední je procvičování psaní. Je zde pouze obrázek, možnost poslechnout si slovo a uživatel musí správně napsat slovo. V případě chyby se místo obrázku zobrazí správně napsané slovo a uživatel má možnost si svoje opravit. 13
U žádného z procvičování není kontrola, nebo nějaký automatické procházení slov. Vše je na uživateli. Poslední, co Basic Italian nabízí, je vyhledávání, které v předchozích aplikacích nebylo a funguje jako slovník. Bohužel nelze zobrazit vše, co tento slovník obsahuje, takže lze vyhledávat jen to, co uživatel ví, že v aplikaci je. Další chybou vyhledávání je přehrávání zvuku. Nalezená slova, lze přehrát, ale přehrávání se nepřeruší v případě, že kliknu na jiné slovo. Stává se tedy, že mluví několik slov zároveň. Výhod má Basic Italian velice málo. Jednou z nich je možnost koupit všechny kategorie zároveň se slevou, ale vzhledem k tomu, že ostatní aplikace jsou zdarma, je to výhoda diskutabilní. Další výhodou jsou čtyři druhy procvičování a možnost přecházení mezi slovy během zkoušení. Seznam nevýhod je o něco delší. První a největší je velikost slovní zásoby a nutnost koupě rozšíření. Aplikace je pomalá a reakční čas při přepínání mezi jednotlivými obrazovkami se občas blíží k jedné vteřině. Obrázky nejsou vždy jednoznačné, což vadí hlavně při testování. Na obrázku 7 je vlevo obrázek pro Leden, ale také to může být Květen nebo Září. Uživatel tedy musí spoléhat hlavně na zvukovou část testu. Nedostatek u procvičování mluvení jsem zmiňoval již dříve. Celkově je Basic Italian nejhůře provedený a vybavený ze všech testovaných aplikací.
2.4 Závěr U všech aplikací se rozsah kompletní slovní zásoby pohybuje v řádu tisíců, ale všechny tyto záznamy jsou pevně dané a ručně vybrané. Na jednu stranu to zaručuje jistou dávku kvality, až do úrovně člověka, nebo skupiny lidí, která je vybírá, na stranu druhou je to zásoba omezená, která se nijak nemění. Pokud předpokládám, že se aplikace používají hlavně při čekání na MHD a dojíždění do práce, dá se denně naučit a procvičit i několik desítek slovíček, podle zkušenosti uživatele a dostupného času. Uživatel nemá možnost ovlivnit vybraná slova v kategorii a ve chvíli, kdy se naučí všechny slovíčka, není žádná možnost jak se naučit další. Nevýhodou ručního vybírání slovní zásoby je náročnost na lidskou práci a čas. V aplikaci vyvíjené v této práci, jsem se zaměřil na získání co největší možné slovní zásoby s minimem investované lidské práce.
3 WordNet 3.1 Definice WordNetu WordNet je slovní databáze anglických podstatných a přídavných jmen, sloves a příslovcí vytvořená a udržovaná na americké univerzitě Princeton, dostupná na adrese http://wordnet.princeton.edu/. Slova jsou spojena do skupin (synsetů) na základě asociací a synonym – slovy označující stejný koncept, např. auto a automobil. Každé slovo má k sobě přiřazen význam a dohromady tvoří unikátní pár. Současná databáze WordNetu obsahuje 206941 takovýchto párů[1], z čehož necelé ¾ jsou mezi podstatnými jmény.
14
Nyní existují projekty podobné WordNetu i pro jiné jazyky v různém stupni rozpracovanosti a dostupnosti.
3.2 Struktura WordNetu Databáze WordNetu z Princetonu se skládá ze tří textových souborů pro každý slovní druh. První je data.* (kde * je nahrazen slovním druhem). Tento soubor obsahuje pozici synsetu a jeho vazby na ostatní synsety. Další soubor je index.*, který obsahuje abecedně seřazená slova patřící do daného slovesného druhu. Tyto dva soubory jsou hlavní pro zobrazování obsahu WordNet databáze. Třetí soubor je *.exc, který obsahuje slovesné výjimky, např. nepravidelné skloňování. Vzhledem k tématu bakalářské práce, jsem se rozhodl věnovat hlavně souborům obsahujícím podstatná jména, jelikož ta jsou co se zobrazení a pochopení z obrázků nejsnadnější. Po provedení analýzy obou souborů jsem se rozhodl, že v této práci soubor index.noun není potřeba, vzhledem k tomu, že nehodlám zobrazovat strukturu a vztahy synsetů, pouze konkrétní pojmy. Soubor data.noun, který obsahuje přes 82 tisíc záznamů, udržuje pozici synsetu v souboru a jeho vazby na další synsety. Výsledná struktura těchto skupin připomíná svým tvarem stromový graf, kdy vazby mezi skupinami jsou tvořeny různými asociacemi. [1] Princeton University "WordNet statistics." WordNet. Princeton University. 2010. http://wordnet.princeton.edu/wordnet/man/wnstats.7WN.html.
Kromě prvních několika řádků, které obsahují licenční ujednání, každý další řádek má pevně danou strukturu, která umožnuje snadné procházení a rozpoznávání prvků. Pro vyvíjenou aplikaci je důležitá pozice synsetu v databázi, kategorii, do které bylo slovo přiřazeno, slovo či slova v synsetu obsažená, význam synsetu a také vztahy k ostatním synsetům. Protože synsety obsahují i sousloví, všechny mezery v nich jsou nahrazeny podtržítky, mezera je poté použita jako oddělovač jednotlivých informací na řádku. WordNet sice rozpoznává 19 různých vztahů mezi synsety, ale pro potřeby procházení souboru potřebujeme dva hlavní vztahy – rodič a potomek. Ve WordNetu tyto závislosti jsou označovány jako hyperonymum, nadřazený pojem, a hyponymum, pojem podřazený. Každý synset v databázi má alespoň jednoho rodiče, ale může jich mít i více. Výjimku tvoří „entita“ což je první záznam a jako takový má pouze potomky a je nadřazená všem záznamům. Bohužel WordNety v jiných jazycích používají vlastní strukturu odlišnou od původního WordNetu což znemožňuje automatické zpracování. Většina volně stažitelných databází je uložena v XML formátu s různou strukturou, pouze ruská verze má strukturu totožnou s WordNetem.
15
3.3 Analýza záznamu 00133039 04 n 02 plunk 0 plunker 0 002 @ 00126449 n 0000 ;c 00472688 n 0000 | (baseball) hitting a baseball so that it drops suddenly Záznam 1: Záznam ze souboru data.noun
Pokud si záznam rozdělíme do skupin podle mezer: První informace (00133039) udává bytovou polohu záznamu v soboru Druhá (04) kategorii synsetu, v tomto případě to označuje „čin, akt“ Třetí informace „n“ označuje podstatné jméno Čtvrtá obsahuje počet slov v synsetu, v tomto příkladu 2 – plunk, plunker Dál se záznamy liší synset od synsetu, ale vždy obsahují vztah k dalším synsetu, který je ve formátu „vztah“ „pozice“ „slovní druh“. Každý z 19 vztahů mezi synsety má přiřazenou jeden až dvojznakovou zkratku, např. „@“ značí hyperonymum, tedy rodiče. Na konci většiny záznamů je význam oddělený symbolem „|“.
4. ImageNet 4.1 Definice ImageNetu ImageNet je projekt navazující na WordNet dostupný na adrese http://image-net.org, snažící se nabídnou snadno přístupnou databázi obrázků. Vznikl z důvodu potřeby dostupnosti více dat. Sdružuje odkazy na více než 14 miliónů obrázků rozdělených do skupin podle hierarchie WordNetu. V současné době ImageNet obsahuje 21841 různých synsetů pro podstatná jména s více než tisícem odkazů pro většinu synsetů. Poslední zveřejněná verze je Podzim 2011. ImageNet nekontroluje automaticky, jestli odkaz je stále aktivní, nebo zdali je obsah relevantní. Každý uživatel, který si zobrazí nějaká data má možnost u obrázku označit, zda je relevantní pro daný synset. Vzniká tu riziko chybných nebo špatně zařazených obrazů. Neexistuje na to žádná statistika, ale odhadem se horní hranice chybovosti pohybuje v rámci jednotek procent. U některých abstraktnějších synsetů to může být o něco více.
4.2 Struktura ImageNetu ImageNet je podobně jako WordNetu rozdělen podle synsetů, každý synset obsahující různý počet odkazů na obrázky, které se k němu vztahují. Každý synset je označen pomocí tzn., WNID což značí ID, resp. adresu ve WordNetu. Tím je myšlena pozice synsetu v souboru data.noun. Ale vzhledem ke stáří poslední aktualizace ImageNetu a novým záznamům v databázi Wordnetu v současnosti mapování mezi ImageNetem a WordNetem neodpovídá. K dispozici je i mapování mezi verzí WNID používanou v ImageNetu a slovy v synsetu. Toto mapování je potřeby pro překlad mezi adresou synsetu ve WordNetu a WNID ImageNetu.
16
5 Vlastní řešení 5.1 Použité technologie Pro vývoj této aplikace jsem vybral systém Android, jakožto jeden z nejrozšířenějších operačních systémů s postavené na ActionScript 3 s podporou Adobe AIR.
Pro vývoj aplikace byla použita trial verze Adobe Flash Professional CS6 (dále jen Flash). K vytvoření obrázků a vzhledu aplikace byla použita trial verze Adobe Photoshop CS6. K zobrazení a procházení databáze WordNetu z Princetonu a WordNetů jiných jazyků byl použit textový editor PSPad a Notepad distribuovaný ve Windows. Zpracování a nahrání databáze mapování mezi WordNet a ImageNet bylo provedeno pomocí programu SQLite Database Browser
5.2 Popis projektu Finální aplikaci tvoří jeden soubor ImageLearning.apk, který lze použít k instalaci, nahrání na Google Play, či přímo do podporovaného zařízení. Soubor *.apk je tvořen pomocí Flash a je podepsán certifikačním záznamem, který má uživatel k dispozici, nebo který si vytvoří v programu Flash. Tento soubor obsahuje všechny zkomprimované soubory projektu a je tímto soběstačný. Soubory CButton.as, FileStreamWithLineReader.as a Main.as obsahují zdrojový kód celé aplikace. Soubory iconB/M/S.png jsou ikony, které se zobrazují na zařízení po instalaci. Main.fla v sobě udržuje informace o projektu a jeho nastavení. Ve složce „files“ jsou uloženy databázové soubory. Data.noun obsahuje kompletní databázi podstatných jmen WordNetu. Mapping.db obsahuje soubor mapping.txt ve formě čitelné pomocí SQL dotazů Ve složce „images“ jsou uloženy všechny obrázky, které se používají na ovládacích prvcích aplikace. Přímo ve složce jsou obrázky ovládacích prvků V podsložce „flag“ jsou vlajky států, používané na úvodní obrazovce
Obrázek 8: Stromová struktura projektu
Soubor Main.as obsahuje veškerou funkcionalitu, která se v aplikaci vyskytuje, kromě jedná výjimky, viz níže. CButton.as je soubor obsahující třídu, která vytváří všechny tlačítka v aplikaci. 17
Tuto třídu jsem vytvořil z důvodu potřeby velkého množství tlačítek, u kterých je potřeba nastavit obrázek, rozměry a pozici. Kód, který vytváří takto komplexní tlačítko je na 6-7 řádků. S pomocí této třídy, lze stejné tlačítko vytvořit na jednom řádku. Soubor FileStreamWithLineReader.as obsahuje rozšiřující třídu ke standardní FileStream, která se používá ke čtení souborů. Tato třída je výtvorem Sandeepa Gupty a je k dispozici na http://blog.sangupta.com/2010/12/actionscript-read-text-file-line-by.html. Je distribuována pod licencí APACHE 2.0 (http://www.apache.org/licenses/LICENSE-2.0). Jediná úprava v tomto souboru je změna projektu pod, který třída patří. Třída FileStreamWithLineReader rozšiřuje původní třídu o možnost čtení souboru po řádcích, čehož je dosáhnuto pomocí kontroly na ascii znaky používané k ukončení řádku - \r, \n nebo \r\n podle systému. Databáze mapping.db obsahuje jednu tabulku „map“, která má dva sloupce – „imagenet“ a „word“. Ve sloupci „imagenet“ jsou uloženy WNID, tak jak jsou používány ImageNetem, ve sloupci „word“ je uložen obsah odpovídajíc synsetů.
Tabulka 1: Část mapovací databáze
18
5.3 Uživatelské rozhraní Při vytváření této aplikace byl kladen důraz na jednoduchost uživatelského prostředí a rychlou odezvu. Z tohoto důvodu aplikace má minimální počet tlačítek, každé dostatečně velké, aby se zabránilo nechtěným překlepům. Jediná část aplikace, kdy je potřeba čekat je při spuštění, kdy se načítá databáze WordNetu. I během toho je možné aplikaci používat, ale Výuka není k dispozici. Průběh načítání je zobrazen pomocí progress baru (indikátor průběhu), který je po načtení odstraněn. V současné době se aplikace skládá ze 7 obrazovek, mezi kterými je možno se pohybovat. Hlavní obrazovka obsahuje přechod mezi Výukou a Testováním. Obě tyto obrazovky vedou na seznam dostupných kategorií, ze kterých si uživatel může vybrat. Poslední je Statistika, kde obsahuje možnost přepnutí vyučovaného jazyka.
Obrázek 9: Hlavní obrazovka
Obrazovka, ve které bude uživatel trávit nejvíce času je obrazovka Výuky. Ta umožnuje uživateli procházet zvolenou kategorii a v případě dostupného internetového spojení i zobrazit výraz pomocí obrazu. Hlavním prvkem této obrazovky je obraz. Je to dominantní část, jelikož je to hlavní prvek, který uživateli pomáhá pochopit zobrazovaný výraz. V blízkosti obrázku je textové pole obsahující vyučovaný výraz a ve spodní části pole s popisem. Pole s popisem, je vhodnější hlavně pro pokročilejší uživatele, vzhledem k tomu, že může obsahovat i pojmy v aplikaci nevysvětlené.
19
Obrázek 10: Obrazovka výuky
V případě nejasnosti obrazu, nebo potřeby si zobrazit různé obrázky k pojmu, má uživatel možnost obraz změnit.
5.4 Rozbor kódu Nejsložitější částí aplikace bylo vytvoření automatického procházení WordNet databáze a zobrazení relevantních dat. Jak jsem zmínil dříve, databáze má stromovou strukturu, kdy prvky, které nemají následovníky, nazýváme listy a prvek bez předchůdce kořenem.
Obrázek 11: Příklad části struktury pro kořen „Food, nutrient“
20
Na Obrázku 11 je vidět, že jeden prvek může mít i mnoho následovníků, některé i se stejným jménem. Rozdíl mezi prvky se stejným jménem je určuje pomocí významu. Číslo ve složených závorkách je pozice slova v databázi, číslo na konci řádku určuje kategorii slova. Protože WordNet obsahuje slova již rozdělená do kategorií, rozhodl jsem se je využít a při vytváření nové výukové kategorie jsou potřeba pouze dva údaje – pozice kořenu a kategorie. Při procházení databáze je bohužel vidět pouze adresa a slovní druh předchůdců, resp. následovníků, kontrolu, zda jsem ve správné kategorii je nutno provádět až po načtení nového záznamu. Vzhledem k tomu, že databáze obsahuje odkazy na předchůdce a následovníky, ale neobsahuje sousedy, rozhodl jsem se procházení do hloubky. Algoritmus hledání následujícího prvku prochází aktuální záznam a hledá, jestli existuje následovník. V případě nálezu se tento načte a zkontroluje, zda kategorie slova odpovídá výukové. V případě úspěšné kontroly ukončím prohledávání a nové nalezené slovo zobrazím. V případě neúspěchu kontroly se opakuje hledání dalšího následovníka. V případě, že se nenajde žádný následovník, algoritmus se vrací o úroveň výše a hledá následovníky tam.
Obrázek 12: Zjednodušený diagram vyhledávání následujícího slova
Dále funkce vyhledávání obsahuje kontrolu pozice, pro ukončení vyhledávání v případě dosažení konce souboru. Po skončení vyhledávání se slova a vysvětlení synsetu nastaví do 21
příslušných polí a aplikace se pokusí dohledat obraz. Slova synsetu jsou převedena do verze, která je používána v ImageNetu a do databáze je vytvořen SQL dotaz. Protože je možné, že synset byl rozšířen nebo upraven. Vyhledávání v databázi má dva kroky. První je dotaz na přesný obsah synsetu a v případě neúspěchu se dotazuji na záznamy, které jsou podobné, tzn., ty, které obsahují část záznamu. Tato část je závislá na dostupnosti internetu. V případě nedostupnosti internetu, nebo stránek ImageNetu se zobrazí univerzální chybový obrázek „Žádný obraze není k dispozici“. Od ImageNetu je možné dostat tři hlavní odpovědi v podobě souborů. První a očekávaný je soubor, který obsahuje odkazy na jednotlivé obrázky patřící do hledaného synsetu. V tomto případě je potřeba soubor číst po řádcích a nalezený soubor stáhnout a zobrazit. Protože ImageNet má záznamy pouze pro necelých 22 tisíc synsetů, je častá odpověď soubor, který obsahuje pouze text „The synset is not ready yet. Please stay tuned!“. V tomto případě se jedná o synset, který nemá žádné obrázky a místo toho se zobrazí univerzální chybový obrázek. Poslední možnou odpovědí je soubor obsahující „Invalid url!“. Tento případ by neměl nastávat, jelikož to značí chybu v použitém WNID.
Kód 1: Kód funkce pro vyhledávání dalšího záznamu
22
Pohyb mezi záznamy směrem zpět, tzn., k dříve zobrazeným, je jednodušší, protože si celý postup procházení ukládám do určené řady „pořadí“. Pokud se chci podívat na předchozí záznam, stačí vyhledat a odstranit poslední pozici z této řady a načíst záznam, který této pozici odpovídá.
5.5 Zhodnocení aplikace Finální verzi aplikace budu hodnotit pomocí stejných, či podobných, kritérií jako aplikace testované v 2. kapitole. Aplikace v současnosti nabízí pouze možnost výuky ve třech různých kategoriích. Každá kategorie obsahuje kolem jednoho tisíce záznamů, čímž se dostává na stejnou úroveň jako aplikace od Babbelu a Duolinga. Bohužel obrazová databáze již tak rozsáhlá není, a existují výrazy, které nemají dostupný odpovídající obraz. Pro aplikaci, která pro vysvětlení výrazu spoléhá hlavně na obrazovou informaci, je to značná nevýhoda.
Výhodou je přítomnost vysvětlení pojmu a u složitějších, či nejasnějších i příklad použití. Další výhodou je malá velikost aplikace (7,7 MB) a tato velikost se nemění přidáním dalších kategorií. Nevýhodou je nutnost přihlášení k internetu pro zobrazení vysvětlujících obrázků a délka čekání na stažení a zobrazení závislá na rychlosti připojení.
5.6 Možnosti rozšíření Možností jak aplikaci rozšířit je několik. První z nich je přidání, resp., zprovoznění možnosti testování nabytých znalostí. S tím souvisí i zobrazení statistik, ať již z výsledků testů, kde je
23
možné sledovat a porovnávat výsledky, nebo i samotné výuky, kdy se dá sledovat počet zobrazených slov pro každou kategorii. Aplikace je již připravená pro rozšíření počtu kategorií o dalších 6, kdy jsou připraveny tlačítka i funkce, chybí pouze vhodné definování kořenového slova a kategorie. To možné zkombinovat s analýzou databáze ImageNetu a vybrat takové kategorie, u kterých je větší pravděpodobnost existence obrazového záznamu. Vzhledem k tomu, že ImageNet obsahuje obrazy přibližně pouze pro čtvrtinu záznamů WordNetu, automatické procházení a kontrola existence odkazů pro daný synset by snížila počet zobrazených slov, pro která se zobrazí chybový obraz „Obraz není k dispozici“. Jiný přístup je využití vyhledávání pomocí images.google.com, nebo jiného vyhledávacího portálu. Časově nejnáročnější vylepšením je vytvoření vlastní obrazové databáze pro synsety, které zatím nemají žádná data v ImageNetu. Toto vylepšení, ale jde proti myšlence bakalářské práce, kde byla snaha o získání co nejširší databáze s minimem lidské práce.
6 Závěr V rámci bakalářské práce jsem podle zadání provedl analýzu dostupných aplikací, jejich předností a nedostatků a podle zjištěných informací navrhl a následně vyvinul vlastní aplikaci. Při tvorbě aplikace jsem se soustředil na jednoduchost, rychlost a přehlednost jako klíčové prvky. Při tvorbě databáze slov a obrazů jsem se zaměřil na eliminaci lidské práce s využitím dostupných prostředků. K tomuto účelu byla do aplikace zapracována databáze WordNetu a volně přístupné odkazy na obrázky z ImageNetu. Hlavní částí této práce je samotná aplikace a její implementace. Během programování jsem si prohloubil znalosti programovacího jazyku ActionScript 3 a vývojového prostředí Flash. Získané dovednosti mohu použít při vývoji dalších aplikací či rozšíření této. Výsledkem bakalářské práce je funkční aplikace pro telefony a tablety s operačním systémem Android. V prezentované verzi ji lze omezeně využít pro výuku v rámci definovaných kategorií. Tímto jsem splnil zadání bakalářské práce ve všech jejích bodech.
24
Literatura [1] WordNet – slovní databáze anglických slov http://wordnet.princeton.edu/ [2] ImageNet – obrazová databáze http://image-net.org/index [3] Adobe Creative Suite – vývojové prostředí Flash Professional CS6 a Photoshop CS6 http://www.adobe.com/cz/products/cs6.html [4] Sandeep Gupta – třída pro čtení souborů po řádcích http://blog.sangupta.com/2010/12/actionscript-read-text-file-line-by.html [5] ActionScript 3 – webová nápověda http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/ [6] Stack over flow – webové diskuzní fórum pro vývojáře http://stackoverflow.com/ [7] Dream In Code - – webové diskuzní fórum pro vývojáře http://www.dreamincode.net/
25
Příloha 1 – Licence WordNet Dostupná na adrese http://wordnet.princeton.edu/wordnet/license/ WordNet Release 3.0 This software and database is being provided to you, the LICENSEE, by Princeton University under the following license. By obtaining, using and/or copying this software and database, you agree that you have read, understood, and will comply with these terms and conditions.: Permission to use, copy, modify and distribute this software and database and its documentation for any purpose and without fee or royalty is hereby granted, provided that you agree to comply with the following copyright notice and statements, including the disclaimer, and that the same appear on ALL copies of the software, database and documentation, including modifications that you make for internal use or for distribution. WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. THIS SOFTWARE AND DATABASE IS PROVIDED "AS IS" AND PRINCETON UNIVERSITY MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PRINCETON UNIVERSITY MAKES NO REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE, DATABASE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. The name of Princeton University or Princeton may not be used in advertising or publicity pertaining to distribution of the software and/or database. Title to copyright in this software, database and any associated documentation shall at all times remain with Princeton University and LICENSEE agrees to preserve same.
26
Příloha 2 – Licence Apache v2 Dostupná na http://www.apache.org/licenses/LICENSE-2.0 TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by 27
an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: 1. You must give any other recipients of the Work or Derivative Works a copy of this License; and 2. You must cause any modified files to carry prominent notices stating that You changed the files; and 3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and 4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution
28
notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NONINFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial
29
damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS
30