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í
×

včera 20:40 | Zajímavý článek

Lukáš Růžička v článku S Hydrogenem za lepší rytmus aneb bubeníkem snadno a rychle na MojeFedora.cz představuje automatického bubeníka s názvem Hydrogen (Wikipedie): Hydrogen je velmi vydařený program, který rozhodně nesmí chybět ve výbavě žádného linuxového muzikanta. Umožňuje nejen vytváření jednoduchých bicích doprovodů, ale také sofistikované programování bicích a perkusí, jehož výsledek se naprosto vyrovná drahým

… více »
Ladislav Hagara | Komentářů: 0
včera 13:55 | Zajímavý projekt

UPSat (Twitter) je první open source nanodružice (CubeSat). Jedná se o společný projekt nadace Libre Space Foundation a University of Patras. Repozitáře projektu jsou k dispozici na GitHubu. Pod Libre Space Foundation patří také projekt SatNOGS (zprávička), projekt globální sítě open source pozemních satelitních stanic, vítězný projekt soutěže The Hackaday Prize 2014. UPSat je součástí mise QB50 (Twitter). ID UPSatu je GR02. GPS přijímač na UPSatu je od české společnosti SkyFox Labs. Součástí mise QB50 je i česká nanodružice VZLUSAT-1 s ID CZ02.

Ladislav Hagara | Komentářů: 3
21.4. 15:00 | Komunita

V diskusním listu Thunderbird planning vývojáři poštovního klienta Thunderbird řeší, zda by nebylo možné budoucí Thunderbird postavit nad webovými technologiemi, tj. nad Electronem, stejně jako například Nylas Mail. Gecko, nad kterým je Thunderbird postaven, se má hodně změnit. V plánu je odstranění vlastností, které Firefox už nepotřebuje, ale Thunderbird je na nich závislý [Hacker News, reddit].

Ladislav Hagara | Komentářů: 83
21.4. 10:22 | Bezpečnostní upozornění

Společnost Oracle vydala čtvrtletní bezpečnostní aktualizaci svých softwarových produktů (CPU, Critical Patch Update). Opraveno bylo celkově 299 bezpečnostních chyb. V Oracle Java SE je například opraveno 8 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 7 z nich. V Oracle MySQL je opraveno 39 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 11 z nich.

Ladislav Hagara | Komentářů: 6
21.4. 10:00 | Pozvánky

V úterý 25. dubna proběhne další Prague Containers Meetup. Přijďte se nechat inspirovat jak zlepšit build/delivery pipeline vašich kontejnerových aplikací.

little-drunk-jesus | Komentářů: 2
20.4. 21:33 | Komunita

Na Launchpadu se objevilo kódové jméno následující verze Ubuntu. Ubuntu 17.10 bude Artful Aardvark (mazaný hrabáč) [OMG! Ubuntu!].

Ladislav Hagara | Komentářů: 10
20.4. 20:11 | Zajímavý software

MojeFedora.cz informuje, že společnost Nylas oznámila vydání verze 2.0 poštovního klienta Nylas Mail (původně Nylas N1), která již plně podporuje Linux. Obchodní model společnosti je tzv. open core. Samotný klient je open source, ale uživatel si musí připlatit za některé pokročilé funkce. V základu se lze připojit k GMailu nebo libovolnému účtu přes IMAP. Podpora Exchange je pouze v placené verzi. Klient je napsaný nad Electronem.

Ladislav Hagara | Komentářů: 12
20.4. 15:55 | Zajímavý článek

České centrum pro investigativní žurnalistiku (ČCIŽ) publikovalo na svých stránkách článek s názvem Je česká státní správa „rukojmím Microsoftu“?. Drtivá většina české veřejné správy je závislá na výrobcích softwarového gigantu Microsoft – a nijak zvlášť jí to nevadí.

Ladislav Hagara | Komentářů: 18
20.4. 02:48 | Nová verze

Google Chrome 58 byl prohlášen za stabilní. Nejnovější stabilní verze 58.0.3029.81 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo 29 bezpečnostních chyb. Mezi nimi i chyba umožňující phishing s unicode doménami.

Ladislav Hagara | Komentářů: 0
19.4. 22:44 | Nová verze

Po šesti týdnech od vydání verze 52.0 byla vydána verze 53.0 webového prohlížeče Mozilla Firefox. Z novinek lze upozornit například na nové kompaktní vzhledy – tmavý z Firefoxu Developer Edition a jeho světlá varianta. Na Linuxu byla ukončena podpora procesorů starších než Pentium 4 a AMD Opteron. Podrobné informace v poznámkách k vydání a na stránce věnované vývojářům. Řešeny jsou také bezpečnostní chyby.

Ladislav Hagara | Komentářů: 11
Chystáte se pořídit CPU AMD Ryzen?
 (4%)
 (35%)
 (0%)
 (7%)
 (45%)
 (10%)
Celkem 273 hlasů
 Komentářů: 31, poslední 20.4. 21:26
    Rozcestník

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

    10.3. | Redakce | Reklama | 4619×

    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.