Rubriky
Blog o SEO - Optimalizace pro vyhledávače

OpenRefine – Vlastní reconcile server z CSV souboru

Vzkříšení reconcile

Ano řekl jsem jedné diskuzi, že službu reconcile stejně nepoužívám, což mě trochu nakoplo a uvědomil jsme si, že bych si ji mohl upravit tak, aby šla využít.

Co je to reconcile?

Funkce umožnující hledat podobné výrazy v mezi dvěma sadami dat.  Tato podobnost nemusí být na 100% a proto u každé shody je skóre 0-1 co určuje míru podobnost. Tato funkce se hlavně využívá pro hledání entit v textu. V SEO se často používá ke kategorizaci obsahu. Jedná se o automatizaci co umožňuje ušetřit spousty času, pokud ji umíte správně použít. Pro ty co ji použijí a nebudou si číst výsledky to bude pohroma 🙂 .

Proč jsem doteď funkci reconcile moc nepoužíval?

Měl jsem dost jiných řešení…

Vlastní ElasticSearch API s daty

Mám vlastní API složené z Elasticsearch, kde mám uložené data a mohu si je přizpůsobit k obrazů svému. Nejde jen o fráze, ale i jejich kategorizace podle různých kritérii. Nad těmito daty umím už docela pěkně a rychle hledat na mírů, někdy potřebujete přesný výraz, někdy blízkou shodu, někdy potřebujete diakritiku a někdy ne.  V praxi to je to na některé jednoduché činnosti trochu kanón na vrabce.

Google Knowledge Graph Search API

Google jako náhradu za Freebase, který umírá, spustil  Knowledge Graph Search API. Hlavní výhoda je, že nemusíte dodávat data, protože se jedná o službu externí. Což je samozřejmě i hlavní nevýhoda, protože zde pak narazíte na omezení v rychlosti (času). Ano API je schopno dávat data i třeba 400-800ms, ale záleží na kvalitě připojení atd. Tento fakt lze samozřejmě obejít paralelním stahování z více počítačů z více připojení na internetu.  Rovnou mohu doporučit se vyhnout pomalých proxy, opravdu to chce rychle připojení. Můžete si vybrat typ dat… města, můžete si nastavit češtinu atd. , API toho obsahuje opravdu hodně.

A co použít původní reconcile a udělat něco jednoduchého?

No chtělo to asi 5min na Google a našel jsem něco co udělá radost velké části uživatelů OpenRefine, projekt na Githubu s názvem Reconcile-csv.

O co se jedná?

Ze souboru CSV si pomoci jednoduchého postupu uděláte openrefine reconcile server z vašich dat.

Co to znamená?

Můžete jednoduše spojovat data pomocí fuzzines shody. Překlad: K vybrané frázi bude určena tabulka nejbližších výrazů podle dodaného datasetu. Nejedná se o přesnou shodu, ale blízkou se skóre určující podobnost. Toto skóre je docela jednoduché, ale na jednoduché rozhodování to může stačit.

Co to znamená v praxi?

Kategorizace obsahu dle CSV souboru. Co mohu kategorizovat?

Města, značky z oboru(třeba data z heureka filtru), materiál, názvy vámi nabízených výrobku, klíčové slova, reklamy atd.

Rychlo návod:

  1. Máte seznam frází na roztřídění, chcete v nich najít  města v ČR
  2. Zapnete reconcile server se souborem obsahující města
  3. Použijete funkci reconcil
  4. Najdete největší shodu a vyfiltrujete správné výsledky
  5. Vytvoříte sloupec město, obsahující výsledek s největší shodou cell.recon.best.name
  6. Ušetřil jste 2hod času a dáte si nohy na stůl.

 

Návod:

  1. Stáhnout si http://okfnlabs.org/reconcile-csv/dist/reconcile-csv-0.1.2.jar
  2. Vložit tento souboru do složky, kde máte data (csv soubor)
  3. Otevřít si příkazový řádek. (zkratka win+R + zadat „cmd“ )
  4. Pomocí příkazů příkazového řádku pro pohyb ve složkých cd , cd .. a výpisu dir. Se dostat do dané složky.
  5. A pomocí zadání do příkazového řádku spustíte reconcile server.
    java -Xmx2g -jar reconcile-csv-0.1.2.jar <CSV-File> <Search Column> <ID Column>
    
    <CSV-File>  - Název souboru s daty (ANO oddělovač je čárka! )
    <Search Column> - Název hledaného sloupce (Dotazy,Keywords ...)
    <ID Column> - Název sloupce s unikátními ID (Pokud nemáte, stačí zadat v OpenRefine nový sloupec a nastavit v Grel rowIndex+1 )
    
    Prosím nepoužívat v názvech souborů a sloupců češtinu ani speciální znaky, ale to doufám víte.

    OpenRefine vs Reconcile start server
    Vše proběhlo v pořádku, server jeden na http://localhost:8000/reconcile

  6. Spustit OpenRefine
  7. Spustíte Reconcile : Vybere sloupec> nabídka > Renconcile> Start reconciling
    OpenRefine vs Reconcile 1
  8. Přidáte službu1 .Kliknout na „Add Standard Service…“
    2. Zadat:

    http://localhost:8000/reconcile

    3. Potvrdit: „Add Service“

    OpenRefine vs Reconcile add service

  9. Spustit to, podle velikostí obou datasetu to bude „rychlé“.
    OpenRefine vs Reconcile start
  10. Výsledek?
    OpenRefine vs Reconcile výsledek
  11. Co dál? Filtrace dobrých dat, pomocí skóre podobnosti, vzdálenosti atd. , jejich kopie je nového sloupce…
    cell.recon.best.name
    cell.recon.best.id
    cell.recon.best.score
  12. Máte více dat? Můžete je napárovat přes ID.
    cell.cross("Jiný projekt", "Párovací sloupec").cells["Kopírovaný sloupec)"].value[0]

    Ano, opravdu na to nepotřebujete žádný plugin 🙂 . (platí pro verzi 2.6 )

 

Pomohlo vám to ušetřit spousty času? Sdílejte.

.

Napsat komentář