k47.cz
výběr kolo foto Praha povídky kultura
TECH ▞▞ | twitter RSS
««« »»»

Podobnosti & doporučování 4

4. 11. 2020 — k47

Soft­ware, který pohání k47čku a tucet dal­ších webů, stále pro­chází evo­lucí i když po­ma­lou. Dosáhl ur­či­tého stupně do­spě­losti a není třeba nic zá­sad­ního měnit1 . Zbývá jen do­ne­ko­nečna do­la­ďo­vat drob­nosti a de­taily.

Jedním z nich je systém de­tekce po­dob­ných článků, které se uka­zují pod každým textem. Má ně­ko­lik růz­ných úrovní & forem: podle tagů, ex­pli­cit­ních me­ta­in­for­mací, jestli název ne­vy­padá, že jde o sou­část série, a na­ko­nec dle obsahu sa­mot­ného. Po­slední me­cha­nis­mus je nej­o­bec­nější, nejméně přesný a ne­zbytný jako záloha, když všechny pře­de­šlé metody selžou.

V mi­nu­losti jsem na­škrá­bal pár od­stavců, jak se systém po­stupně vy­ví­jel do uráž­livě tri­vi­ál­ních forem po o něco méně pri­mi­tivní verze. A evo­luce pomalu po­kra­čuje. V po­slední době jsem pře­četl ně­ko­lik paperů po­jed­ná­va­jí­cích o pro­blému de­tekce klí­čo­vých slovně­kte­rých při­leh­lých té­ma­tech. Autoři hlásí lepší vý­sledky, když berou v potaz cen­t­ra­litu grafu. I když pravda – každá aka­de­mická pu­b­li­kace vždy hrdě pro­hla­šuje, že jejich věc pře­ko­nává state of the art a když jich pře­lous­káte v řadě dvacet, za­čnete po­chy­bo­vat, jestli všichni mluví pravdu. Pokud všichni sku­tečně do­sáhli pro­gresu nad každým mi­nu­lým po­či­nem, neměli bychom žít jako ne­smr­telní ky­bor­gové ve fu­tu­ris­tické bu­douc­nosti ko­lo­nií kolem Ju­pi­teru? Ale to za­bí­hám…

Cen­t­ra­lita grafu zna­mená page rank a page rank zna­mená ite­raci do kon­ver­gence. Z textu se nejdřív nějak vy­tvoří graf, buď na zá­kladě spo­lu­výskytu ter­mínů (ty­picky před­fil­tro­va­ných a vá­že­ných kla­sic­kými sta­tis­tic­kými me­to­dami) nebo v no­věj­ších pra­cích na zá­kladě míry po­dob­nosti vy­mač­kané z word2vec. Pak se na tomhle grafu roz­točí page rank a vy­le­zou nej­dů­le­ži­tější ter­míny – ty nej­více na­po­jené na ostatní klí­čová slova. Pak ty­picky pro­ve­dou re­ran­king, který vý­sledky doladí k do­ko­na­losti. Nebo aspoň tak blízko, jak se k do­ko­na­losti můžou dostat vzhle­dem k po­u­žité metodě. Není to ani zda­leka per­fektní, ale asi ±to nej­lepší, co může vy­pro­du­ko­vat něco, co není neu­ro­nová síť.

Tak tohle jsem naim­ple­men­to­val tady na k47čku. Tedy něco na ten způsob. Page rank s mnoha ite­ra­cemi dokud ne­do­sáhne sta­bil­ního stavu není zrovna nej­rych­lejší & nechce se mi ho pro­vá­dět na každém článku při každé ak­tu­a­li­zaci. Cením si rych­losti, s jakou se web ge­ne­ruje. Není moc věcí, které bych kdy udělal dobře, jak v životě tak mimo něj, musím se držet aspoň téhle tri­vi­a­lity & ne­sna­žit se ji anu­lo­vat jako cenu za po­kroku v jiné ob­lasti.

Na­cvakal jsem lem­plác­kou verzi – slovo do­stane váhu dle součtu vah ně­ko­lika nej­po­dob­něj­ších slov dle word2vec. Od­po­vídá to jakoby jed­nomu ne­ce­lému kolu page ranku. Ten nor­málně ite­ra­tivně váží každé slovo dle všech pří­cho­zích hran a každá ite­race ho posune o něco blíže k fi­nál­ním vahám. Laj­dácká verze vý­po­čet posune ký­že­ným směrem jen tro­šičku & hned skončí. Ome­zení na ně­ko­lik nej­po­dob­něj­ších slov má svůj smysl: klade odpor ne­spe­ci­fické slovní vatě, která je běž­ných tex­tech běžná, ale nemá in­for­mační hod­notu. Takhle to vybere ně­ko­lik nej­sil­něj­ších sig­nálů a zbytek zahodí, aby se ne­u­to­pil v šumu. A vypadá, že to fun­guje o něco málo lépe, než minulá in­kar­nace do­po­ru­čo­vače.

Klí­čová slova v jednom star­ším textu jsou ta­ko­váhle:

nová verze: zuck, facebook, demokraticky, institucí, soukromá, zisk, korporace, vlastnické, soc, volená, pravidla, fb, vlastník, korupci, popírání

stará verze: korupci, zuck, institucí, demokraticky, facebook, étos, zisk, vhled, slitování, podepřen, dezinformací, platící, znějí, přebere, xenofobii

Správně to ig­no­ruje na­ho­dilá slova jako étos, vhled, sli­to­vání, po­de­přen, znějí, pře­bere, xe­no­fo­bii. Ně­která z nich jsou častá a příliš obecná, jiná naopak vzácná, ale ani jedno z nich se netýká tématu článku. Nová verze ty vzácné od­fil­truje pro­tože nemají oporu v dalším ter­mínu a ty časté, pro­tože po­dob­nost s jinými není vysoká.

Jako vždycky ale netrvá dlouho než se objeví případ, kde to tra­gicky ne­fun­guje. Třeba texty s an­g­lic­kými ci­ta­cemi. Pro­tože jich bývá málo, al­go­rit­mus vy­hod­notí, že každý an­g­lický úryvek je po­dobný kaž­dému jinému a do­po­ručí ty s aspoň jednou an­g­lic­kou větou.


  1. Není to úplně pravda. Mezi oka­mži­kem, kdy byl ten od­sta­vec napsán a kdy se dostal na web, as­cii­blog zažil pár celkem roz­sáh­lých zásahů a re­struk­tu­ra­li­zací.
píše k47 & hosté, ascii@k47.cz