IMPLEMENTACE HRY MYSLÍM SI ZVÍŘE Implementation of the 20 Questions Game
Total Page:16
File Type:pdf, Size:1020Kb
Masarykova univerzita Fakulta informatiky Studijní obor: Informační systémy IMPLEMENTACE HRY MYSLÍM SI ZVÍŘE Implementation of the 20 Questions Game Diplomová práce Vedoucí diplomové práce: Autor: RNDr. Zuzana Nevěřilová Štěpán PŘICHYSTAL Brno, 2014 Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samo- statně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Štěpán Přichystal Poděkování Rád bych na tomto místě poděkoval vedoucí diplomové práce paní RNDr. Zuzaně Nevěřilové za odborný dohled, cenné rady a dostatek prostoru pro vlastní iniciativu. Rovněž poděkování patří i mým blízkým za podporu a poskytnutí potřebného zázemí během tvoření této práce. Jméno a příjmení autora: Štěpán Přichystal Název diplomové práce: Implementace hry Myslím si zvíře Název práce v angličtině: Implementation of the 20 Questions Game Katedra: Katedra informačních technologií Vedoucí diplomové práce: RNDr. Zuzana Nevěřilová Rok obhajoby: 2014 Anotace Předmětem diplomové práce je implementace počítačové verze hry Myslím si zvíře a zamě- ření se na oblast her s účelem. Myšlenkou her s účelem je využití široké komunity pro řešení konkrétního problému prostřednictvím jednoduché hry. Úkolem implementované hry je budování znalostní báze obsahující znalosti o objektech reálného světa a jejich vlastnostech. Algoritmus hry je založen na hledání podobností objektů pomocí metrik založených na geometrickém modelu dat. Hra využívá lexikální databázi WordNet či sémantickou síť ConceptNet, která je zdrojem common sense faktů. Data z těchto zdrojů jsou využívána například strategií hry nebo pro automatické generování otázek použitých ve hře. Hra je navržená jako internetová aplikace s cílem oslovit co nejvíce hráčů. Annotation The subject of the thesis is the implementation of the computer version game Twenty Questions and focus on the area of games with a purpose. The idea of games with a purpose is the use of a broad community to address a specific problem through simple games. The aim of the implemented game is to build knowledge base which contains knowledge of real-world objects and their properties. The algorithm of the game is based on finding similarities of objects, by using metrics and all is based on a geometric model. The game uses a lexical database WordNet, or ConceptNet semantic network, which is a source of common sense facts. Data from these sources are used by strategy of game as well as for automatic generation of the questions which are used in the game. The game is designed as a web application in order to reach high number of players. Klíčová slova GWAP, hry, Myslím si zvíře, sémantická síť, korpus, geometrický model dat, podobnost objektů Keywords GWAP, games, Twenty Questions, semantic network, corpora, geometric data model, objects similarity Obsah 1 Úvod..................................................................................................................................1 2 Hry s účelem.....................................................................................................................2 2.1 Úvod..........................................................................................................................2 2.2 Obecně o hrách s účelem...........................................................................................2 2.3 Typy aplikací.............................................................................................................3 2.3.1 Shoda na výstupu (output-agreement)............................................................3 2.3.2 Problém inverzní shody (inversion-problem).................................................3 2.3.3 Shoda na vstupu (input-agreement)................................................................4 2.4 Příklady aplikací........................................................................................................4 2.4.1 ESP Game.......................................................................................................4 2.4.2 Peekaboom......................................................................................................5 2.4.3 Verbosity.........................................................................................................6 2.4.4 20Q .................................................................................................................7 2.4.5 Akinator..........................................................................................................8 3 Analýza a návrh..............................................................................................................8 3.1 Požadavky na na aplikaci..........................................................................................9 3.1.1 Základní notace, poznámky k pojmům ........................................................10 3.2 Výběr počátečních dat a iniciálních znalostí ..........................................................11 3.2.1 Použité zdroje................................................................................................12 3.2.1.1 WordNet.........................................................................................12 Struktura.........................................................................................12 Rozsah dat a použití v projektu......................................................13 3.2.1.2 ConceptNet.....................................................................................15 Struktura.........................................................................................15 Rozsah dat a použití v projektu......................................................16 3.2.1.3 Wikipedia, DBpedia.......................................................................17 Použití v projektu...........................................................................17 3.2.1.4 Doplňující zdroj.............................................................................17 3.2.1.5 Přehled využití zdrojů....................................................................18 3.3 Reprezentace znalostí..............................................................................................19 3.3.1.1 Výpočet váhy relace..................................................................................20 3.4 Generování otázek...................................................................................................23 3.4.1 Požadavky.....................................................................................................23 3.4.2 Možné přístupy.............................................................................................24 3.4.3 Princip generování........................................................................................25 3.4.3.1 Gramatika otázek...........................................................................26 3.4.3.2 Možné problémy............................................................................27 3.5 Strategie hry............................................................................................................28 3.5.1 Obecný algoritmus.......................................................................................28 3.5.2 Výběr obecných otázek................................................................................32 3.5.2.1 Přístup 1: náhodný výběr s filtrem.................................................32 3.5.2.2 Přístup 2: výběr na základě rozhodovacího stromu.......................33 3.5.3 Klasifikátor objektů.....................................................................................35 3.5.3.1 Podobnost objektů..........................................................................36 Vybrané metriky............................................................................37 3.5.3.2 Konečný výpočet skóre..................................................................40 3.5.4 Matice otázek...............................................................................................41 4 Implementace.................................................................................................................43 4.1 Architektura.............................................................................................................43 4.2 Serverová část..........................................................................................................44 4.2.1 Popis..............................................................................................................44 4.2.2 Hlavní aplikace.............................................................................................44 4.2.2.1 Modul QCore..................................................................................45 4.2.2.2 Modul QGenerator..........................................................................47 4.2.2.3 Modul QConnector..........................................................................47 4.2.2.4 Modul QHelper...............................................................................48 4.2.3 Webové rozhraní...........................................................................................48 4.2.3.1 Popis technologie, použití API........................................................48 4.2.4 Databáze.......................................................................................................50 4.2.5 Nastavení, export dat...................................................................................51