abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 05:55 | Komunita

Dries Buytaert, autor a vedoucí projektu Drupal a prezident Drupal Association, požádal soukromě před několika týdny Larryho Garfielda, jednoho z klíčových vývojářů Drupalu, aby projekt Drupal opustil. Larry Garfield minulý týden na svých stránkách napsal, že důvodem jsou jeho BDSM praktiky a rozpoutal tím bouřlivou diskusi. Na druhý den reagoval Dries Buytaert i Drupal Association. Pokračuje Larry Garfield [reddit].

Ladislav Hagara | Komentářů: 2
dnes 04:44 | Humor

Společnost SAS zveřejnila na svých stránkách studii s názvem Open Source vs Proprietary: What organisations need to know (pdf). Organizace by měly například vědět, že ideální je mix 40 % open source softwaru a 60 % proprietárního softwaru [Slashdot].

Ladislav Hagara | Komentářů: 0
včera 23:33 | Zajímavý software

Byl vydán ShellCheck ve verzi 0.4.6. Jedná se o nástroj pro statickou analýzu shellových skriptů. Shellové skripty lze analyzovat na webové stránce ShellChecku, v terminálu nebo přímo z textových editorů. Příklady kódů, na které analýza upozorňuje a doporučuje je přepsat. ShellCheck je naprogramován v programovacím jazyce Haskell. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GPLv3.

Ladislav Hagara | Komentářů: 0
včera 23:33 | Pozvánky

Czech JBoss User Group zve na setkání JBUG v Brně, které se koná ve středu 5. dubna 2017 v prostorách Fakulty informatiky Masarykovy univerzity v místnosti A318 od 18:00. Přednáší Pavol Loffay na téma Distributed Tracing and OpenTracing in Microservice Architecture.

… více »
mjedlick | Komentářů: 0
včera 11:33 | Zajímavý článek

Národní centrum kybernetické bezpečnosti (NCKB) vypracovalo (pdf) 26 podrobných bezpečnostních doporučení pro síťové správce. Tato doporučení jsou nastavena tak, aby je bylo možné aplikovat v každé instituci. Jsou rozdělena na tři základní části: bezpečnost infrastruktury, bezpečnost stanic a serverů a bezpečnost uživatelů.

Ladislav Hagara | Komentářů: 11
včera 05:55 | Komunita

Prezident Nadace pro svobodný software (FSF) Richard M. Stallman vyhlásil na slavnostním ceremoniálu v rámci konference LibrePlanet 2017 vítěze Free Software Awards za rok 2016. Ocenění za společenský přínos získal SecureDrop (Wikipedie). Za rozvoj svobodného softwaru byl oceněn Alexandre Oliva (Wikipedie).

Ladislav Hagara | Komentářů: 0
včera 04:44 | Nová verze

Byla vydána verze 0.7.0 debugovacího nástroje cgdb. Mezi novinky patří například zvýrazňování syntaxe jazyka Rust. Podrobnosti v poznámkách o vydání.

Neel | Komentářů: 0
25.3. 22:00 | Komunita

Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil (podcast) detailní výsledky průzkumu. Průzkumu se letos zúčastnilo více než 64 tisíc vývojářů. Jejich nejmilovanější platformou je linuxový desktop. Ten je také druhou nejpoužívanější platformou vývojářů.

Ladislav Hagara | Komentářů: 7
24.3. 11:55 | Komunita

Vývojový tým OpenSSL ve spolupráci s iniciativou Core Infrastructure konsorcia Linux Foundation spustil proces přelicencování této kryptografické knihovny ze současné licence na licenci Apache Licence v 2.0 (ASLv2). Nová licence usnadní začleňování OpenSSL do dalších svobodných a open source projektů. Všichni dosavadní vývojáři OpenSSL (Authors) obdrží v následujících dnech email s prosbou o souhlas se změnou licence.

Ladislav Hagara | Komentářů: 32
24.3. 01:11 | Komunita

Před třemi týdny Mozilla.cz představila projekt Photon, jehož cílem je návrh a implementace nového vzhledu Firefoxu. Včera zveřejnila první náhled vzhledu Photon. Práce na projektu Photon jsou rozděleny do pěti týmů, které celkem čítají 19 lidí. Zaměřují se na zlepšení prvního spuštění Firefoxu a zaujetí nových uživatelů, celkovou úpravu vzhledu, zlepšení animací, zrychlení odezvy uživatelského rozhraní a také upravení nabídek. Vývoj lze sledovat v Bugzille.

Ladislav Hagara | Komentářů: 51
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (14%)
 (2%)
 (71%)
 (3%)
 (10%)
Celkem 947 hlasů
 Komentářů: 72, poslední 1.3. 11:16
    Rozcestník

    Vytvořte si svého robota s IBM na platformě Bluemix

    10.3. | Redakce | Reklama | 4512×

    Jedním z trendů doby je automatizace všeho kolem nás. Automatizuje se i přístup k informacím. Dříve běžná návštěva pobočky banky a osobní vyřízení problému se přesunula na Internet. Informace hledáme a vyplňujeme na webových stránkách a když informaci nenajdeme, snažíme se problém vyřešit po telefonu.

    V poslední době poskytovatelé i uživatelé místo telefonu stále častěji používají různé formy Instant Messagingu (IM). IM je často efektivnější pro obě strany. Standardní IM má na straně poskytovatele člověka, který může být potenciálně nahrazen robotem. Jak vyrobit takového robota schopného komunikovat s člověkem přirozeným jazykem, popisujeme v následujícím článku.

    IBM nabízí prostředí, které vytvoření robota usnadní, na své platformě Bluemix. Bluemix je platforma poskytovaná jako služba (PaaS, Platform As A Service) v prostředí cloudu. Díky tomu nepotřebujete na svém počítači nic instalovat, stačí vám webový prohlížeč.

    Bluemix obsahuje řadu připravených služeb. My se zaměříme na jednu z nich, tzv. konverzační službu (Conversation Service). Konverzační služba je v katalogu služeb Bluemix v sekci Watson. V této sekci naleznete řadu tzv. kognitivních služeb, tj. služeb, které nějak souvisejí s vnímáním a porozuměním. Naleznete tam například služby pro rozpoznávání a syntézu hlasu, pro porozumění a klasifikaci obsahu dokumentů a také již zmíněnou konverzační službu. Aplikace, kterou pomocí konverzační služby spouštíte, komunikuje s uživatelem pomocí textu. Pokud budete chtít vytvořit robota, který mluví a rozumí, můžete sáhnout po dalších službách ze stejné sekce.

    Co je chatbot

    Pod pojmem robot si nepředstavujte robota s fyzickým tělem, i když i pro takové se konverzační služba používá. Robot (někdy také nazývaný jen bot nebo chatbot) je program, který porozumí vstupnímu textu a reaguje na něj textovou odpovědí. Robot je schopný vést s uživatelem plynulý dialog. Na rozdíl od známých experimentů v minulosti (např. Eliza), kdy se autoři snažili vytvořit robota, kterého člověk neodliší od člověka, se roboti, o kterých mluvíme, nesnaží předstírat, že jsou lidé. Naši roboti se snaží poskytovat užitečné informace tou nejvhodnější formou, což často bývá právě přirozená lidská řeč.

    Konverzační aplikace mají řadu využití od porady při nakupování až po učení.

    Vytvoření účtu a konverzační služby

    Jak tedy začít? Ze všeho nejdříve si vytvořte účet pro prostředí Bluemix (www.bluemix.com). Zdarma získáte testovací verzi účtu, která je časově omezená na 30 dní.

    Bluemix

    V katalogu služeb si vyberte v sekci „Watson“ službu „Conversation“. Po kliknutí na ni si vyberte tzv. „free plan“, tedy testovací verzi, kterou můžete používat zdarma.

    Bluemix

    Bluemix

    Následně obdržíte unikátní autorizační údaje (volba Service Credentials na obrázku níže). Údaje jsou specifické pro danou službu a jsou jiné než ty pro přihlášení do prostředí Bluemix. Když budete využívat později i jiné služby, každá bude mít své autorizační údaje.

    Bluemix

    Zmáčknutím zeleného tlačítka „Launch tool“ na stránce se dostanete do prostředí aplikace pro vytváření robota.

    Jak vytvořit vlastního robota

    V terminologii konverzační služby se robotovi říká „workspace“, tedy „pracovní plocha“. Je to termín méně vznešený než slovo robot, lépe ale vystihuje, jak robot vzniká. My zůstaneme u termínu robot, případně konverzační aplikace.

    Na úvodní obrazovce je každá konverzační aplikace reprezentována jedním obdélníkem. Každý obdélník má své číslo (workspace ID), jméno a popis.

    Bluemix

    Kliknutím na zelené tlačítko „Create“ si můžete vytvořit novou konverzační aplikaci. Můžete také nahrát existující konverzační aplikaci kliknutím na ikonu vpravo. Konverzačních aplikací můžete mít v jedné konverzační službě mnoho. V testovací verzi je počet omezen na tři.

    K editaci konkrétní konverzační aplikace se dostanete dvojklikem na obdélník. Robot se skládá z několika částí. Přístup k jednotlivým částem je z hlavní nabídky, kterou rozbalíte zmáčknutím ikony v levém horním rohu.

    Bluemix

    Nabídka se skládá ze dvou sekcí: „Build“ a „Improve“. Část „Build“ umožňuje práci s třemi komponentami konverzační aplikace, s tzv. „Intenty“, „Entitami“ a „Dialogem“. Každé z částí také odpovídá jedna složka na pracovní ploše (viz. nadpisy v horní liště). Druhá sekce hlavní nabídky („Improve“) zpřístupňuje informace o používání robota. Můžete ji použít k lepšímu pochopení, jak uživatelé robota používají, jaké kladou dotazy a v jakých situacích robot chybuje. Doba uchování dat pro testovací verzi je omezena na 7 dní.

    Jak vytvořit vlastního robota

    Když začínáte s návrhem robota, nemusíte znát všechny detaily prostředí. Použití nástrojů je intuitivní. Je ale dobře předem porozumět základním pojmům.

    Zkuste se nejdříve zamyslet, co od robota očekáváte. Identifikujte otázky, které uživatel bude klást a připravte odpovědi. Robot realizuje dvě základní funkce. Snaží se porozumět, co uživatel chce, a následně generovat odpovědi.

    Situaci trochu komplikuje fakt, že uživatelův záměr a tím i správná odpověď robota záleží na kontextu. Například uživatelův vstup „ano“ znamená smazat soubor (pokud předcházel dotaz „Opravdu soubor smazat?“) nebo znamená záměr cestovat do Španělska (pokud předcházel dotaz „Chcete cestovat do Španělska?“).

    Porozuměním vstupnímu textu popisujeme v sekcích „Intents“ a „Entities“ (v nabídce v sekci „Build“). To, jak má robot v daném kontextu reagovat, popisujeme v sekci „Dialog“.

    Pojďme se nejdříve seznámit se základními částmi konverzační aplikace.

    Intenty – záměry

    Intent (česky záměr), pojmenovává společně skupinu vět, které mají společný cíl. Intent reprezentuje záměr uživatele získat určitý typ informace.

    Na stejnou věc se uživatel může dotázat mnoha způsoby, například záměr otázek: „Kolik je hodin?“, „Nemáte prosím hodinky?“, „Potřeboval bych vědět přesný čas.“ je stejný. Uživatel chce vědět přesný čas.

    Jiný příklad. Chcete, aby konverzační aplikace na otázku: „Co umíš?“ odpověděla: „Poradím vám, jak obnovit heslo u vašeho e-mailového účtu“. Může se ale stát, že se uživatel zeptá například větami „Jak mi můžeš pomoci.“, „Co mohu říci?“.

    Je pochopitelně obtížné shromáždit všechny věty, které uživatel může napsat k vyjádření určitého záměru. Potřebujeme, aby robot poznal, o jaký záměr jde i v případě, že se uživatel zeptal trochu jinak, než je uvedeno v příkladech. Popsat něco takového v běžném programovacím jazyce je obtížné. V prostředí konverzační služby stačí uvést několik reprezentativních příkladů. Zbytek již zajistí technologie v pozadí (tzv. klasifikátor přirozeného jazyka, Natural Language Classifier), který se naučí na příkladech. Je také schopen příklady zevšeobecnit. Každý intent by měl obsahovat několik příkladů, doporučuje se alespoň pět. Příklady by měly být vhodnými reprezentanty uživatelských vstupů. Není dobře, když se počet příkladů pro jednotlivé záměry výrazně liší.

    Naučit robota rozpoznat záměr je v prostředí popisované konverzační služby snadné. Zvolíte položku „Intent“ v sekci „Build“, zadáte název a přidáte několik příkladů vět, které mají stejný smysl.

    Bluemix

    Bluemix

    Všimněte si, že před název intentu se předřazuje znak #. Znak # se používá pro označení intentů, @ pro označení entit a $ pro proměnné. Klasifikátor v pozadí pro každý vstup vybere jen jeden intent.

    Testování intentů

    Schopnost vznikající konverzační aplikace klasifikovat vstupy si můžete hned ověřit. Zmáčknutím ikonky „Ask Watson“ v pravém horním rohu obrazovky se zobrazí testovací panel (panel „Try it out“), ve kterém můžete zadat vstupní věty a sledovat, jak aplikace reaguje. Trénování klasifikátoru intentů nějakou dobu trvá, o čemž vás informuje nápis v horní části testovacího panelu. Když uděláte změnu v popisu intentů, musíte počkat několik desítek vteřin, než se modely v pozadí přeškolí a systém se začne chovat podle nových příkladů.

    Bluemix

    Pokud nejste spokojeni s klasifikací zadané věty, můžete ji operativně přiřadit k jinému intentu přímo v testovacím panelu.

    Bluemix

    Entity

    Entita se používá k detekci doplňující informace ve větě. Detekce entit probíhá nezávisle na detekci intentů. Každá klasifikovaná věta má jeden intent, ale může mít několik entit.

    Bluemix

    Příkladem je věta „Chci cestovat zítra do Hradce Králové“. Intent je například #CESTA, první entita @CAS, má hodnoty „zítra“ a druhá entita @MÍSTO má hodnotu “Hradec Králové“.

    Bluemix

    Bluemix

    Všimněte si, že entita má na rozdíl od intentu nejen jméno, ale i hodnotu. Entity mohou být více typů. Zde popisujeme především výčtové entity, které autor konverzační aplikace může definovat v sekci Entity. Můžete také použít několik systémových entit, které vám pomohou detekovat například čísla nebo třeba datum.

    Vytvořit výčtovou entitu je jednoduché. Zadáte, jak se bude jmenovat a jaké může nabývat hodnoty. Každá hodnota může mít navíc ještě synonyma, tedy slova, která jsou chápána jako slova stejného významu. Pokud například vytvoříte entitu @ANO_NE, která nabývá hodnot „ano“ nebo „ne“, můžete k hodnotě „ano“ přidat synonymum „jo“. Pro vstupní větu „Jo, je to tak.“ aplikace detekuje přítomnost entity @ANO_NE s hodnotou „ano“. Všimněte si, že hodnota entity je „ano“, nikoliv „jo“. Entita vždy nabývá hodnot základních, i když v klasifikovaném textu je užito synonymum.

    Bluemix

    To, jak vámi navržené entity fungují, si můžete zase vyzkoušet v testovacím panelu („Try it out“) podobně, jak jsme to dělali pro intenty.

    Intenty nebo Entity?

    Intenty a entity mají jiný smysl a účel. Intent používáme především pro získání základního záměru věty. Entity vybírají z věty parametry. Často intenty a entity v podmínkách kombinujeme.

    Občas nastává situace, kdy si návrhář aplikace může vybrat, který prostředek využije. Můžete si například vytvořit dva oddělené intenty (např. #ANO a #NE) a podmiňovat odpověď detekcí intentu. Alternativně můžete vytvořit jedinou entitu (např. @ANO_NE) a podmínit odpověď přítomností entity s konkrétní hodnotou (např. @ANO_NE:ano). Je důležité si uvědomit, že současné intenty využívají zobecněnou reprezentaci příkladů, detekují tedy i věty podobné. Naopak entity vyžadují přesnou shodu hodnoty, případně synonyma.

    Dialog

    Definicí intentů a entit se dostáváme velmi blízko k vytvoření konverzační aplikace. Zbývá jen popsat, co má robot říci, když rozpozná nějaký intent nebo entitu. K popisu takového přiřazení slouží sekce Dialog. Pro složitější konverzace pochopitelně nestačí jen rozpoznat intent. I to jde zapsat v sekci Dialog a popíšeme si to později.

    Pojďme si nejdříve vyzkoušet nejjednodušší případ, kdy robot reaguje jen na rozpoznaný intent. Chcete například, aby robot odpověděl na pozdrav pozdravem. Předpokládáme, že jsme si vytvořili intent #POZDRAV, pro jehož definici použijeme příklad „Ahoj“, “Nazdar“ a „Dobrý den“. Dialog vytvoříte z tzv. dialogových uzlů. Poté, co vytvoříte nový dialog, má dialog jediný uzel. Ten je připojen k nápisu „conversation starts“.

    Bluemix

    Kliknutím na uzel se zobrazí v pravé části obrazovky formulář, ve kterém uzel popíšete. Každý uzel má vstupní podmínku (část 1. Trigger) a část, která popisuje, co se stane, když je podmínka splněna (část 2. Response).

    Chcete-li, aby dialog odpověděl při detekci intentu #POZDRAV, stačí, když do podmínky uzlu napíšete #POZDRAV a do části odpovědi označené „Enter a response“ napíšete odpověď (např. „Nazdar“).

    Bluemix

    Vše si můžete hned vyzkoušet v testovacím panelu po pravé straně obrazovky (Try it out). Změny v dialogové části se do chování konverzační aplikace promítnou téměř okamžitě (změny v intentech a entitách vyžadují chvíli čekání, než se je klasifikátor znovu naučí).

    Pro praktický projekt, který umí něco více než pozdravit, už s jediným uzlem nevystačíte. Další uzly přidáte kliknutím na znak „+“ pod uzlem. Při zadávání uživatelského vstupu se postupně vyhodnocují dialogové uzly zavěšené pod symbol „conversation starts“. Pokud se některá podmínka splní, uzel se provede a konverzační aplikace odpoví. Zpracování vstupu končí a další vstup se zase bude vyhodnocovat počínaje nejvýše umístěným uzlem. Pokud podmínka uvedená v uzlu není splněna, pokračuje se uzlem pod aktuálním uzlem. Pokud žádný uzel podmínku nesplňuje, konverzační aplikace na otázku neodpoví. Pokud chcete, aby konverzační aplikace odpověděla vždy (alespoň oznámením, že nerozumí), umístíte jako poslední uzel konverzační uzel s podmínkou anything else. Podmínka anything else je splněna vždy. Do její odpovědi můžete napsat např. „Promiňte, nerozumím vám.“.

    Bluemix

    Další speciální podmínka, kterou můžete použít, je podmínka „conversation_start“. Podmínka je splněna, pokud konverzace právě začíná. Konverzační uzel s touto podmínkou je typicky úplně první uzel. Provede se ještě dříve, než uživatel zadá svůj první vstup. Typicky obsahuje popisem funkce konverzační aplikace (např. „Vítejte ve službě pro změnu hesla.“).

    Bluemix

    Co když potřebujete popsat dialog, který bere v úvahu předchozí konverzaci? Uživatel vyjádří potřebu nastavit heslo („Chci nastavit heslo“). Aplikace odpoví „Máte u nás existující účet?“ a očekává jasnou odpověď „ano“ nebo „ne“. Pokud by uživatel napsal „ano“ nebo „ne“ na začátku konverzace, nebylo by jasné s čím uživatel (ne)souhlasí. V takovém případě by měl robot oznámit, že nerozumí, nebo by měl požádal o upřesnění. V případě položené otázky chcete jinou reakci. Odpověď tedy závisí na kontextu.

    Možná jste si všimli, že vybraný dialogový uzel má symboly „+“ pro přidání nového uzlu nejen pod sebou, ale i vedle sebe. Pokud přidáte dialogový uzel vedle uzlu, bude se po provedení uzlu pokračovat vyhodnocováním dalších uzlu vpravo. Ty mohou mít zase další uzly pod sebou, případně vedle sebe. Pokud se provede uzel, který již nemá žádného následovníka (další uzel vpravo od sebe), další vstup se bude vyhodnocovat od začátku (od nápisu „conversation starts“).

    V našem příkladu má prvý uzel podmínku #PASSWORD a odpověď „Rozumím, že chcete změnit heslo, byl váš účet napaden?“. Má dva následovníky, jeden s podmínkou #ANO a odpovědi „rád vám poradím“, druhý s podmínkou #NE a s odpovědí „To nás mrzí, to je jediná věc, s kterou vám můžeme pomoci.“.

    Bluemix

    Se stromovou dialogovou strukturou si často vystačíte. Není to ale vše, co sekce dialog pro vytváření konverzačních modelů nabízí.

    Máte možnost například nastavovat proměnné, přeskakovat mezi dialogovými uzly nebo komunikovat se vzdálenými službami. Některým z těchto funkcí se budeme věnovat v dalším díle.

    Bluemix

    Tomáš Macek tomas.macek@cz.ibm.com

    David Kramný david_kramny@cz.ibm.com

           

    Hodnocení: 50 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Diskuse byla administrátory uzamčena

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.