Příspěvky

Zobrazují se příspěvky se štítkem CVUT

why don't you just Google it?

Obrázek
Předminulý týden jsem od samotného šéfa dostal za úkol porovnat naší performance s Googlem. Vlastně to probíhalo tak, že se o tom spolu bavili s mým mentorem, který mu na to řekl "Určitě, Roman to zařídí." A tak jsem to zařídil. Nejprve jsem teda netušil, že google nějaký question answering performance vůbec má. Musel jsem kvůli tomu tomu nastavit jazyk v opeře na angličtinu s pomocí přepínače &hl=en. Teď jsme schopni si to nechat zobrazit, ale nejraději bychom to chtěli jako čistý text. Er. Na to se používá nástroj curl, který stáhne celou stránku tak, jak jí dostane prohlížeč. Musel jsem pak řešit fakt, že Google dává pro různé prohlížeče různé výsledky, takže jsem musel zfalšovat můj tkz. user agent. Prostě musel curl při dotazu předstírat, že je firefox. Vpravo je v rámečku přímo odpověď od Googlu Ok, tak jsme schopni stáhnout stránku jako prohlížeč. Koukali jste se někdy na zdrojový kód stránky? Já se maximálně díval na nějaký element, nebo fotku ve facebook...

(Computer) science, bitch

Poslední dobou neřeším přímočaré úkoly, ale naopak věci, které jsou progresivně horší a horší. Začalo to tak, že jsem měl implementovat tkz. fuzzy search v seznamu názvů. To je vyhledávání, které vám vrátí výsledek, i když napíšete otázku s nějakou chybou. Dělá se to tak, že spočítáte editační vzdálenost pro všechna slova a vyberete ta s nejmenší. Editační vzdálenost jenom znamená, kolik změn musíte udělat, abyste přeměnili řetězec A na řetězec B. Například X-Men a X-men má editační vzdálenost 1, protože musíte změnit velké M na malé m. Samozřejmě, ten algoritmus na počítání editační vzdálenosti je přímo úměrný délce slov a těch slov máte řadově 10 na sedmou (10 000 000), takže pro každý dotaz počítat 10^7 editačních vzdálenosti je dosti nemocné. A co teď. Vědecký článek, podle kterého jsem to implementoval, uváděl dvě možnosti. Jedna byla aproximační (tj. nemá zaručeno, že slovo najde, přestože existuje) a rychlá, druhá kompletní ale 100 krát pomalejší. První fungovala na bázi b...

YodaQA, týden třetí

Včera jsem si odchodil dalších 24 hodin, co mám týdně. (3 krát 8 hodin)  Dvakrát se něco rozbilo a já to musel trochu v panice opravovat, protože už jsem to odeslal do hlavní větve. Nakonec jsem ale to webové rozhraní vylepšil, teď se u jednotlivých odpovědí zobrazují odkaz strategie, jak k nim YodaQA dospěl, což v praxi znamená jenom "hledal jsem v celém dokumentu, hledal jsem v názvu, hledal jsem v strukturované databázi. Přímo důvody mě ještě čekají, to bude trvat déle.  Vtipné bylo, že v úterý jsem musel místo programování testovat naší filmovou odnož a to spočívalo v tom, že jsem měl otevřený spreadsheet a do toho si zaznamenával otázky a odpovědi. Vtipné to vlastně není. Je to příšerný vopruz. U generických otázek to alespoň občas dá nějakou překvapivou otázku, ale tady strojově (chápete? strojově, hahahaha) hledáte mezi 25 nabízenými větami správnou odpověď. Zatím náš systém docela selhává, i otázky typu "kdo režíroval X" občas posere. Problém je trochu v...

YodaQA

Obrázek
Tohle bude takové menší neoficiální povídání o mém působení v summer campu eClubu, kam jsem se letos přihlásil. To je taková brigáda, kdy vám dají 8000,- měsíčně za to, že spolupracujete na všemožných projektech souvisejících s big data, machine learningem, domácí automatizací, cloudem či mobilních aplikací. Přiznám se, že můj vstupní pohovor dopadl příšerně. Přišel jsem fakt nepřipravený a asociální a hned při první otázce jsem zamrzl. Bylo to "Co vás baví?" Ach jo. Tohle musím natrénovat. Každopádně ze mě vypáčil, že vím, co je to quicksort a linked list a rovnou mě přiřadil. Nevím, jestli mě tím odbyl, ale tvářil se, že to je dobrá nabídka. Doteď nevím, jestli se ke mně Big Boss chová ironický, nebo ne. Každopádně můj projekt je (zatím..) YodaQA, neboli "Yet anOther Deep Answering pipeline", což je ve zkratce (open source!) systém, kterému dáte nějakou konkrétní otázku, jako například "Who wrote Neuromancer" a ono to tu otázku analyzuje a dá vám kon...