Mocná automatizace klasifikace

18.6. jsem měl možnost přednášet na SEO Restartu s tématem automatizace analýzy klíčových slov. Jelikož jsem na pódiu nešel do hloubky a nepopisoval ono řešení, tak jsem pro vás připravil tento komplexní návod, který vás provede mnou popisovaným řešením.

Obsah článku:

Klasifikace

  • Princip
  • Prerekvizity
  • Aktuální řešení
  • ML + Reconcile.csv

Princip

Princip klasifikace popsal již Marek Prokop v roce 2012, přičemž se od té doby téměř nic nezměnilo. V podstatě jde o to, že se snažíte jednotlivá klíčová slova zařadit do klasifikačních schémat, díky čemuž se vám otevře nový, podrobnější pohled na klíčová slova a to hezky ve skupinách.

Prerekvizity

Klasifikaci pomocí umělé inteligence za nás udělá Marketing Miner. Zbytek budeme provádět opět v mocném nástroji OpenRefine tudíž budete potřebovat Javu a zároveň budete potřebovat i Reconcile.csv server.

OpenRefine – http://openrefine.org/download.html

Reconcile.csv – http://okfnlabs.org/reconcile-csv/.

Java – https://java.com/en/download/

Marketing Miner – https://www.marketingminer.com/cs

Aktuální řešení

Věřím, že klasifikace je v naší SEO komunitě rozšířenější, než clusterizace datasetu, tudíž jsem se ji rozhodl, že ji nezpracuji, jako aktuální clusterizaci. Jestliže však ve vašich analýzách klíčových slov klasifikaci neděláte, tak vynikající video o tom, jak ji udělat připravit Marketing Miner.

Klasifikace dotazů v OpenRefine

Je toto řešení špatné?

Toto řešení klasifikace analýzy klíčových slov není vyloženě špatné, jen je velmi zdlouhavé a nabízí se tedy automatizace tohoto procesu. Dlouho bylo toto řešení jediné možné, avšak na začátku tohoto roku se stalo něco, co začalo fungovat. 🙂

Reconcile.csv + Využití umělé inteligence

Minulý rok se na SEO Restartu řešilo párování chybových URL adres na nové pomocí reconcile.csv tedy vlastnímu serveru na reconcilaci dat. Tento server páruje data dle podobnosti klíčových slov.

Například slovo Plzeň a Plzni k sobě bude blíž, než Plzeň a Praha. Této vlastnosti můžeme využít právě na párování slov do skupin. Tudíž si vytvoříme databázi, na kterou budeme následně párovat klíčová slova.

Toto řešení by však nebylo tak unikátní a zrychlující čas, kdyby v Marketing Mineru nevytvořili umělou inteligenci, která vytvoří schémata a hodnoty za vás. Na vás je pak výstup projít, doplnit a následně můžete poslat podklad do reconcilačního serveru, který provede klasifikaci za vás.

Jak tedy provést klasifikaci v podání umělé inteligence a reconcile.csv?

  1. Pošlete data do Marketing Mineru
  2. Použijte čištění dle similiarity
  3. Připravte data pro reconcile.csv
  4. Spusťte reconcile.csv a proveďte párování
  5. Projděte si výsledek
  6. Pokračujte s interpretací

1) Pošlete data do Marketing Mineru

S tímto krokem si nejsem přesně jist, jak to kluci v Marketing Mineru do SEO Restartu domyslí, tudíž tento bod nechávám prozatím otevřený. Každopádně je nutné poslat vaše data do Marketing Mineru.

Umělá inteligence si dataset projde a pokusí se v něm najít různá schémata (obce, barvy, velikosti, umístění, produkty,…) do kterých bude následně vybírat jednotlivé hodnoty.

Zároveň budete moci využívat takzvaného nástroje Similarity, kdy nadefinujete klíčová slova a Marketing Miner srovná obsah datasetu se zadanými kořenovými slovy a na základě vygenerovaných skupin si můžete jednoduše pročistit dataset.

Similarity

Pro ukázku budu následující body ukazovat na datasetu, který jsem dostal přímo od Filipa a který byste do budoucnosti měli dostávat i z Marketing Mineru. Tento dataset stojí na naší vzorové analýze klíčových slov.

2) Vyčistěte dataset pomocí similarity

Ona similarita může být pro vás vynikajícím nástrojem na čištění analýzy klíčových slov. Kdy pomocí naučené inteligence lze odstranit klíčová slova, která nejsou relevantní.

Na následujícím screenu je možné vidět sloupec druhý sloupec similarity, který ukazuje obsahovou vzdálenost dotazu od klíčového slova hodiny.

Sloupec similarity (druhý)

Na základě „numeric facetu“ si můžete nechat vygenerovat graf o tom, jak jsou jednotlivá klíčová slova vzdálená od kořenového slova hodiny.

Přehled similarity

Jak je možné vidět, tak hodnoty podobnosti klíčových slov se párují do takzvané gausovy křivky, což bych považoval za pohodový vývoj. Na co bych se teď snažil podívat je minimum a konkrétně se podívat, co dataset obsahuje za slova.

Jakmile snížím hranici na nejvíce vzdálené, tak mohu vidět následující klíčová slova:

Díky tomuto můžete jednoduše smazat naprosto nerelevantní fráze, které ve vaší analýze nemají co dělat. Avšak nic nenahradí pěkně poctivé ruční čištění. A stejně tak vám doporučuji projít dataset před tím, než něco smažete. Může jít o vzor, o kterém jste doposud nevěděli.

3) Připravte data pro reconcile.csv

Jakmile budete mít dataset vaší analýzy klíčových slov pročištěný, tak můžeme přijít k přípravě podkladu pro reconcile.csv. Z klasifikace, kterou mi vytvořil Marketing Miner se snažím vytvořit podobnou tabulku, kde si jeho skupiny rozvrhnu pěkně pod sebe.

Schémata a hodnoty z Marketing Mineru

Tuto tabulku se pak snažím doplnit pomocí word facetu, kdy ji doplním o klíčová slova, která mohla umělé inteligenci uniknout a následně tuto tabulku přetavím do projektu v OpenRefine.

Později se totiž budu na tuto tabulku dotazovat, abych získal informace o skupinách. A provedl tak rozdělení do patřičných sloupců. Takže je v pohodě, když si připravíte data v OpenRefine.

Projekt schéma (kategorie) + vlastnost (KW)

Jakmile dostanete data do OpenRefine, tak je dobré převést klíčové slova do varianty bez kapitálek a přidání sloupce ID. To lze provést jednoduše pomocí tlačítka „Apply“. Pozor název prvního sloupce musí být KW, aby vše správně fungovalo.

[
  {
    "op": "core/column-addition",
    "description": "Create column Normalizace at index 1 based on column KW using expression grel:value.toLowercase()",
    "engineConfig": {
      "facets": [],
      "mode": "row-based"
    },
    "newColumnName": "Normalizace",
    "columnInsertIndex": 1,
    "baseColumnName": "KW",
    "expression": "grel:value.toLowercase()",
    "onError": "set-to-blank"
  },
  {
    "op": "core/column-addition",
    "description": "Create column id at index 2 based on column Normalizace using expression grel:rowIndex + 1",
    "engineConfig": {
      "facets": [],
      "mode": "record-based"
    },
    "newColumnName": "id",
    "columnInsertIndex": 2,
    "baseColumnName": "Normalizace",
    "expression": "grel:rowIndex + 1",
    "onError": "set-to-blank"
  }
]

Po aplikování tohoto pravidla se stane to, že se vytvoří nový sloupeček „normalizace“ a „id“.

Vzhled projektu po aplikaci skriptu

Tyto nové sloupečky využijeme, jako podklad pro reconcile.csv server. Abyste tam dostaly správná data, tak musíte kliknout na možnosti exportu a kliknout na templating.

Do šablony musíte vyplnit následující parametry:

Custom export

Snažíme se vytvořit .csv soubor, který nahrajeme do serveru a ten se bude snažit tato slova párovat na vaše klíčová slova. Je nutné zachovat tento formát, jinak reconcile.csv server nebude fungovat.

4) Spusťte reconcile.csv

Jakmile budete mít stažený (tlačítko Export) .csv soubor, tak můžete přejít ke spuštění serveru, který spustíte jednoduchým příkazem.

java -Xmx8g -jar "C:\reconcile\reconcile-csv-0.1.2.jar" "C:\reconcile\vie5.csv" "keyword" "id"

Kód pro spuštěný je jednoduchý, stačí vyměnit jednotlivé parametry dle vašeho počítače. Jednotlivé parametry, jsou následující:

  • „C:\reconcile\reconcile-csv-0.1.2.jar“ – Stažený server
  • „C:\reconcile\seorestart.csv“ – Umístění datasetu z OR
  • „keyword“ – Název sloupce pro klíčové slovo
  • „id“ – ID klíčového slova

Jestli vás budou zajímat další informace k Reconcile.csv serveru, tak doporučuji článek od Zdeňka Nešpora, který uvnitř řeší veškeré problémy.

Jakmile vám bude fungovat váš Reconcile.csv server, tak se přesuňte do projektu, co máte v OpenRefine a vytvořte nový sloupec pro klíčová slova (jako v předchozích krocích záloha)

Pro párování bude nutné rozdělit obsah sloupce „Keywords“ dle mezery, aby na každém řádku bylo pouze jedno klíčové slovo. A to z toho důvodu, že v naší databázi máme klíčová slova, která jsou složena z jednoho slova.

Využijeme k tomu funkci „Split multi-valued cells…“ spuštěnou na sloupci „Keywrods“

Jakmile na vás „vyskočí“ pop-up, tak v něm nestavte mezeru, jakožto separátor, díky čemuž rozdělíme slova do řádků dle mezery.

Díky rozdělení vám vznikne něco podobného:

Teď konečně spustíme párovací skript, který funguje na principu reconcilace. Takže klikněte najeďte na Reconcile a Star reconciling.

Jakmile na vás „vyskočí“ pop-up, tak stiskněte „Add Standard Service“, kam vložte tuto URL adresu, tedy adresu vašeho reconcilačního serveru. Myslím si, že by měla být: http://localhost:8000/reconcile

Jakmile se vám vytvoří nová reconcilační služba s názvem „CSV Reconciliation service“, tak klikněte na tlačítko „Start Reconciling“ a to vám spustí automatizované párování.

5) Projděte si výsledek

Jakmile doběhne Reconcilace do konce, tak se vám určitá část klíčových slov projektu napáruje. A zbytek klíčových slov bude pravděpodobně na vás.

Ono urychlení, které zde je se skrývá ve facetech. Většinou automaticky věřím pravděpodobnosti 0,85 – 1 a zde nechávám párovat všechna klíčová slova automaticky. Ostatně i na první pohled na následujícím obrázku můžete vidět, že se klíčová slova párují v pohodě.

Jakmile provedete napárování těchto klíčových slov, tak se doporučuji přesunout do segmentu 0,40 – 0,85 a následně začít postupovat dle word facetu.

A takto lze jednoduše spárovat většinu klíčových slov, které vám budu dávat smysl. Nebojte se omezovat databází, kterou pro vás vytvořil Marketing Miner případně vaše maličkost.

Nové hodnoty ve schématech můžete založit kliknutím na „Create new item“, díky čemuž vytvoříte nové hodnoty. Zpětně si je pak přiřadíte do schémat, kam dané skupiny budou patřit.

6) Zařazení do schémat

Na závěr budete muset uložit vygenerovaná schémata, což dokážete pomocí jednoduchého příkazu:

cell.recon.candidates[0].name

Tento příkaz vám bude fungovat pouze na slova, která se vám podařilo připojit s vaší databází. Pro nově vytvořené skupiny si vytvořte nový sloupec.

Následně bude nutné si napojit skupiny z onoho projektu, který vznikl na začátku a obsahoval všechny hodnoty a jejich schémata. To provedete pomocí funkce cell.cross

cell.cross("ProjektsHodnotami", "SloupecHodnot")[0].cells["Schema"].value

Pro hodnoty bez schémat tato schemata pomocí facetů budete muset jednoduše doplnit / dopsat a následně na základě jednotlivých hodnot ve sloupečku Schéma budete vytvářet nové sloupce, do kterých budete ukládat hodnoty klíčových slov. Díky čemuž vám vznikne zaklasifikovaná analýza klíčových slov.

Z praxe

Řešení umělé inteligence a reconcile.csv vás pravděpodobně ruční práce na 100% nezbaví. Avšak vám to podstatně ušetří čas a vy se budete moci věnovat těm důležitějším částem analýzy.


Závěr článku

Jestli vás něco zajímá, tak se za mnou stavte. 🙂

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *