VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Podobné dokumenty
SYSTÉM PRO KONTROLU SLOVNÍKŮ

Experimentální systém pro WEB IR

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

1. Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

Vyhledávání na portálu Knihovny.cz

Tutoriál. DynaMed ~ Aplikace DynaMed na zařízeních android.

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

FRED & PostgreSQL. CZ.NIC, z.s.p.o. Jaromír Talíř <jaromir.talir@nic.cz>

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

INDEXY JSOU GRUNT. Pavel Stěhule

HODNOCENÍ FINANČNÍ SITUACE PODNIKU A NÁVRHY NA JEJÍ ZLEPŠENÍ

Semestrální práce z DAS2 a WWW

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Bottle -- příklad. Databáze. Testovací data. id Jedinečný identifikátor řádku: Bude typu INT s AUTO_INCREMENT a nastavíme ho jako primární klíč

České vysoké učení technické v Praze. Fakulta Elektrotechniky XD39NUR. Semestrální práce. Ovládání videokonferencí pomocí mobilního telefonu

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Databázové systémy. Cvičení 6: SQL

Vývoj SW pro mobilní zařízení s ios. Petr Hruška, Skymia s.r.o. Teorie a praxe IP telefonie,

ODBORNÁ KNIHOVNA ČESKÉ POJIŠŤOVNY ONLINE SW ŘEŠENÍ AIP SAFE

Ukládání a vyhledávání XML dat

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Instalace a konfigurace OpenAdmin tool na M$ a Linuxu

PostgreSQL. Podpora dědičnosti Rozšiřitelnost vlastní datové typy. Univerzální nasazení ve vědecké sféře

[APLIKACE PRO PŘEHRÁVÁNÍ VIDEA - PROJEKT MIAMI]

Jazyk C# - přístup k datům

TS-509 Pro Turbo NAS. instalační příručka

WWW dotazovací služby pro prostorová data URM. Jiří Čtyroký Útvar rozvoje hl. m. Prahy

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

SQL injection princip a ochrana

Virtuální datacentrum na ovirt způsob

Vazba ESO9 na MS Outlook a MS Exchange

Obsah. O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10. Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Angličtina program k procvičování slovní zásoby

Bezdrátový mikroadaptér N300 USB (N300MA)

Poznámky k verzi Remote support platform 3.1

Ovladač pro bezdrátové snímače začleněné do řízení v realném čase (modul VMonDrv) Uživatelská příručka

MBI - technologická realizace modelu

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Vývoj aplikací v Qt pro mobilní zařízení

Měření teploty, tlaku a vlhkosti vzduchu s přenosem dat přes internet a zobrazování na WEB stránce

Petr Nevrlý

Zranitelnosti webových aplikací. Vlastimil Pečínka, Seznam.cz Roman Kümmel, Soom.cz

Domino 10 nové komponenty a související témata (node.js, ES )

Optimalizace dotazů a databázové transakce v Oracle

Programovací jazyky Přehled a vývoj

Použití databází na Webu

4IT218 Databáze. 4IT218 Databáze

Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))

Distanční opora předmětu: Databázové systémy Tématický blok č. 7: Fulltextové vyhledávání Autor: RNDr. Jan Lánský, Ph.D.

Databázové systémy úvod

Linux na mobilních telefonech

Apache Cordova (PhoneGap 3)

PŘÍRUČKA K PRÁCI S DATABÁZÍ CAB REVIEWS

Full-textové vyhledávání. Július Štroffek Revenue Product Engineer Sun Microsystems

SMĚRNICE REKTORA Č. 9/2007

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Databáze MS-Access. Obsah. Co je to databáze? Doc. Ing. Radim Farana, CSc. Ing. Jolana Škutová

GPS lokátor s výdrží až 180 dní

cstore_fdw column store pro PostgreSQL Prague PostgreSQL Developer Day 2015 Jan Holčapek

Virtual Private Database (VPD) Jaroslav Kotrč

Vladimír

KIV/ZIS cvičení 5. Tomáš Potužák

Systém elektronického rádce v životních situacích portálu

ÚVOD DO DATABÁZÍ. Metodické listy pro předmět

KAPITOLA 1 Představení platformy Microsoft SQL Server 2008

Ant aneb Ferda Mravenec, práce všeho druhu

eliška 3.04 Průvodce instalací (verze pro Windows 7) w w w. n e s s. c o m

Informační systém pro rezervaci pokojů hotelu SPORT

NAS 107 Seznámení s Control Center

7. Enterprise Search Pokročilé funkce vyhledávání v rámci firemních datových zdrojů

Verze 1.x 2.x 3.x 4.x 5.x. X X X X uživatelům (správcům) systému Řazení dat v přehledech podle jednotlivých sloupců

RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague

Administrace počítačových sítí. WEB a LPT

Internet 2 css, skriptování, dynamické prvky

Využití XML v DB aplikacích

KMI / TMA Tvorba mobilních aplikací. 6. seminář ZS 2016/2017 Středa 13:15-15:45

Modely vyhledávání informací 4 podle technologie. 1) Booleovský model. George Boole Aplikace booleovské logiky

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 26.3.

PŘEPOČET KOTLE PŘI DÍLČÍM VÝKONU

ZÁKLADNÍ METODY REFLEKTOMETRIE

Novinky v PostgreSQL 9.4. Tomáš Vondra, 2ndQuadrant

Odborná terminologie knihovnictví a informační vědy očima uživatelů databáze TDKIV Předběžné výsledky projektu. Helena Kučerová VOŠIS Praha

Infor ERP Baan / ERP LN. Návaznost podporovaných OS na implementované SP a FP. Zdeněk Špidla

Jak na Medline efektivně

RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

modrana: flexibilní navigační systém Martin Kolman

Střední odborná škola a Střední odborné učiliště, Hořovice

Transkript:

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA VYHLEDÁVÁNÍ MULTISLOVNÍCH SPOJENÍ NA PLATFORMĚ OS ANDROID BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR VOJTĚCH BABIČ BRNO 2013

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA VYHLEDÁVÁNÍ VÍCESLOVNÍCH SPOJENÍ NA PLATFORMĚ OS ANDROID MULTIWORD EXPRESSION SEARCH ON ANDROID MOBILE DEVICES BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR VOJTĚCH BABIČ VEDOUCÍ PRÁCE SUPERVISOR Doc. RNDr. PAVEL SMRŽ, Ph.D. BRNO 2013

Obsah

1. Úvod

2. Analýza problému 2.1. Současná rozhraní

2.2. První návrh řešení

3. Lexical Markup Framework 3.1. Struktura

3.2. Core package

<LexicalResource dtdversion='16'> <GlobalInformation> <feat att='languagecoding' val='iso 639-3'/> </GlobalInformation> <Lexicon>... </Lexicon> <Lexicon>... </Lexicon> </LexicalResource>

3.3. Morphology package

3.4. Machine Readable Dictionary package

<LexicalEntry id='id123456'> <feat att='partofspeech' val='noun'/> <Lemma> <feat att='writtenform' val='rekapitulace'/> </Lemma> <WordForm> <feat att='grammaticalnumber' val='singular'/> <feat att='grammaticalgender' val='feminine'/> <feat att='writtenform' val='rekapitulace'/> </WordForm> <WordForm>... </WordForm> <Sense> <feat att='sensenumber' val='1'/> <Equivalent> <feat att='language' val='eng'/> <feat att='gloss' val='shrnutí'/> <feat att='writtenform' val='résumé'/> </Equivalent> <Equivalent>... </Equivalent> <Context> <TextRepresentation> <feat att='language' val='ces'/> <feat att='writtenform' val='pojďme rekapitulovat.'/> </TextRepresentation> <TextRepresentation> <feat att='language' val='eng'/> <feat att='writtenform' val='let&apos;s recapitulate.'/> </TextRepresentation> </Context> </Sense> <Sense>... </Sense> </LexicalEntry>

4. StarDict 胡正

4.1. Formát Stardict 4.2..ifo soubor StarDict's dict ifo file version=2.4.2

ls -l mydict.idx autor StarDict's dict ifo file version=3.0.0 bookname=cz-en wordcount=104839 idxfilesize=2004039 date=2012.12.31 4.3..idx soubor

4.4..dict soubor

4.5..syn soubor 4.6. Automaticky generované soubory 4.6.1..clt soubory

===== StarDict's clt file version=2.4.8 ===== url=/usr/share/stardict/dic/mydict/mydict.idx func=0 4.6.2..oft subory ===== StarDict's oft file version=2.4.8 ===== url=/usr/share/stardict/dic/mydict/mydict.idx 4.7. DICT soubor

t h m W P r 4.8. Resource Storage res/ 4.8.1. soubor res.rifo

StarDict's storage ifo file version=3.0.0 filecount=177 idxoffsetbits=64 ridxfilesize=36200500 4.8.2. soubor res.rdic 4.8.3. soubor res.ridx pics/a/apple.jpg

4.9. Tree Dictionary 4.9.1. soubor.ifo StarDict's treedict ifo file version=2.4.2 atribut=hodnota

4.9.2. soubor.tdx ls -l mydict.tdx

5. Návrh řešení, implementace http://

5.1. Slovníková databáze

CREATE VIRTUAL TABLE dict_fraze USING fts4

5.1.1. Dotazy na slovníkovou databázi Vyhledání přesné shody SELECT dict_lemma.rowid AS _id, lemma_textfts FROM dict_lemma WHERE dict_lemma MATCH "lemma_textfts:belo* OR lemma_bez_diakritikyfts:belo*" LIMIT 100 Fulltext hledání SELECT dict_lemma.rowid AS _id, fraze_origfts as fraze_orig, fraze_preklad, dict_lemma.lemma_textfts AS lemma_text,dict_lemma_preklad.lemma_preklad_text FROM (SELECT rowid, * FROM dict_fraze WHERE fraze_origfts MATCH "krásný" UNION ALL SELECT rowid, * FROM dict_fraze WHERE fraze_lemmatizovanafts MATCH "krásný" ) AS vyhledane_fraze LEFT JOIN dict_fraze_preklad ON vyhledane_fraze.rowid = dict_fraze_preklad.fraze_preklad_id LEFT JOIN dict_lemma_preklad ON dict_fraze_preklad.lemma_preklad_id = dict_lemma_preklad.lemma_preklad_id LEFT JOIN dict_lemma ON dict_lemma_preklad.lemma_id = dict_lemma.rowid LIMIT 100

Zobrazení hesla SELECT rowid AS _id, dict_lemma.predgenerovany_html_preklad FROM dict_lemma WHERE _id = '34' 5.2. Konvertor slovníků 5.2.1. Převodní skript /mnt/minerva1/nlp/projects/ma/

EN-CZ slovník LMF skript indexační skript indexační CZ-EN slovník LMF Index ElasticSearch Index ElasticSearch CZ-EN slovník LMF skript převodní CZ-EN slovník SQLite Lemmatizátor 5.2.2. Rozhraní skriptů czen-lmf.xml encz-lmf.xml index_prepare.py index_prepare.py [-h] --estype ESTYPE infile $ python index_prepare.py lmf_dicts/czen-lmf.xml --estype=cs $ python index_prepare.py lmf_dicts/encz-lmf.xml --estype=en lmf2sql config.ini cs lmf2sql en lmf2sql.py

$ python lmf2sql.py lmf_dicts/czen-lmf.xml --fromto=csen -lemmatize --estypefrom=cs --estypeto=en --sqlite-outfile=csen.sqlite --verbose $ python lmf2sql.py lmf_dicts/encz-lmf.xml --fromto=encs -lemmatize --estypefrom=en --estypeto=cs --sqlite-outfile=encs.sqlite --verbose lmf2sql.py 21:04:13 Predpokladam, ze vstupni slovnik je z 'cs' do 'en' 21:04:13 Vstupni LMF slovnik:../../lmf_dicts/czen-lmf.xml 21:04:13 Pripojuji k ElasticSearch serveru (127.0.0.1:9200) a otviram index/type: lmf2sql/cs. 21:04:13 Toto spojeni predstavuje pripojeni k indexu obsahujici cs jazyk. Lemmatizace pro tento jazyk je podporovana a bude pouzita. 21:04:13 Pripojuji k ElasticSearch serveru (127.0.0.1:9200) a otviram index/type: lmf2sql/en. 21:04:13 Toto spojeni predstavuje pripojeni k indexu obsahujici en jazyk. Lemmatizace pro tento jazyk je podporovana a bude pouzita. 21:04:13 Vytvorena cista databaze: csen.sqlite 21:04:13 Parsuji XML a generuji obsah sqlite databaze... 21:04:14 Jiz vlozeno 00000 lemmat. Jsme u "a to, a sice" 21:04:18 Jiz vlozeno 00100 lemmat a ES serveru jsme se dotazali 2538x. Jsme u "abrazivní" 21:04:20 Jiz vlozeno 00200 lemmat a ES serveru jsme se dotazali 4748x. Jsme u "abundance"... 22:34:58 Jiz vlozeno 106400 lemmat a ES serveru jsme se dotazali 4494412x. Jsme u "žňový" 22:35:03 Commituji zmeny v db 22:35:03 Zacinam vytvaret SQL indexy 22:35:15 Indexy přidány 22:35:15 Finalizovani slovniku: pridavam HTML obsahy 22:37:12 Celkem vlozeno 106481 lemmat. 22:37:12 Commituji zmeny v db 22:37:12 Zaviram db 22:37:12 Dokonceno. Behem prevadeni bylo provedeno celkem 4497844 dotazu na ElasticSearch server. 5.3. Android aplikace

dict://slovnik/heslo dict://czen/vst%c3%a1vat 6. Testování time

6.1. Python skript Vytvoření ElasticSearch indexu 6.2. Python skript Generování souboru se slovníkem

6.3. Android aplikace prohledávání slovníku Obrazovka 1, vrchní polovina: vyhledání přesné shody Obrazovka 1, spodní polovina: fulltext hledání Obrazovka 2: zobrazení hesla

7. Závěr

8. Literatura 我编的主要软件

Používaná terminologie

Core package

Morphology package

Machine Readable Dictionary package

OS X port $ sudo port install boost $ sudo port install swig $ sudo port install swig-python /mnt/minerva1/nlp/projects/ma/ CXX = g++ -dynamiclib -undefined suppress -flat_namespace CXXFLAGS = `python-config --includes` -lstdc++ -fpic $ cd ma && make clean && cd - $ cd libma && make clean && cd - $ cd pylibma && make clean && cd - $ rm libma/libma.a libma/libma.so $ cd pylibma $ make

BetterDictCreator/ ma/ libma/ pylibma/... unidecode/ soubory python knihovny unidecode lmf_dicts/ czen-lmf.xml encz-lmf.xml lemmatizer.conf lmf2sql.py index_prepare.py config.ini $ cd /usr/local/share/elasticsearch $ sudo bin/service/elasticsearch start $ cd - [config] esserver = 127.0.0.1:9200 esindex = lmf2sql czen-lmf.xml encz-lmf.xml $ python index_prepare.py lmf_dicts/czen-lmf.xml --estype=cs $ python index_prepare.py lmf_dicts/encz-lmf.xml --estype=en $ python lmf2sql.py lmf_dicts/czen-lmf.xml --fromto=csen -lemmatize --estypefrom=cs --estypeto=en --sqlite-outfile=csen.sqlite --verbose $ python lmf2sql.py lmf_dicts/encz-lmf.xml --fromto=encs -lemmatize --estypefrom=en --estypeto=cs --sqlite-outfile=encs.sqlite --verbose

Linuxové systémy $ sudo apt-get install build-essential python-dev swig libboost-dev CXXFLAGS = `python-config --includes` -lstdc++ -fpic

<rref type="image" attach="./img/e/example.png"> <kref k=""> 台灣語言音標方案 (TLPA) 3

img:pics/a/apple.jpg snd:sounds/a/apple.wav vdo:movie.avi att:file.bin W P