Když pracuji s analýzou klíčových slov, často mě zajímá wordcloud tedy četnost jednotlivých slov v rámci celého datasetu. Proč? Narazím tak na důležitá slova se kterými při optimalizaci obsahu webu nepracuji. Nebo naopak mohu hromadně odfiltrovat fráze, které obsahují slova, která mě nezajímají. Dříve jsem na to používal speciální online nástroje, jako je Wordcloud od Jardy Hlavinky, jehož funkce jsou k čištění datasetu přímo uzpůsobeny. Po OpenRefine školení od Filipa Podstavce už k tomu ale používám přímo OpenRefine. Z funkcí, které mohu dělat nad sloupcem s klíčovými slovy si stačí vybrat Facet/Customized facets/Wordfacet, ve vzniklém facetu si seřadím výrazy podle četnosti (count) a wordcloud je na světě. 

word facet openrefine

Při práci s klíčovkou mi ovšem ještě přínosnější než worcloud přijdou četnosti n-gramů slov v datasetu. N-gram v případě práce s textovými řetězci je sled n- po sobě jdoucích slov. Takže například tříslovná fráze „běžecké lyže Atomic“ se dá rozpadnout na dva bi-gramy: „běžecké lyže“ a „lyže Atomic“.  V rámci analýzy klíčových slov chci nejčastěji zjistit informace právě o bi-gramech a také o tri-gramech. 4-gramy a výše už většinou moc nemá cenu řešit, protože jejich četnost v datasetu je zanedbatelná a při optimalizaci tyto údaje moc nepomohou. A teď k tomu, jak si takový facet n-gramů v OpenRefine udělat. Je to podobně jednoduché jako u wordcloudu, jen je třeba u sloupce s klíčovými slovy zvolit možnost Facet/Customized facet… a pro bi-gram vložit následující vzoreček:

n-gramy v openrefine

Pokud bychom chtěli mít ve facetu tri-gramy ve vzorci bychom nahradili číslo 2 za číslo 3, tedy ngram(value,3). Asi vás napadne, k čemu jsou n-gramy v SEO dobré, ale pro jistotu zmíním pár scénářů, kdy se mohou hodit:

  • V OpenRefine si vyfiltruji všechna klíčová slova, na která nejsem dohledatelný (pozice 60+) a nad touto množinou klíčových slov si udělám n-gram. Když si fráze seřadím podle četnosti vypadnou mi ty, na která mám pravděpodobně web velmi špatně optimalizovaný (nebo ty, které v klíčovce mít nechci, protože jsou nerelevantní).
  • Bi-gramy nejhledanějších frází (třeba > 100) si porovnám s bi-gramy titulků a nadpisů na webu. Vyplavou tím další možnosti potenciálního zlepšení.
  • Přímo přes OpenRefine si mohu nascrapovat stránky webu, zjistit nejčetnější n-gramy a porovnat je s frázemi, na které tyto stránky přivádí návštěvnost.
  • Již zmíněné čištění klíčovky, ale na to často stačí Wordcloud.

Ještě bonusový hack na konec. Pokud si chci všechny n-gramy stáhnout a pracovat s nimi dál, stačí ve facetu kliknout na možnost #### choices a všechny n-gramy i s tabulátorem oddělenými četnostmi se mi zobrazí v editovatelném okně, ze kterého si je mohu vykopírovat jinam. Třeba do nového OpenRefine Projektu.

Další užitečnou funkcí jsou skip-gramy. O těch třeba někdy příště.

Máte svoje oblíbené scénáře, ke kterým n-gramy používáte? Podělte se o ně v komentářích.

Použité zdroje:

https://github.com/OpenRefine/OpenRefine/wiki/GREL-String-Functions