150 likes | 256 Views
Parsovanie textov článkov. Michal Adda. Motivácia. Získanie informácií z Wikipédie 2 spôsoby Vytvorenie kópie prostredia, aké používa Wikipédia Parsovanie wikipédia dumpu. Existujúci softvér. gwtwiki WikiText parser Sweble WikiText parser ScrewTurn Wiki Wiki engine.
E N D
Parsovanie textov článkov Michal Adda
Motivácia • Získanie informácií z Wikipédie • 2 spôsoby • Vytvorenie kópie prostredia, aké používa Wikipédia • Parsovaniewikipédiadumpu
Existujúci softvér • gwtwiki • WikiTextparser • Sweble • WikiTextparser • ScrewTurnWiki • Wikiengine
Riešenie problému • Problém 1: Odstránenie Markup textu • Problém 2: Rozbalenie WikiTemplatov
Problém 1 – Odstránenie Markup textu • Markup reťazec ''italics'' bude preložený do html reťazca <i>italics</i>, ktorý bude v prehliadači zobrazený ako italics. • Možnosti riešenia • Preloženie do html (veľa existujúcich nástrojov) • Odstránenie pomocou Regex výrazov
Problém 2 – Rozbalenie templatov • Problémy: • Viaceré možnosti zápisu templatov • Komplikovaná gramatika templatov • Veľké množstvo templatov • Vnorené templaty • Riešenia: • Vlastné riešenie • Použitie Sweble
Problém 2 – Riešenie Sweble • ParserWiki textu s podporou rozbaľovania templatov • Rozbaľovanie je potrebné si naprogramovať implementovaním rozhrania ExpansionCallback a jeho použitím v triede CompiledPage
Riešenie ParsovanaWikiTextu • Prechádzame text wiki článku • Keď narazíme na použitie templatu, nahradíme ho jeho originálym textom • Pokiaľ je to prvé použitie daného templatu, stiahneme ho • Inak použijeme nakešovanú verziu template textu • Pokračujeme, pokiaľ nerozbalíme všetky templaty
Hadoop Riešenie • .NET • Map operácie dostávajú cestu k čiastkovému Wiki súboru, ten potom spracováva volaná Java aplikácia
Vyhodnotenie – Nefungujúce templaty • {{#include}} • Infobox, NavBox