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

OpenRefine – Aktualizace Jython knihovny

Tak trochu jsem programátor a proto jsem v OpenRefine místo základního jazyku pro transformace GREL velmi rád používal Jython. GREL je sice jednoduchý, ale neumožňuje skoro žádné trochu složitější rozhodovací podmínky a cykly.
Zatím co Jython (import Pythonu do Javy) umožňuje mnohem více. Problém však nastává, když zjistíte, že samotná implementace Jythonu je zastaralá o docela ořezaná. Co tak chybí? Třeba knihovna JSON a další které v Pythonu pravidelně používám. Proto jsem se tento nedostatek rozhodl opravit.

Co budeme dělat?

Smažeme starou verzi Jython knihovny 2.5.3 v OpenRefine a nahradíme ji verzí 2.7.0 (Python 2.7).

Jaký v tom bude rozdíl?

26 Mb funkcí :), což je dost. Jestli si to chcete zkontrolovat, tak se můžete podívat na http://www.jython.org/docs/library/indexprogress.html co všechno můžete provádět.
V praxi to pak znamená, že vám pojede většin Python skriptů. Následovně, pak řešení vašeho problému může vypadat tak, že zajdete na StackOverFlow a okopírujete vhodný skript a na vstup dáte proměnou „value“ a return vám vrátí váš výsledek do OpenRefine.
Příkladem takového superkrátkého scriptu může třeba být:

Odstranění diakritiky:

#odstranění diakritiky a lowercase písma
import unicodedata
return unicodedata.normalize('NFKD', value).encode('ASCII', 'ignore').lower()

Možností je nekonečně…

Návod:

  1. Stáhnout si ze stránky http://www.jython.org/downloads.html si aktuální soubor Jython 2.7.0 – Standalone Jar.
  2. Ten tímto souborem nahradíte standardní knihovnu.
    Kde?
Vaše cesta k OpenRefine ..
\openrefine-2.6-beta.1\webapp\extensions\jython\module\MOD-INF\lib

Který soubor nahradit?
jython-standalone-2.5.3.jar 

Jak bude vypadat novy?
jython-standalone-2.7.0.jar

To je vše?

Ano.

Proč to pouštím ven?

Protože v dalších dílech o OpenRefine se podíváme na skripty, které tento update využívají.
Příkladem třeba „Hledání zanořených prvků v JSONu podle názvu“, co bude v dalším díle.

.

Napsat komentář