Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Ahoj, v minisoutěži o placku a samolepky na tento týden si zkusíme naprogramovat cleverbota v PHP. Jedná se o chat člověka s počítačem. Na webové stránce bude zobrazena textarea s textem, který se odesílá robotovi a dále posledních několik vět v konverzaci.

V základní fázi by měl robot umět odpovídat na základní otázky typu "Jak se máš?", "Kolik je hodin?" nebo "Máš rád něco"? a podobně. Samozřejmě by měl umět odpovědět i v případě, když napíšeme Jak je, Jak se máme atd. Konverzace se může ukládat např. do session.

V pokročilé podobě by program mohl do databáze ukládat otázky, které položil člověk robotovi a ty potom zkoušet občas člověku položit a uložit si lidskou odpověď. Když se následně někdo jiný robota zeptá na stejnou věc, odpoví, což člověka dost možná překvapí :)

Ukažme si příklad. Někdo se zeptá robota kolik stojí prášek do pečiva. Robot to samozřejmě nemůže vědět, tak nejlepší co může udělat je analyzovat větu a když zjistí, že obsahuje slovo kolik a na konci otazník, odpoví třeba "hodně". Otázku si však uloží a potom ji položí jinému člověku, se kterým si píše, ten mu odpoví, že 10 korun. Když se následně někdo jiný zeptá na tu samou otázku, robot již zná odpověď. Představte si, že vašeho robota opravdu umístíte na web a za několik týdnů nebo měsíců se ho lidé zeptají na stovky vět. To už by mohlo být zajímavé.

Samozřejmě je zde háček v tom, jak poznat podobnou otázku od člověka, je třeba z vět odstranit spojky a podobná zbytečná slova a tak najít klíčová slova a podle nich podobné věty.

Určitě si program zkuste, není zde žádná laťka jak to musí fungovat a tak může placku získat i velmi jednoduché řešení. Navíc je to zábavná úloha :)

Čas si dejme do neděle 3.11. do 18:00 hodin. Nápad na zadání pochází od Panda38. Pravidla soutěže jsou zde: http://www.itnetwork.cz/…outezi-machr

Editováno 29.10.2013 9:48
Odpovědět  +2 29.10.2013 9:46
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Panda38
Redaktor
Avatar
Panda38:

Dobrou inspirací může být program ELIZA, známý a populární už na osmibitech: http://epanel.cz/eliza/eliza.php

 
Nahoru Odpovědět  +2 29.10.2013 10:36
Avatar
Filip Pýrek
Redaktor
Avatar
Odpovídá na David Čápka
Filip Pýrek:

Super, ale nevím jestli to zvládnu za týden. 8-)

Nahoru Odpovědět 29.10.2013 11:03
„The best way to predict the future is to invent it.“ — Alan Kay
Avatar
Kit
Redaktor
Avatar
Odpovídá na Filip Pýrek
Kit:

To není náročné, je to poměrně jednoduchý program.

Nahoru Odpovědět 29.10.2013 11:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Filip Pýrek
Redaktor
Avatar
Odpovídá na Kit
Filip Pýrek:

Zjistit jestli je ve větě "kolik" a na konci otazník je jednoduché, ale já bych to chtěl udělat trošku složitější.

Nahoru Odpovědět 29.10.2013 11:17
„The best way to predict the future is to invent it.“ — Alan Kay
Avatar
Old Account
Člen
Avatar
Old Account:

Paradne zadanie, skusim nieco spravit, mozno sa mi podari osekat moj kod zo starsieho projektu, ktory je ale trosku rozsiahlejsi (v podstate disponuje ciastocnou umelou inteligenciou).

Nahoru Odpovědět 29.10.2013 13:19
"If you keep your eye on the profit, you’re going to skimp on the product. But if you focus on making really gre...
Avatar
Panda38
Redaktor
Avatar
Panda38:

Ještě jedna motivace - je vypsána Loebnerova cena 100 000 dolarů za program, který bude komunikovat neodlišitelně od člověka (Turingův test). 8|

 
Nahoru Odpovědět 29.10.2013 13:53
Avatar
Josef Kuchař (Pepa489):

To zní dobře :D

Nahoru Odpovědět 29.10.2013 14:23
2x piš, jednou debuguj
Avatar
Salieri
Člen
Avatar
Salieri:

Škoda, že mé znalosti nejsou až tak velké abych se zůčastnil.
Teším se na vaše výsledky. Hodně štěstí. :)

Nahoru Odpovědět 29.10.2013 16:47
Hlavní zlo? **Školství a Matematika**!
Avatar
Kit
Redaktor
Avatar
Odpovídá na Salieri
Kit:

Zúčastnit se můžeš i s jednoduchým skriptem na 30 řádek.

Nahoru Odpovědět 29.10.2013 16:52
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Daniel Vítek:

Může to být v C# ? Že bych ukradl David Jančík [sczdavos]ovi Elis (už zase :D)

 
Nahoru Odpovědět  +1 29.10.2013 18:15
Avatar
Michael Olšavský:

https://drive.google.com/…NWszN1E/edit?…
Tady je mé jednoduché řešení, udělal jsem to zhruba za 10 minut. Moc toho neumí, učí se postupně. Je to napsané v C#, data to nikam neukládá. Čím více mu toho řeknete, tím bude chytřejší. :-)

 
Nahoru Odpovědět  -1 29.10.2013 21:06
Avatar
kredenc uždil
Neregistrovaný
Avatar
kredenc uždil:

tu mate ukasku jak se to da visfihnoud f javascriptu. http://www.vicko.cz/…kecal-vicko/

 
Nahoru Odpovědět 29.10.2013 21:43
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Michael Olšavský
Daniel Vítek:

(pšššt, tohle je machr na PHP... :`)

 
Nahoru Odpovědět  +1 29.10.2013 21:50
Avatar
Odpovídá na kredenc uždil
Michael Olšavský:

to asi nebude tvoje předpokládám podle té češtiny...

 
Nahoru Odpovědět 29.10.2013 21:50
Avatar
Odpovídá na Daniel Vítek
Michael Olšavský:

Já neříkám že se s tím účastním. Jen že základ je jednoduchý. Pokud bude potřeba, tak to přepíšu, ale nechce se mi do toho.

 
Nahoru Odpovědět  +1 29.10.2013 21:54
Avatar
Odpovídá na Michael Olšavský
Libor Šimo (libcosenior):

Máš tam nejakú chybu. Po spustení to blbne.

Nahoru Odpovědět  +1 30.10.2013 17:56
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Libor Šimo (libcosenior)
Michael Olšavský:

Díky za upozornění. Jsem to ještě upravoval a nahrál na stejný odkaz jinou verzi. Hned to bude opravené.

 
Nahoru Odpovědět  +1 30.10.2013 18:04
Avatar
Odpovídá na Libor Šimo (libcosenior)
Michael Olšavský:

Zkus to teď ;-) Už by to mělo fungovat.

 
Nahoru Odpovědět 30.10.2013 18:10
Avatar
Odpovídá na Michael Olšavský
Libor Šimo (libcosenior):

Už to funguje, len to ešte ošetri, aby to na prázdny riadok nespadlo.
Teda ak po spustení nenapíšem nič a stlačím Enter, spadne to. ;)

Nahoru Odpovědět 31.10.2013 5:34
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na kredenc uždil
KlimiCZ:

Tohle téma je zajímavé.
16:22:31LinuxD
držhubu
16:22:32Kecal Víčko
Kolik ti je?
16:22:34LinuxD
15
16:22:35Kecal Víčko
Proč to říkáš?
16:22:41LinuxD
ptal jses :D
16:22:42Kecal Víčko
Bez práce nejsou koláče.
Je to super ! ;)

Nahoru Odpovědět  +1 31.10.2013 19:23
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Filip Pýrek
Redaktor
Avatar
Filip Pýrek:

Zatím to vypadá takto. http://cleverbot.filippyrek.cz/ Chtěl bych udělat to že když by se zeptal sám od sebe na nějakou otázku tak by si tu odpověď vložil do db, ale to možná nestihnu do deadline 8-) :D

Nahoru Odpovědět  +2 1.11.2013 22:27
„The best way to predict the future is to invent it.“ — Alan Kay
Avatar
David Hynek
Redaktor
Avatar
Odpovídá na Filip Pýrek
David Hynek:

Dobře se učí :)

Zeptej se ho "kdo jsi?"
A pak "Proč?"

:)
Nahoru Odpovědět 1.11.2013 22:33
Čím víc vím, tím víc věcí nevím.
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na David Hynek
Jiří Gracík:

Nečekané :D Zajímavý začátek konverzace :)

Editováno 1.11.2013 22:37
Nahoru Odpovědět  +2 1.11.2013 22:36
Creating websites is awesome till you see the result in another browser ...
Avatar
Nahoru Odpovědět 1.11.2013 22:44
Nesnáším {}, proto se jim vyhýbám.
Avatar
Filip Pýrek
Redaktor
Avatar
Odpovídá na Jiří Gracík
Filip Pýrek:

Jo, jo to "A teď se ptej ty." mě ještě trošku zlobí :D

Nahoru Odpovědět  +1 1.11.2013 22:55
„The best way to predict the future is to invent it.“ — Alan Kay
Avatar
Odpovídá na Filip Pýrek
Michal Žůrek (misaz):

Máš tam překlep:

Cleverbot: Děkuji ti za odpověď. Máě mě rád?

Nahoru Odpovědět 1.11.2013 23:07
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na Filip Pýrek
Michal Žůrek (misaz):

:D tak to mě dostalo:

Cleverbot: Děkuji ti za odpověď. proč jsi banán?

Ještě jsem zkoušel dále:

Ty: kolik stojí mobil?
Cleverbot: Málo
Ty: Kolik stojí raketoplán
Cleverbot: Hodně
Ty: kolik stojí ponorka?
Cleverbot: Hodně
Ty: kolik stojí papír
Cleverbot: Hodně
Ty: kolik stojí pentilka
Cleverbot: Nevím
Ty: kolik stojíš ty?
Cleverbot: Nevím co ti na to mám odpovědět. Prosím odpověz za sebe:

U raketoplánu a ponorky mě dostal.

Editováno 1.11.2013 23:12
Nahoru Odpovědět  +1 1.11.2013 23:10
Nesnáším {}, proto se jim vyhýbám.
Avatar
Filip Pýrek
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Filip Pýrek:

Dík už jsem to zpravil. (Někdo tam měl překlep)

Nahoru Odpovědět 2.11.2013 8:08
„The best way to predict the future is to invent it.“ — Alan Kay
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Filip Pýrek
Daniel Vítek:

Zlej ! Jsem mu napsal Hallo world a on mi odpověděl Nic vole :D :D

 
Nahoru Odpovědět 3.11.2013 9:39
Avatar
Inoue Yūki
Redaktor
Avatar
Nahoru Odpovědět 3.11.2013 10:09
Avatar
Inoue Yūki
Redaktor
Avatar
Inoue Yūki:

Ty: Jsi Miloš Zeman?
Cleverbot: No to snad né, proboha!

Nahoru Odpovědět 3.11.2013 10:19
Avatar
petod
Člen
Avatar
petod:

taky dobrý :)

 
Nahoru Odpovědět 3.11.2013 11:07
Avatar
Josef Kuchař (Pepa489):

Další blbost:

Ty: kolik stojí mobil?
Cleverbot: Hodně
Ty: Kolik stojí raketoplán
Cleverbot: Málo
Ty: kolik stojí ponorka?
Cleverbot: Nevím
Ty: kolik stojí papír
Cleverbot: Hodně
Ty: kolik stojí pentilka
Cleverbot: Málo
Ty: kolik stojíš ty?
Cleverbot: Snažím se si rozšíři slovní zásobu. Odpověž za sebe prosím:
Nahoru Odpovědět 3.11.2013 11:11
2x piš, jednou debuguj
Avatar
Josef Kuchař (Pepa489):
Ty: Čus vole.
Cleverbot: Děkuji ti za odpověď. Kdo jsi?
Nahoru Odpovědět 3.11.2013 11:13
2x piš, jednou debuguj
Avatar
Inoue Yūki
Redaktor
Avatar
Inoue Yūki:

Ty: Jaký je počasí?

Cleverbot: Slunečno, místy zataženo. -344 stupňů Celsia. Magnetická bouře z jihu působí jižní monzunové větry.

Nahoru Odpovědět 3.11.2013 11:34
Avatar
FastNode
Redaktor
Avatar
FastNode:
Ty: zdravím
Clever bot: Nevím co ti na to mám odpovědět. Prosím odpověz za sebe:
Ty: jenom jsem pozdravil
Cleverbot: Děkuji ti za odpověď. co?
Ty: proč se mě furt ptáš?
Cleverbot: A teď se ptej ty.
Ty: nebudu se na nic ptát
Cleverbot: Nevím co ti na to mám odpovědět. Prosím odpověz za sebe:
Ty: už neřeknu ani slovo
Cleverbot: Děkuji ti za odpověď. Seš na chlapce?
Editováno 3.11.2013 11:59
 
Nahoru Odpovědět 3.11.2013 11:55
Avatar
FastNode
Redaktor
Avatar
FastNode:

Jak se učí potvora! :D :P

Cleverbot: A teď se ptej ty.
Ty: co umíš
Cleverbot: Nevím co ti na to mám odpovědět. Prosím odpověz za sebe:
Ty: já umím odpovídat

o pár řádků později

Cleverbot: A teď se ptej ty.
Ty: co umíš
Cleverbot: já umím odpovídat

Schválně, co ho naučím teď... :)

Ty: kdo je tvůj otec?
Cleverbot: Můj otec je programátor z devbooku, FilipPyrek.
Ty: kdo je tvoje matka
Cleverbot: Nevím co ti na to mám odpovědět. Prosím odpověz za sebe:
Editováno 3.11.2013 12:06
 
Nahoru Odpovědět 3.11.2013 12:03
Avatar
ondra
Neregistrovaný
Avatar
ondra:

zajmavé :D akorát mě udivije že když jsem se zeptal jestli má rád grupáč, tak řekl že jo... Poker face

 
Nahoru Odpovědět 3.11.2013 12:20
Avatar
Kit
Redaktor
Avatar
Odpovídá na ondra
Kit:

Podle mne je to správná odpověď. Skupina lidí se ho snaží o*ebat a jemu se to líbí :)

Nahoru Odpovědět  +2 3.11.2013 12:25
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na FastNode
Ondřej Štorc:

Chudák

Ty: Kdo je tvá matka
Cleverbot: justin bieber
Editováno 3.11.2013 12:41
Nahoru Odpovědět 3.11.2013 12:41
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Zaznamenal jsem zde jen již populárního robota od Filip Pýrek. Placka je tedy tvoje :) Napiš x do zpráv adresu a jakou chceš (algoritmy nebo PHP).

Co se týče funkčnosti aplikace, tak to docela funguje. Mohl by se však ptát méně okatě, ruší to celkový dojem z konverzace. Tedy místo "Odpověz za sebe prosím" by měl odpovědět jen něco z DB nebo něco náhodného. Otázku by potom měl položit znovu ne tobě, ale někomu jinému a bez upozorňování, že neví co znamená, prostě se ho na to normálně ptá. Ideálně třeba do DB ukládat IP adresu, aby ji položil vždy někomu, kdo se na ní neptal.

Kód je objektový, i když metoda tellMe se moc objektově netváří. Pokud chceš aplikaci do budoucna rozšiřovat, určitě by chtělo vymyslet jakým způsobem věty analyzovat. in_array(.., $slova) se tam vyskytuje nějak mockrát.

Kdybys s tím pokračoval, tak dej vědět, líbí se mi to :)

Editováno 3.11.2013 18:30
Nahoru Odpovědět  +1 3.11.2013 18:29
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Rostislav Křídlo:

nehodil bys sem zdroják prosím? jinak fakt super!!!

Nahoru Odpovědět 3.11.2013 23:19
MiracleSoft! www.miraclesoft.com
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Rostislav Křídlo
Jan Vargovský:

Je to v pravidlech, že to potom musí publikovat, takže dočkej času než to projde schvalovacím procesem.

 
Nahoru Odpovědět 3.11.2013 23:42
Avatar
Filip Pýrek
Redaktor
Avatar
Filip Pýrek:

Tak si tak procházím tu databázi a tam: Pěkný zdroják, odkud ho máš? Z Tchibo. , Proč lopata neplave? Protože bagr nepapá meruňky. :D

Nahoru Odpovědět  +1 4.11.2013 19:35
„The best way to predict the future is to invent it.“ — Alan Kay
Avatar
Odpovídá na Filip Pýrek
Rostislav Křídlo:

Ahoj uvolníš zdroják a kdy kdyžtak? jinak sory za bump :D

Nahoru Odpovědět 9.11.2013 18:07
MiracleSoft! www.miraclesoft.com
Avatar
Rostislav Křídlo:

Sorry za spam ale pro někoho jako jsem já : http://www.itnetwork.cz/…t-cleverbot/

Nahoru Odpovědět 9.11.2013 18:44
MiracleSoft! www.miraclesoft.com
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 48 zpráv z 48.