Theses Topics 2011/2012

Note: parts of the rest of this document are written in Estonian in case working on the respective project requires knowledge of Estonian.

Estonian speech recognition on Android smartphones

TTÜ Küberneetikainstituudi kõnetuvastusveebiteenust on võimalik väga lihtsal viisil kasutada Androidi rakendustest, eeldusel et telefoni on installeeritud Kõnele-rakendus. Siin väljapakutud projektide sisuks on luua erinevaid rakendusi Androidi nutitelefonidele, kus kasutajasisendiks on eestikeelne kõne, millele vastava transkriptsiooniga rakendus midagi huvitavat peale hakkab. Ühe võimaliku näitena võib vaadelda rakendust Arvutaja (vt ka lähtekood).

Järgnevalt on ära toodud kaks konkreetset teemat.

Tark abiline

Nutitelefonis iPhone 4S on kesksel kohal tark abiline Siri, mis mõistab telefoniomaniku juttu ja sooritab sellele vastavaid toiminguid. Sarnaseid rakendusi on loodud ka Androidile. Tüüpiliselt mõistavad need abilised ainult inglise keelt.

Selle projekti eesmärk on luua rakendus, mis mõistab erinevaid eestikeelseid käske ning sooritab need teiste telefonis olevate rakenduste (kalender, brauser, pleier, ...) abil. Näited käskudest on:

Kui käsklused on keerukamad siis võib kaaluda nende süntaktilist analüüsi, mida võib teha olemasolevate kõnetuvastusgrammatikate abil või kasutades mõnd veebiteenust (nt Kinoagent).

Hääldamismäng

Selle projekti eesmärk on luua lihtne mäng, kus mängijal palutakse ette lugeda mingi hulk ette antud sõnu, fraase ja lauseid. Mängija eesmärk on sõnu hääldada korralikult, nii et kõnetuvastaja need õigesti transkribeeriks. Iga õigesti transkribeeritud sõna eest saab punkte. Peale selle, et mängu on lõbus mängida, on sellel ka sisulisem väärtus, kuna see loob platvormi, mis võimaldab (crowdsourcing meetodil) testida, kalibreerida ja hinnata kõnetuvastaja hetkeversiooni ja/või koguda kõnekorpust.

Terviklahendusel on kaks komponenti: rakendus Android-telefonis (suhteliselt lihtne) ning veebiteenus sisendlausete genereerimiseks ning mängutulemuste haldamiseks.

Telefonis on sisuliselt ainult lihtne kasutajaliides, mis (1) näitab kasutajale ettelugemiseks sõnu, (2) kutsub välja kõnetuvastusmooduli (Kõnele) nende sõnade lindistamiseks ja transkribeerimiseks, ning (3) võrdleb transkriptsiooni kokkulangemist esialgsete sõnadega. Telefoni-rakendus suhtleb veebiteenusega, mis genereerib etteantavad sõnad ning salvestab saadud tulemused.

Veebiteenus genereerib etteantud teema ja raskusastmega sõnu, ning säilitab kõikide kasutajate tulemused, mille põhjal saab arvutada edetabeleid ja statistikat. Veebiteenuse tegemiseks võiks kasutada nt Google App Engine'it (programmeerimine Javas või Pythonis).

Grammatical Framework and Estonian language

Grammatical Framework (GF) on loomulike keelte töötluse raamistik, mille põhifookus on grammatikate esitamisel inimloetavate reeglitena, mitmekeelsusel ning täpsel masintõlkel. Mõte on selles, et kui mingi keele grammatika on raamistikus kirjeldatud, siis saab kohe "tasuta kaasa" võimaluse selle keele tekste teistesse implementeeritud keeltesse tõlkida, ning vastupidi. GF on nt kasutatav mitmekeelsetes rakendustes, kus keel on sõnavaraliselt ja süntaktiliselt piiratud (nt turistisõnastik, tarkvara lokaliseerimine, matemaatika ülesanded, vt ka demosid). GFi töövahendid on platvormist sõltumatud, vaba tarkvara, ja on lihtsalt kasutatavad veebi- ja mobiilirakendustes.

Hetkel on raamistikus implementeeritud ~20 keelt, peale euroopa keelte ka erinevaid eksootilisemaid keeli. Eesti keele tuge (st resource grammar) aga seal veel pole. Allpool kirjeldatud projektide üldisem eesmärk on see tugi sinna lisada.

GF-alased projektid sobivad tudengile, kes huvitub reeglipõhisest keeletehnoloogiast ning selle kohesest kasutamisest erinevates rakendustes.

Rakendusgrammatika ja kõnetuvastus

Selle projekti eesmärk on luua GF rakendusgrammatika (application grammar) mingi konkreetse rakenduse jaoks (roboti juhtimine, kalkulaatori kasutamine, sündmuste lisamine kalendrisse, aadressi otsing kaardirakenduses), mida saaks lisaks kasutada Küberneetikainstituudi kõnetuvastusserveris. See server võimaldab kõnetuvastust juhtida lihtsa Backus-Naur-stiilis grammatika (JSGF) abil, aga on arvata, et kasutaja sooviks grammatikaid kirjutada mingis rikkamas/mugavamas formalismis, mis nt toetab unifikatsiooni, modulaarsust, võimaldab tuvastatud teksti normaliseerida (nt "kaksteist liitrit" -> "12l", "kuueteistkümnes september" -> "2011-09-16"), on lihtsamini testitav, jne. Enamus juhtudest õnnestub sellist rikkas grammatikas kirjeldatud keelt kõnetuvastuses kasutada. Näiteks on GFis juba realiseeritud teisendus JSGF formaati.

Üheks võimalikuks teemaks on eesti keele ajaväljendite grammatika kirjeldamine koos automaatse teisendusega mingile kanoonilisele kujule ("kaheksateistkümnes november kell pool üks hommikul" -> "2011-11-18 00:30"). Sellist grammatikat saaks nt kasutada koos eesti keele kõnetuvastusega Androidi kalendri- ja meelespearakendustes (vt ka ülalpool kirjeldatud teemasid).

Eesti keele morfoloogia

Eesti keele arvutimorfoloogiat on kirjeldatud juba kolmel moel (vt Filosoft, EKI, kahetasemeline morfoloogiamudel). Selle projekti eesmärk on kirjeldus uues raamistikus (GF) ning hinnang, kas GF on mugav kasutada eesti keele morfoloogia kirjeldamiseks ning kas lõpptulemus on lihtsasti hallatav (nt lingvistile loetav ja muudetav). Projekti sisuks oleks ka võrdlus olemasolevate eesti arvutimorf. kirjeldustega, ning katvuse ja korrektsuse testimine automaatselt.

Eesti keele süntaks (eesti keele ja soome keele võrdlus)

GFis implementeeritud keelte hulgas leidub juba soome keel. Projekti eesmärk on uurida kuivõrd lihtne (ja elegantselt teostatav) on eesti keele grammatika implementeerimine soome keele grammatika baasil, st millised osad on "päritavad" ning mis tuleb "ülelaadida". Selles projektis on fookus süntaksil, mitte morfoloogial.

Piiratud eesti keel ja OWL

Projekti eesmärk on semantilise veebi keelele OWL piiratud eestikeelse liidese loomine, samas stiilis kui seda tehti läti keelele (vt ACE compliant controlled Latvian for ontology authoring and verbalization), kus läti keel teisendati GFi abil automaatselt ACE keeleks (mille jaoks on olemas minu doktoritöös tehtud kahesuunaline ACE-OWL teisendus).

Controlled English for knowledge representation

These topics study the use of controlled English — specifically Attempto Controlled English (ACE) — for writing and verbalizing statements in existing formal logical languages, with the focus on the semantic web languages (OWL, SWRL, SPARQL, ...).

Below two topics are proposed, but students are welcome to propose their own.

Bidirectional translator from ACE to SPARQL

SPARQL is a popular query language for RDF datasets with a standard syntax that looks verbose and too remote from natural language and can therefore scare off potential users. For example, instead of reading/writing

SELECT ?title
WHERE
{
  <http://example.org/book/book1> <http://purl.org/dc/elements/1.1/title> ?title .
}

users might prefer to read/write (a semantically equivalent) pseudo-natural language question:

What is a dc:title of ex:book1?

The task of the project is to propose a fragment of English (ideally based on ACE) and implement a tool that allows for a bidirectional translation between (a reasonably large subset of SPARQL) and this English fragment. Such a tool would allow one to formulate SPARQL-compatible semantic web queries in a fragment of natural English, and explain the meaning of existing SPARQL queries.

Suggested programming language is Prolog, but other languages are fine as well.

SWRL verbalizer

SWRL is a rule language for expressing semantic web ontologies, e.g. it is used as an extension of the OWL ontology language in ontology editors like Protégé.

The task of this project is to extend an existing OWL verbalizer to also verbalize SWRL rules.

Programming language: Prolog

Kaarel Kaljurand 2011-11-18