Počítač rozumí řeči kandidáta

Jak posbírat CV z různých portálů do jedné databáze? Jak z textového souboru dostat strukturovaná data? Co to je textová analytika a parsování textu? Jak počítač porozumí přirozenímu jazyku?

Častým trápením personalistů je přenášení dat o kandidátech mezi různými systémy. Většina z nás sbírá životopisy z více zdrojů: z pracovních portálů, z LinkedInu, na přímo mailem od kandidátů, z kariérních stránek apod. Pro efektivní řízení náboru je třeba mít jeden systém, ve kterém je možné všechny kandidáty skladovat a zprocesovat. Jedná se o ATS systémy (Applicant Tracking System) jako například JobQuick, SAP, Taleo apod.

wires

ATS systémy mají podobu databáze, kde jsou data v polích jako “Jméno”, “Příjmení”, “Dosažené vzdělání” apod., zatímco životopisy přichází jako nestrukturovaný blok textu ve Wordu. Nestrukturovaný textem nemyslím odrážky nebo formátování, ale to, že to je volný text, který je třeba nějak rozškatulkovat do polí.

Parsování textu

Musíme tedy řešit dva problémy: jak přesunout životopisy z jednoho systému do druhého a jak data z životopisu přesunout do polí v databázovém systému. Oba problémy se dají řešit ručním přeťukáním údajů, ale tím se pochopitelně zabývat nebudeme, protože existují lepší postupy.

Životopisy z více zdrojů do jednoho systému

Posílání dat z jednoho systému do druhého lze řešit .xml soubory pro výměnu dat, či přímým napojením na API (Application Programming Interface) pracovního portálu. Nebudu zabíhat do detailů, výsledkem je, že kandidáti posbíraní například v Teamiu se automaticky kopírují do ATS systému (například JobQuick).

Pro personalisty je to nejpohodlnější řešení, ale podmínkou je, že provozovatelé portálů a dodavatelé software spolu spolupracují. To u velkých hráčů není problém, ale řešení něco stojí a může se objevit malý portál, kde výměna dat nemusí být zajištěna.

25392378763_f90e8e23d3_z

Zajímavé řešení mi nedávno ukazoval Štěpán Bartyzal, majitel firmy Český trh práce, provozovatel regionálních pracovních portálů Práce v Hradci, Práce v Liberci apod…”

Jeho ATS systém „Recruitis“ umožňuje natáhnout do sebe životopisy z jiných portálů přes email. Funguje to tak, že si nejprve necháte přeposílat životopisy na svůj email.  Například z G2 chodily takovéto emaily se životopisem v příloze:

Screen Shot 2016-07-24 at 21.33.01

Emaily, které vám přišly do inboxu, pak přepošlete na systémový email, který vám Recruitis přidělí (něco ve tvaru XYZ@pracevcr.cz). Tím ho vlastně pošlete “do systému”, který automaticky vytvoří nového kandidáta a životopis k němu přiřadí. Umí zároveň i jednoduché parsování, to znamená, že z textu emailu vytáhne základní informace (jméno, příjmení, zdroj a název pozice) a to vyplnění do příslušných polí u nového kandidáta.

Recruitis - nahrání CV

Nemusíte klikat jednoho kandidáta po druhém, emaily je možné hromadně přeposlat a nebo si v Outlooku nastavit, že každé CV od odesílatele „LMC G2“ se automaticky přepošle na adresu Recruitisu. Podobně to řeším, když si emaily z portálů přeposílám do Evernote.

Štěpánův systém mě zaujal množstvím dalších vychytávek. Může být například propojený s vaším kalendářem v Outlooku nebo Gmailu a rovnou vám zobrazí váš kalendář, kde vidíte, kdy máte volno a kandidáty můžete přetažením zařadit do kalendáře a automaticky jim poslat pozvánku na daný termín.

Recruitis

Další věcí, kterou systém umí, je například nabídka z menu pohovorových otázek, které si můžete přetáhnout do nového listu a pak si vytisknout podklady k pohovoru.

Pozn: Podobnou věc jsem viděl v programu Halogen, kde šli ještě dál: v systému byly zadané všechny pozice a k ním požadované kompetence. Když se otevřela nová volná pozice, systém sám sestavil podklady pro kompetenční interview.

Prozumění lidské řeči

Jedna věc je dostat životopisy do jednoho systému, ale čeká nás převedení údajů z životopisu do databázové podoby. Tomu se říká parsování, ale správný odborný termín je Syntaktická analýza a jedná se o počítačové zpracování lidského jazyka.

Problém je, že gramatika přirozeného jazyka je nejednoznačná. Jednoduchý příklad z CV: můžete mít napsáno “Trvalé bydliště: Višňová 13, Vlachovo Březí”, nebo “Adresa: Višňová ulice 13, Vlachovo Březí” a nebo také jenom “Vlachovo Březí”. Člověk okamžitě pochopí, o co jde. Jak ale počítač zjistí, co je co? Poslechněte si Štěpánovo vysvětlení:

Používají se složité algoritmy, kontextuální analýza, porovnávání s databázemi pojmů a podobně. Nebudu zabíhat do detailů. Důležité je, že výsledkem parsování je přeměna životopisu jako textu ve Wordu do strukturované databáze například v SAPu.

Existuje několik programů jež toto umí a nejlepším na trhu je program Textkernel, který jsem testoval. Podívejte se na ukázku, ze které bude všechno jasnější:

 

Vypadá to hodně jednoduše a působivě a proto jsem chtěl zjistit, jaké jsou praktické aplikace. Popovídal jsem si o tom se Zdeňkem Bajerem z Datacruitu:

Zdeněk Bajer

Jaké máš praktické zkušenosti s parsováním CV?

V Graftonu jsme asi rok a půl dělali s programem Daxtra, když jsme hledali cesty, jak zefektivnit práci se zamítnutými kandidáty. Chtěli jsme je uložit do databáze a zároveň automaticky generovat zamítací odpovědi. Problém byl, že systém měl chybovost cca 15 až 20 % a to už je hodně, protože pak někdo musí strávit čas opravami a kontrolou. Sice to na jedné straně ušetřilo čas konzultantů, ale vytvořilo práci někomu jinému.

Týkalo se to jenom češtiny, nebo byla stejně nízká úspěšnost v jiných jazycích?

Vím, že v angličtině byla úspěšnost o dost vyšší, protože na angličtinu je naprostá většina těchto systémů stavěných. Čeština je specifická a vzhledem k velikosti trhu se firmám nevyplatí do vývoje algoritmů pro češtinu příliš investovat.

Jak to nakonec s Daxtrou skončilo?

Vyhodnotili jsme, že poměr cena versus vysoká míra chybovosti se nevyplatí.

Jak se díváš na Textkernel?

Ta technologie je super a úspěšnost byla 85-90%, někdy dokonce až 95 %. Nicméně důležité ji si zodpovědět otázku, k čemu to přesně potřebuji. Přece jenom je to celkem drahé.

photo-1468070454955-c5b6932bd08d

Kdy podle tebe má takový systém smysl a kdy ne?

Podle mě to má smysl, pokud data z životopisu potřebuji nějak dále zpracovávat, například automaticky vytvářet nějaké dokumenty apod. Pak to asi smysl má. Pokud ale chci jenom mít možnost v životopisech vyhledávat, tak nepotřebuji mít strukturovaná data. Stačí fulltextové vyhledávání.

Vzhledem k ceně, kdy se platí za každé zpracované CV, je třeba dobře promyslet, která CV tím systémem zpracovávat. Ceny se pohybují kolem půl eura za životopis a pokud se bavíme o tisícovkách životopisů, tak je to hodně.

Máte v ČR klienty, kteří takovou službu požadují?

Ano, pár jich je, a pak spolupracujeme právě s Textkernelem. Popravdě mi ale připadá víc zajímavější jejich software na sémantické vyhledávání. Když vyhledáváš fulltextově, zadáváš přesně ta slova, která má vyhledávač najít. Sémantické vyhledávání ale stojí na porozumění textu, vyhodnocování synonym, kontextu a souvislostí.

Můžeš uvést příklad?

Když vyhledáváš a zadáš SQL, tak ti počítač vyfiltruje CV, kde se vyskytuje slovo SQL. Nic víc. Když si ale člověk pročítá CV, chápe informace v kontextu. To znamená, že kandidát, který umí PHP, tak s velkou pravděpodobností umí i SQL, i když to v životopise nemá. A to právě sémantické vyhledávání „chápe“.

Stejně tak, když zadáš například „programátor“, tak ti vyhledá i „vývojář“, „developer“ apod. Tímto směrem se bude textová analytika vyvíjet. Směrem k chápání kontextu a souvislostí.