abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 16:11 | Nová verze

    Bylo oznámeno vydání Fedora Linuxu 40. Přehled novinek ve Fedora Workstation 40 a Fedora KDE 40 na stránkách Fedora Magazinu. Současně byl oznámen notebook Slimbook Fedora 2.

    Ladislav Hagara | Komentářů: 0
    dnes 13:44 | Upozornění

    ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.

    Ladislav Hagara | Komentářů: 6
    dnes 13:33 | Komunita

    Byla založena nadace Open Home Foundation zastřešující více než 240 projektů, standardů, ovladačů a knihoven (Home Assistant, ESPHome, Zigpy, Piper, Improv Wi-Fi, Wyoming, …) pro otevřenou chytrou domácnost s důrazem na soukromí, možnost výběru a udržitelnost.

    Ladislav Hagara | Komentářů: 0
    dnes 13:00 | Nová verze

    Společnost Meta otevírá svůj operační systém Meta Horizon OS pro headsety pro virtuální a rozšířenou realitu. Vedle Meta Quest se bude používat i v připravovaných headsetech od Asusu a Lenova.

    Ladislav Hagara | Komentářů: 0
    dnes 04:33 | IT novinky

    Společnost Espressif (ESP8266, ESP32, …) získala většinový podíl ve společnosti M5Stack, čímž posiluje ekosystém AIoT.

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

    Byla vydána nová stabilní verze 3.5 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). Přehled novinek také na YouTube. Nově lze využívat cloud (audio.com). Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | Zajímavý článek

    50 let operačního systému CP/M, článek na webu Computer History Museum věnovaný operačnímu systému CP/M. Gary Kildall z Digital Research jej vytvořil v roce 1974.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Pozvánky

    Byl zveřejněn program a spuštěna registrace na letošní konferenci Prague PostgreSQL Developer Day, která se koná 4. a 5. června. Na programu jsou 4 workshopy a 8 přednášek na různá témata o PostgreSQL, od konfigurace a zálohování po využití pro AI a vector search. Stejně jako v předchozích letech se konference koná v prostorách FIT ČVUT v Praze.

    TomasVondra | Komentářů: 0
    včera 03:00 | IT novinky

    Po 48 letech Zilog končí s výrobou 8bitového mikroprocesoru Zilog Z80 (Z84C00 Z80). Mikroprocesor byl uveden na trh v červenci 1976. Poslední objednávky jsou přijímány do 14. června [pdf].

    Ladislav Hagara | Komentářů: 6
    včera 02:00 | IT novinky

    Ještě letos vyjde Kingdom Come: Deliverance II (YouTube), pokračování počítačové hry Kingdom Come: Deliverance (Wikipedie, ProtonDB Gold).

    Ladislav Hagara | Komentářů: 9
    KDE Plasma 6
     (71%)
     (10%)
     (2%)
     (17%)
    Celkem 689 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

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

    10. 3. 2017 | Redakce | Reklama | 5233×

    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.