IQ Pokyd [verze 0.15]

Vítejte u pokusu o popsání chování člověka počítačovými algoritmy!

Novinky této a předchozích verzí

0.15
  • zlepšena inteligence
  • možnost emulace plně české nebo slovenské klávesnice (kvůli diakritice)
  • rozšířená nastavení "Nezobrazovat pozadí" a "Nezapisovat na disk" jsou nyní přímo v okně s nastavením a jsou zahrnuty v souboru IQPOKYD.CFG, z příkazového řádku jsou samozřejmě dostupné i nadále
  • u hlavního okna lze měnit velikost
  • přidán další efekt programu
  • změněna adresa programu - nyní je to http://iqpokyd.kyblsoft.cz
0.1 První verze programu IQ Pokyd. Ten je pokračováním původního Pokydu a od poslední verze se liší zejména následujícím:
  • zahrnut zcela nový systém rozpoznávání typu vět
  • přidán popis českých vzorů, gramatiky atd.
  • program je pro Windows, minimální nároky na paměť 32 MB
  • odebrány (některé dočasně) nadstavby - pluginy, vtipy, předpověď počasí, rozhovor dvou počítačů atd.
  • mnoho jiných věcí.
Bohužel tato verze příliš nevyužívá nového systému rozpoznávání vět.

A co bude v příštích verzích? Viz odstavec Co bude následovat v příštích verzích?

Co je to vlastně IQ Pokyd? K čemu "to" slouží?

IQ Pokyd je program, se kterým si můžete popovídat. Prostě mu píšete cokoliv, co máte na srdci a on na to sám reaguje. Samozřejmě jeho schopnosti se nemůžou rovnat těm opravdovým lidským, nicméně dosti situacím "porozumí". Jak moc, to už doporučuji raději vyzkoušet.

Licenční ujednání aneb co se ještě smí a co už nikoliv

Tento program je freeware. Program je tedy možno libovolně šířit a užívat. Program je možno šířit se soubory "iqpokyd.exe", "slovnik.iqp", "iqpokyd.iqp" a "cti_me.htm". Ostatní soubory (včetně 17megového "slovnik.tmp") nemusí být šířeny, na novém počítači se vytvoří znova. Program sám nebude šířen za jakékoli poplatky či výhodu poskytovateli. Výjimkou je distribuce např. na CD nebo DVD, na kterém je IQ Pokyd také umístěn, za toto CD či DVD je možno požadovat úhradu, ta však musí být obvyklá - tedy v podstatě stejná jako bez tohoto programu. Mimo to bych byl rád, kdybyste mi takový krok oznámili, minimálně mě potěšíte :-)
Poskytovat IQ Pokyd na svých stránkách je samozřejmě možné bez omezení, pouze je vhodné přidat i adresu zdroje (iqpokyd.kyblsoft.cz) z důvodu aktualizací (které v případě takového programu rozhodně nejsou zbytečné).

Minimální hardwarové a systémové požadavky

Minimální nároky programu. V závorce jsou uvedeny optimální hodnoty.
Jak je vidět, nároky jsou myslím velice rozumné.

Operační systém: Microsoft Windows 95/98/ME/NT/2000/XP
Procesor: 90 MHz (500 MHz)
Velikost paměti: 32 MB (128 MB)
Velikost místa na disku: 18 MB

Distribuce programu: co se má vlastně distribuovat?

K distribuci (šíření) IQ Pokydu není třeba kopírovat veškeré soubory, dokonce to někdy není ani žádoucí. Takže které ano a které ne (seřazeno podle abecedy):

Název souboruDistribucePopis souboru
cti_me.htm Ano Tato nápověda.
iqpokyd.cfg Nemusí Textový soubor s nastavením. Pokud chybí, vytvoří se sám se standardními hodnotami.
iqpokyd.exe Ano Hlavní program; to, co se vlastně spouští.
iqpokyd.iqp Ano Soubor s inteligencí - nutný pro chod programu.
kydy.txt Ne Textový soubor se záznamy proběhlých hovorů. Netřeba šířit.
noveinfo.iqp Ne Soubor s údaji o neznámých tvarech, gramatických stavbách vět atd. Tento soubor je žádoucí odeslat ve formuláři na iqpokyd.kyblsoft.cz, jinak se však šířit vůbec nemusí.
profil.iqp Ne Soubor s údaji, jak se počítač posledně zachoval atd. Pokud je šířen, nevadí, ale prakticky nemá vliv jeho počáteční absence.
slovnik.iqp Ano Soubor s malou databází slov - nutný pro chod programu.
slovnik.tmp Nemusí Soubor s velkou databází slov. Pokud chybí, vytvoří se sám. Protože tento soubor je zdaleka největší (cca 17 MB), je výhodné ho nekopírovat.
tuknuti.wav Ano Zvuk "ťuknutí" klávesy.

Jaké mám v programu vůbec zadávat věty?

Věty se zadávají v políčku k tomu určeném v dolní části obrazovky.
A jak by se tedy mělo psát:

Na jakém principu IQ Pokyd vlastně funguje?

Zjednodušeně řečeno, existují 3 způsoby, podle čeho má stroj "odpovědět" na větu. Daly by se rozdělit na 1., 2. a 3. generaci. IQ Pokyd má nyní v sobě zabudované 2 tyto způsoby, a sice 1. a 2. generaci. A co to vlastně znamená:

Lidský mozek pracuje na principu vyšší než 3. generace; má totiž v sobě celou řadu možností, o kterých věda ještě zdaleka nic neví. Pokud si tedy pokecáte se sousedem od vedle, bude to hovor na vysoce inteligentní úrovni :-)

Jak můžu IQ Pokyd ovládat klávesovými zkratkami?

V IQ Pokydu platí následující klávesové zkratky:

F1 "Malá" nápověda
Alt+F1 "Velká" nápověda, tj. tato nápověda
F3, Ctrl+E Napsání předchozí věty (opakovat věty se však nedoporučuje)
F4 Nastavení
F7, F8 Zlepšení (F7) / zhoršení (F8) nálady počítače
Ctrl+F7, Ctrl+F8 "Zlepšení" (Ctrl+F7) / "zhoršení" (Ctrl+F8) charakteru počítače, resp. posunutí charakteru o "stupínek" výš nebo níž
Esc Není-li zobrazeno žádné podokno, smazání právě psané věty. Je-li zobrazeno podokno, pak se po této klávese zavře
Shift+F1 Informace "o programu"
Alt+V Informace o aktuální verzi

Co se to proboha děje při prvním spuštění za "rozskloňování"?

Program používá různé databáze s daty. Dvě z nich obsahují i slovní zásobu jazyka - malá databáze a velká (nebo základní a úplná) databáze. "Malá" databáze obsahuje pouze slova v základním tvaru a informace o nich. Ta by však sama o sobě nestačila, každé slovo lze totiž uvést v mnoha tvarech, nejen v tom základním. Jedná se o tvary typu nesu/neseš/nese/nést/nesení/nesený/-náší atd., každé slovo lze v průměru rozskloňovat do 30 různých tvarů, z nichž některé vyjadřují i více tvarů zároveň.
A právě všechny tyto tvary jsou uloženy ve "velké" databázi. Ta se však nemusí šířit, protože se může vytvořit z malé databáze, a protože je veliká 17 MB, její "nešíření" je výhodné. A proto je třeba tu chvilku při prvním spuštění počkat.

Co bude následovat v příštích verzích?

Co nejspíš bude v dalších verzích:

verze 0.2
  • "učení se" novým věcem
  • podpora slovenštiny
  • podpora zvratných zájmen se a si
  • porozumění novým slovům a číslovkám
  • automatické aktualizace nových verzí
verze 1.0
  • hlasový výstup
  • podpora velkých písmen (např. ve jménech)
verze 2.0
  • neuronová síť (systém myšlení)

To ovšem za předpokladu, že se bude IQ Pokyd dále vyvíjet. V současné době nemám příliš času, o další rozvoj však budu maximálně usilovat.

Mimo to bude zprovozněn SkypeBot, což bude IQ Pokyd naslouchající na Skypu (instant messengeru) a odpovídat komukoliv na internetu.

Bude IQ Pokyd v příštích verzích umět funkce, které měl původní Pokyd (vtipy, pluginy atd.) ?

Do budoucna předpokládám mluvení počítače, i když člověk nic neříká, zabudování vtipů a kecání dvou počítačů mezi sebou, možná pak zábavnou předpověď počasí.
Pluginy se už určitě neobjeví, protože příliš nesouvisí s programem a jejich opětovné naprogramování by mě stálo spoustu času, který raději vložím do zlepšování samotné inteligence programu.

Bude IQ Pokyd mluvit i jinými jazyky než je čeština?

IQ Pokyd je na češtinu přímo vázán, slovní zásoba, definice gramatiky i odpovědí vychází právě z češtiny, takže jiné jazyky mimo češtiny a slovenštiny by byly přílišným zásahem do programu.
Nicméně v budoucnu (ideálně v příští verzi) počítám s podporou slovenštiny. Co to znamená? Program bude nadále mluvit česky, ale bude umět (volitelně) slovenské skloňování, gramatiku, zásobu slov. Je to proto, že slovenština je velice podobná češtině a byla by škoda ji tedy nezahrnout (je dokonce o dost pravidelnější a tedy lehčí na naprogramování). Nicméně bude se jednat pouze o podporu, na kompletní překlad prostě nemám lidi :-)

Dokáže někdy IQ Pokyd rozumět mluvené řeči a sám "mluvit" hlasovým výstupem?

Porozumění mluvené řeči je jedna z nejnáročnějších disciplín počítačových systémů a v současné době o tom neuvažuji.
IQ Pokyd však sám bude mluvit a později zde bude i obrazový výstup. Na syntéze (produkování) mluveného slova pracujeme již nyní, kompletní zpracování bude však ještě nějakou dobu trvat.

Řešení problémů s programem

Co dělat v případě nesnází:

ProblémMožné řešení
Políčko pro zadávání textu má žlutý text na bílém pozadí nebo pozadí okna je jen změť barev Tato chyba se na některých grafických kartách / systémech projevuje, zatím jsem nezjistil přesně, na kterých a co s tím. Řešením je zobrazování pozadí zakázat - v nastavení zaškrtněte volbu "Nezobrazovat pozadí okna", popř. spusťte program s parametrem "-bezpozadi", tedy "IQPokyd.exe -bezpozadi" (z příkazového řádku - ve výsledku to má tentýž efekt). To nastaví černou barvu pozadí okna, bílou barvu a černý text v políčku pro zadávání věty.
Na disk s IQ Pokydem nelze zapisovat Program si zapisuje na disk poměrně dost věcí - záznamy rozhovoru, profil člověka, nové významy, na začátku seznam slov atd. Pokud nelze zapisovat, může to být způsobeno:
  • Na disk obecně nelze zapisovat (např. na CD nebo DVD)
  • Na disku není dostatek místa
  • Program nemá dostatečná práva na zápis
V případě problémů stačí přesunout celý program na jiný disk. Pokud byste chtěli pouštět IQ Pokyd např. z CD či DVD, spusťte ho z příkazového řádku s parametrem "-readonly", tedy "IQPokyd.exe -readonly". Téhož efektu dosáhnete zatržením volby "Nezapisovat na disk" v nastavení. Program se pak ani nepokusí cokoli zapsat.
Počítejte ovšem s tím, že nebudete moci natrvalo měnit nastavení atd. a pokud nebude přítomen soubor "SLOVNIK.TMP", tedy "velký slovník", bude se vytvářet při každém spuštění znova.
Program hlásí "Bohužel, udělalo se mi zle a nemůžu dál pokračovat..." V tom případě mi prosím pošlete informace, které hlásí společně s tím (tj. soubor a řádek v souboru, kde nastala chyba), a co jste udělali (nebo napsali) těsně před tím, než chyba nastala. Pokusím se ji co nejdříve opravit.
Program při skončení hlásí "neuvolněné paměťové bloky..." Platí totéž co v předchozím případě, pošlete mi prosím o ní zprávu. Tato chyba se sice už hledá hůř, tohle upozornění je spíš "s křížkem po funuse", ale přesto bych byl rád, kdyby jste mě o ní informovali.
Mám jiný problém... Napište mi na e-mail (kontakt na konci této stránky) a pokusíme se ho vyřešit.

V čem je napsán zdrojový kód IQ Pokydu a jak je dlouhý?

Jádro programu je napsáno v čistém C++, uživatelské rozhraní pomocí API a MFC funkcí a celý program je přeložen v Microsoft Visual C++ 6.0.
Samotný zdrojový kód bez slovníků, pomocných prográmků a "automatického" kódu má velikost 716 kB, je ve 41 souborech a má 18.040 řádků.
Včetně slovníků a pomocných prográmků potřebných k naprogramování má potom 81 souborů, zabírá 1,17 MB a obsahuje 35.369 řádků.

Proč se IQ Pokyd jmenuje IQ Pokyd a jak přišel ke svému jménu jeho výrobce KÝBLSoft?

Název IQ Pokyd:
Původně to měl být program jmenující se něco jako "Pokec". Jenže program s názvem Pokec už v té době existoval, navíc by se takové jméno pletlo se spoustou internetových chatů. A jako je "pokec" od slova "kecat", "pokyd" je od slova "kydat" - tedy tlachat, plácat nesmysly (někdo si pod tím slovem představí také sedláka v gumákách s vidlemi u hnoje). Opravdu, zpočátku nebyly s Pokydem žádné velké plány, měl to být hlavně program umožňující každému zdarma si vyzkoušet pokecat s počítačem. Z toho vzniknul tedy program s názvem Pokyd.
Ten také dlouho existoval, ale právě proto, že s původním Pokydem nebyly do budoucna žádné velké plány, bylo jádro programu velice slabé. Proto jsem se jednoho (krásného) dne rozhodl, že přepracuji Pokyd od základů, aby mohl být inteligentnější. Přepracování trvalo plné 2 roky a také si vyžádalo mírnou změnu názvu - proto to vsunutí přívlastku "IQ" před "Pokyd".
Nyní je to tedy IQ Pokyd.

Název KÝBLSoft: Tam je historie trochu starší. Předem bych však chtěl říct, že KÝBLSoft je pouze označení, pod kterým se prezentuji (prezentujeme), tedy žádná "oficiální" společnost. Slovo "kýblsoft" jasně vzniklo ze slov "kýbl" a "soft". "Soft" znamená software a je to běžné tvoření názvů softwarových vývojářů. A proč "kýbl"? Kdysi dávno nás (jako malé) zachvátilo šílenství s tímto slovem. Je to prostě na první pohled komické slovo vyjadřující celkem běžnou věc. A toto šílenství se projevilo (když nepočítám například náhlé vyprodání veškerých kýblů v obchodě partou kluků) i pojmenováváním "kýbl" všeho, co právě chtělo pojmenovat. A tak vzniknul KÝBLSoft. Dnes už samozřejmě žádné šílenství (moc) nepokračuje, nicméně je to název, který na první pohled zaujme a lidé si ho zkrátka lehce pamatují.
A proč je slovo "kýbl" psáno velkými písmeny? Nebyl to právě šťastný krok, ale v té době se mi velká písmena líbila. Je to však nestandardní, proto je klidně přípustné i např. "Kýblsoft" nebo "KýblSoft".

Kontakt a kde stáhnout novou verzi

Aleš Janda
E-mail: iqpokyd@kyblsoft.cz
WWW (zdarma aktualizace): http://iqpokyd.kyblsoft.cz
Telefon: 777 641 869
Adresa: Sídl. U Cukrovaru 1069
Kralupy nad Vltavou
278 01

Aleš Janda, autor programu