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:
- Máte seznam frází na roztřídění, chcete v nich najít města v ČR
- Zapnete reconcile server se souborem obsahující města
- Použijete funkci reconcil
- Najdete největší shodu a vyfiltrujete správné výsledky
- Vytvoříte sloupec město, obsahující výsledek s největší shodou cell.recon.best.name
- Ušetřil jste 2hod času a dáte si nohy na stůl.
Návod:
- Stáhnout si http://okfnlabs.org/reconcile-csv/dist/reconcile-csv-0.1.2.jar
- Vložit tento souboru do složky, kde máte data (csv soubor)
- Otevřít si příkazový řádek. (zkratka win+R + zadat „cmd“ )
- 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.
- 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.
Vše proběhlo v pořádku, server jeden na http://localhost:8000/reconcile - Spustit OpenRefine
- Spustíte Reconcile : Vybere sloupec> nabídka > Renconcile> Start reconciling
- Přidáte službu1 .Kliknout na „Add Standard Service…“
2. Zadat:http://localhost:8000/reconcile
3. Potvrdit: „Add Service“
- Spustit to, podle velikostí obou datasetu to bude „rychlé“.
- Výsledek?
- 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
- 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.