Clusterizace nespojuje jen různé tvary jednoho slova do jedné skupiny,
ale může pomoct se zkrácením doby strávené čištěním a klasifikaci
klíčových slov během tvorby analýzy klíčových slov. Mrkněte na
detailní návod, ve kterém vás všemi taji clusterizace provede naše SEO
konzultantka Dominika Mašková.
Co bude potřeba
1) Účet v nástroji Marketing Miner (český nástroj, který
používá clickstream data)
2) Stažený OpenRefine v počítači – jak si nastavit OR
najdete v návodu od Pavla Ungra
Clusterizace v Open Refine se skládá z několika algoritmů,
které porovnávají hodnoty a spojují do skupin takové, které by mohly
reprezentovat tu samou věc. Čím větší dataset s klíčovými slovy
zpracováváme, tím více nám clusterizace může zkrátit dobu strávenou jak
nad čištěním, tak při klasifikaci. Abyste z clusterizace dostali maximum
doporučuji si přečíst aspoň něco málo o tom, jak jednotlivé algoritmy
fungují a jak je nastavit.
Příprava datasetu
Na začátku máme surový dataset nasbíraných klíčových slov, který
není očištěný od nerelevantních klíčových slov. Jediné, co je potřeba
udělat, je odmazat duplicity (stejná klíčová slova, která
se do datasetu při sběru dostala vícekrát). Můžete k tomu využít rychlou funkci v Excelu nebo to jde také přes OpenRefine. Není potřeba odmazávat nadbytečné mezery,
provádět normalizaci nebo odmazávat diakritiku, to vše funkce Cluster
and edit v OpenRefine bere v úvahu.
Dataset by měl obsahovat následující sloupečky:
- klíčová slova
- celková hledanost (součet Google a Seznam)
- hledanost Google
- hledanost Seznam
Původní názvy sloupečků pro hledanost Google a Seznam
(Google/Sklik Search Volume) z Marketing Mineru prozatím
neměňte.

Abychom mohli později využít některé skripty, vytvoříme si ještě
kopii sloupce s klíčovými slovy (na obrázku výše
pojmenovaném Keyword). A to tak, že klikneme na sloupeček s klíčovými
slovy > Edit column > Add column based on this column. Do pole
New column name napíšeme libovolný název sloupce a v poli
Expression ponecháme výchozí hodnotu value.
Clusterizaci budeme provádět na původním sloupci.
Jednotlivé algoritmy clusterizace si ukážeme při tvorbě analýzy
klíčových slov na téma Pivo. Funkci clusterizace najdeme v Open Refine pod
nabídkou sloupečku > Edit cells > Cluster and edit.

TIP: Více o tom, jak pracovat s analýzou klíčových slov a jak
ji využít pro tvorbu kvalitního obsahu, i jak s obsahem dál pracovat, aby
síla vašeho webu rostla, se dozvíte na našich školeních
SEO a link buildingu. |
Samotná clusterizace
Clusterizace je jednou z nejsilnějších funkcí OpenRefine. Clustry se
vytváří automaticky podle různých clustrových algoritmů, které pracují
na základě dvou metod:
Metoda Key Collision
Metoda Key Collision vytváří pro všechny fráze „klíč“.
Pokud je tento „klíč“ stejný pro více frází, spojí je dohromady.
Výpočet této metody není nějak složitý, a proto je výsledek hotový
během několika sekund.
1 Algoritmus Fingerprint
Algoritmus Fingerprint, pracující podle metody Key Collision, je rychlý a
jednoduchý. Je u něho nejméně pravděpodobné, že dojde ke špatnému
návrhu. Generování „klíče“ probíhá následovně:
- odmaže vícenásobné mezery, úvodní a koncové mezery
- převede velká písmena na malá
- odmaže interpunkci
- odstraní diakritiku (normalizace) > převod znaků
na jejich podobu v ASCII
- rozpozná rozdílné pořadí slov
- rozpozná v jedné frázi vícekrát stejné slovo

2 Algoritmus Ngram-Fingerprint
Klasický Fingerprint pracuje s celými
frázemi.AlgoritmusNgram-Fingerprint vytváří „klíč“ tak, že
převede frázi na tzv. n-gramy. N-gram představuje řadu n
po sobě jdoucích položek z dané posloupnosti.

Kdo potřebuje praktickou ukázku, tak doporučuji rozklad na n-gramy
pomocí generátoru, díky čemuž pochopíte i jak funguje Ngram
Size. V praxi to znamená, že se spojí různě dlouhé fráze,
které obsahují stejná písmena. Z tohoto důvodu dochází u této metody
místy i ke špatným návrhům, je tedy potřeba jednotlivé návrhy
trochu zkontrolovat.

Čím víc budeme zvyšovat hodnotu Ngram Size, tím více bude první
řádek obsahovat nesmyslných návrhů spojení do clustru. Pro ještě
relevantní návrhy je potřeba odscrollovat dolů, jak ukazuje
obrázek výše.
3 Algoritmy Key Collision / Metaphone3 (pro angličtinu) &
Cologne-phonetic (pro němčinu)
Občas se hodí použít i tento algoritmus, který clusterizuje
slova na základě jejich výslovnosti. Často dochází k tomu, že
lidé do vyhledávání píšou nesprávné názvy značek, které se obtížně
vyslovují.

V češtině může být kromě špatné výslovnosti značek problematické
také psaní s/z, f/v, t/d. Konkrétně u českého jazyka nabízí
relevantnější clustry spíše Cologne-phonetic.
Předchozí algoritmy pracující podle metody Key Collision jsou na
výkon počítače málo náročné a výsledky nevyžadují příliš
kontrolovat. Během chvilky je hotovo, takže se vyplatí používat při
každé analýze klíčových slov.
Další algoritmy, které chci uvést, už ale potřebují více
kontroly, a tedy i více stráveného času. Je na uvážení každého, jak
velký má dataset a jak moc se mu vyplatí trávit čas hledáním dalších
spojení. Chceme-li ale spojit do jedné skupiny všechny varianty jednoho
slova, tedy vezmeme-li v potaz, že čeština pracuje se 7 pády, časováním
sloves, jednotným/množným číslem, tak budeme potřebovat i následující
algoritmy.
Metoda Nearest
Neighbor
Na rozdíl od Key Collision metody, tak metoda Nearest Neighbor
umožňuje nastavit vzdálenost či rozdílnost, kterou jsme ochotni
tolerovat.
Vzhledem k náročnosti výpočtu dochází ale k „blokování“ (Block
Chars). To znamená, že se namísto řetězců porovnávají větší bloky.
Dataset s 3 000 klíčovými slovy by bez „blokování“ (nastavení Block
Chars) vyžadoval 4,5 milionu výpočtů vzdálenosti. Když byste to zkusili
u běžného počítače, tak se sebere a vyskočí z okna. Díky
„blokování“ se ale vyžaduje k porovnání jen 45 000 výpočtů. Pokud
ale máte dataset o několika tisíci slovech, tak se výsledků nemusíte
dočkat ani s „blokováním“. Pokud máte ještě navíc málo výkonný
počítač, tak s tím vůbec nepočítejte.
1. Algoritmus Levenshtein
Levenshtein je asi nejúčinnější algoritmus. Levenstein
či Levensteinova vzdálenost vkládá, maže a nahrazuje různý počet znaků
ve slovech, aby zkusil nalézt spojení. Kolik znaků zkusí nahradit, aby
nalezl více návrhů ke spojení, řídíme pomocí hodnoty
Radius. Ten určí, kolik algoritmus musí provést
editačních změn, aby se z jedné fráze stala druhá.
Příklad: „kuře na pivu“ a „kuře na pivě“ má
editační vzdálenost 1, protože požaduje jedinou operaci, což je změna
„u“ na „ě“, aby se slova shodovala. Více jak 3 editační změny
nedávají u klíčovky smysl.
Díky tomuto algoritmu jsme ale schopni skutečně spojit do jednoho clusteru
všechny varianty jednoho slova (pády, skloňování, časování a hlavně
jednotné/množné číslo). Rozpoznává také překlepy, pravopisné chyby a
cokoli, co předchozí metody nezachytily. Je potřeba si však dát
pozor, tahle metoda generuje více chybných návrhů.
Výsledky je nutné ručně projít.

(Radius = hodnota vzdálenosti / Block
Chars = jak velké bloky se mají porovnávat)
Je možné případně snižovat
hodnotu Block Chars, abyste získali více návrhů ke
spojení do clusterů. V praxi se ukázalo, že jít pod hodnotu 3, je
ztráta času.
2. PPM
PPM metoda provádí statistickou analýzu a predikuje pomocí
částečné shody, jaký znak bude následovat v řetězci. Tato
metoda generuje ale spíš jen špatné výsledky.
Doporučuji dodržovat pořadí metod popsané na této stránce (od
přísnější po volnější). Jakmile se dokončí poslední metoda
clusterizace, je dobré se ještě vrátit zpět na první Fingerprint, zda se
neobjevily nové základní clustery.
Skripty pro dokončení clusterizace
Po clusterizaci doporučuji použít skriptové
řešení Martina Žatkoviče a Jirky Jakubce z článku o automatizaci,
díky kterému docílíte, že se pro každý cluster automaticky vybere
klíčové slovo s nejvyšší hledaností. Nicméně je nutné, aby
se sloupce jmenovaly následovně, jinak skript nebude fungovat:
- Keyword = původní sloupec s klíčovými slovy, na
kterém jsme prováděli culsterizaci
- Keyword-bu = kopie sloupečku „Keyword“
- Search = celková hledanost, tedy součet hledanosti na
Google a na Seznam
Pokud je v datasetu více sloupečků, tak je Martinův skript
odmaže. Pro jejich navrácení, stačí jít do Undo/Redo
v OpenRefine a vrátit se o dva kroky zpět:
Dataset by měl mít následující podobu:

Pro ty, co mají v datasetu jednotlivě sloupečky hledanosti Google
a hledanosti Seznamu. Níže je k dispozici dodatečný skript, který
hledanosti jednotlivých slov v clustru sečte. Vložte pomocí tlačítka
Apply, které najdete v levém horním rohu OpenRefine pod listem
Undo / Redo:

Pozor, sloupečky s hledaností Google/Seznam musí mít původní
název z Marketing Mineru, tedy Google Search Volume
a Sklik Search Volume!
Skript k sečtení hledaností v clusteru:

(Skript ke stažení.)
Takto vypadá nová podoba:

Fáze clusterizace je hotová. Stejná slova jsou v jednom clustru
se sečtenou hledaností a my máme o to méně práce při následném
čištění a klasifikaci.
Sloupeček „Keyword-bu“ můžete smazat (>Edit column >
Remove this column).
Prázdné řádky vymažete tak, že např. u sloupečku Keyword
najedete v nabídce na Facet > Customized Facets > Facet by blank (null
or empty string). V použitém facetu zvolíte True. Následně v úplně
prvním sloupečku celé tabulky využijete nabídku All > Edit rows >
Remove all matching rows.
Pomocný sloupec pro čištění a klasifikaci
Pro ještě větší usnadnění čištění a klasifikace doporučuji
využít pomocný druhý sloupec, jak radí ve svém článku
o čištění a klasifikaci Jakub Kašparů.
Opět si vytvoříme kopii pro sloupec „Keyword“. Na následujícím
obrázku pojmenovaném jako sloupec „X“. U tohoto sloupce se zbavíme
diakritiky tak, že přes > Edit cells > Transform… vložíme
následující kód:

Nezapomeňte si přepnout jazyk na Python/Jython:

Díky tomu, že se zbavíme diakritiky, získáme menší počet skupin slov,
ze kterých musíme vybírat pro čištění a klasifikaci:

Například tato klíčová slova můžeme zaklasifikovat jediným
kliknutím:
Na tomto sloupci „X“ pak provádíme klasifikaci pomocí Word facetu
(> Facet > Customized facets > Word facet). Návod naleznete
už ve videonávodu
od Jakuba Kašparů (třetí video v článku v kapitole
Třídíme výrazy do skupin).
V případě nějakých nesrovnalostí v článku, nebo pokud potřebuje
poradit, tak pište na email dominika.maskova@h1.cz.
Zdroje:
Clustering In Depth [online]. 2020 [cit. 2021–02–01]. Dostupné
z: https://github.com/…ing-In-Depth
Seriál Marketingová strategie | Čistíme a tagujeme data pomocí Open
Refine [online]. 2020 [cit. 2021–02–01]. Dostupné z: https://lynt.cz/…open-refine/
Díky za skvělý a praktický návod Honza.