Michal Štekláč - Indexovanie dokumentov na internete

    Opis problému:

    Indexovanie dokumentov na webe plus extrakcia metadát o dokumentoch z webu. V tomto prípade sa jedná o metadáta, ktoré sú na webovej stránke kde je linka na dokument. Príklad Na stránke uvedenej ako príklad je odkaz na pdf dokument, ktorému predchádzajú údaje o autorovi, údaje o konferencii a dátum kedy bol prezentovaný, abstrak článku a v neposlednom rade aj názov článku. Abstrak je tiež obsahom samotného článku, čiže k tomu sa vieme dostať aj v dokumente, stačilo by keby sa indexoval len obsah pdf dokumentu. Ale údaj o konferencii nieje súčasťou pdf dokumentu, preto je potrebné indexovať k pdf dokumentu aj časť stránky, ktorá naň odkazuje.

    V nasledujúcom texte sa používa slovo dokument pre označenie pdf a MS office dokumentov.

     

    Existujúce riešenia


    Medzi existujúce riešenia patrí http://lucene.apache.org/nutch/. Je to nástroj, ktorý dokáže indexovať web stránky a ich obsah. Nutch má množstvo pluginov, okrem iných pluginov tiež pluginy na extrakciu textu z pdf a word dokumentov. Súčasťou nutchu je webové rozhranie, ktoré umožňuje vyhľadávať v zaindexovaných stránkach a dokumentoch.Na nasledujúcom obrázku je znázornené webové royhranie nutchu.

    nutch.png

    Nutch som skúšal, všetko pekne fungovalo, ale nedokázal explicitne indexovať časť web stránky a pripojiť ju k pdf dokumentu, ktorého sa táto časť web stránky týkala. Preto som mal dve možnosti ako riešiť moje zadanie

    1. vytvorenie nového pluginu do nutchu
    2. vytvorenie si vlasného programu

    Ja som sa rozhodol pre druhú možnosť.

     

    Popis riešenia:

    Použité knižnice:

    Pre riešenie mojho projektu som použil nasledujúce knižnice a programy.

    Lucene - knižnica napísaná v jave. Je určená na indexovanie a následné full-textové vyhľadávanie. Je vhodná pre akúkoľvek aplikáciu vyžadujúcu fulltexové vyhľadávanie.

    POI - knižnica napísaná v jave pre prácu s súbormi balíka MS office. Ja ju používam na získanie obsahu doc a ppt dokumentov. doc -> text a ppt -> text.

    pdftotex- program na ziskani obsahu pdf dokumentov. pdf -> text

    wget-  program na stahnutie web stránok

     

    Vytvorenie indexu:

    V nasledujucom texte je popis krokov ktoré sa vykonajú pri indexovaní stránok a dokumentov:

    1. Stiahnutie web stránok ktoré sa budú indexovať, spolu s dokumentami (pdf a MS office dokumenty). Tý sa vytvorí na lokálnom disku adresárová štruktúra. Táto adresárová štruktúra odpovedá štruktúre webových stránok. Na toto sa použuje program wget.

    2. Postupné sa prechádza adresárova štruktúra stránky, ktorá bola v predchádzajucom kroku stiahnutá na disku. Postupne sa čítajú jednotlivé súbory. V prípade, že súbor je adresár, tak sa v norí do tohto adresára. Ak je daný súbor internetová stránka (jeho meno končí ".html") pokra+cuje sa nasledujúcim krokom.

    3. Otvorenie a postupné čítanie html dokumentu. V stránke sa identifikujú časti patriaca k jednotlivým dokumentom. Tento proces je popísaný v nasledujúcej kapitole Identifikácia časti html stránky patriaca k dokumentu. Výsledkom tohto kroku je priradenie častí stránok k dokumentom, ktorých sa týkajú.

    4. Vytvorenie indexu. Index má nasledujúcu štruktúru:

    • ID - cesta k pdf dokumentu (slúži ako identifikátor pdf dokumentu)

    • text - obsah dokumentu

    • textOdkaz - časť html stránky, ktorá bola priradená k danému dokumentu

      V takto vytvorenom indexe je možné následne vyhľadávať.

    Identifikácia častí html stránky patriaca k dokumentu:

    Indetifikácia častí patriacich k dokumentom je z html stránok zložitá. Zložitá je z toho hladiska, že každý autor píše svoje html stránky iným štýlom. Niektorý má texty ohraničené tagmi <p> a </p> iný používa tabuľky ... Preto som sa musel zamerať na niektoré stránky a v nich zistiť ako súvisí obsah html stránky s dokumentim na ktorý táto stránka odkazuje.

     Pri analyzovaní html dokumentov som identifikoval tri spôsoby ako autor stránok robí prepojenie na obsahu  textu s dokumentami.

    1. spôsob: prkladV tomto type stránok som analýzou html kódu stránky zistil, že text týkajúci sa pdf dokumentu sa vždy končí textom "available.</p>".

    2. spôsob:prkladV tomto type stránok som analýzou html kódu stránky zistil, že ku každému pdf dokumentu patrí text ohraničený na začiatku html tagom "<dl>" a na konci html tagom "</dl>".

     3. spôsob: príklad V tomto type stránok som analýzou html kódu stránky zistil, že ku každému pdf dokumentu patrí text ohraničený na začiatku html tagom "<p>" a na konci html tagom "</div>". Vo väčšine prípadov sa v takto ohraničenom texte nachádzal aj odkaz na daľsí dokument. Tento ďalsí dokument bol ppt dokument. Preto sa takto získaný text priraďoval aj k tomuto ppt dokumentu.

    Popis testovacích dát:

    Program som testoval na nasledujúcich dvoch stránkach:

    Spustenie a ovládanie programu

    Nastavenie prostredia

    Pre spustenie programu je potrebné mať v path nadefinované cesty k programom pdftotext.exe a wget.exe.

    Nastavenie path sa robí vo windows xp nasledovne:

    Start > Settings > Control Panel > System > Advanced > Enviroment Variables > System Variables > Path

    Spustenie programu

    Program sa spúšta z windowsovej konzoli (Start > Run ... > cmd ). Spúšta sa príkazom java -jar steklac.jar, ktorý je potrebné spustiť v adresáry kde je umiestnený súbor steklac.jar. Program vytvára v pracovnom adresáry adresár download, kde sú stiahnuté stránky. Po ukončení práce s programom sa môže tento adresár zamazať.

    Ovládanie

    Na začiatku je potrebné zadať programu url adresy stránok na ktorých chceme vyhľadávať. Tie sa následne začnú programom sťahovať na lokálny disk. O priebehu sťahovania program informuje prostredníctvom výpisov. Adresy sa zadávajú postupne. Ak už sme zadali všetky adresy stránok, na ktorých chceme vyhľadávať, tak zadáme znak 'k'. Od tohto okamihu začne indexovať obsah stránok a vytvárať prepojeni na dokumenty. Zároveň sa vytvára aj index pre vyhľadávanie. Následne program vyzve používateľa pre zadanie termínu, ktorý chce na zadaných stránkach vyhľadať. Vyhľadávanie prebieha v samotných dokumentoch ako aj v textoch, ktoré boli zísakené z html stránok a následne priradené k jednotlivým dokumentom. Výsledky vyhľadávania sú zobrazené na výstupe programu. Ak chce používateľ pokračovať v ďaľsom hľadání zá hľadaný výraz a proces sa zopakuje. Ak chce ukončiť hľadanie, tak zadá znak 'k'. Tým sa ukončí aj celý program.

    Vyhodnotenie:

    Program funguje. Dokáže vyhľadávať v textoch dokumentov ale aj v dátach z webovej stránky, ktoré sa týkajú dokumentov. Nedostatkom je, že nefunguje univerzálne na všetky stránky. Funguje na stránky, ktoré sú uvedené v testovacích dátach. Je to z dvôvodu rôznorodosti html stránok.

     

     

    Tag page (Edit tags)
    • No tags

    Files 2

    FileSizeDateAttached by 
     nutch.png
    No description
    151.48 kB23:14, 12 Jan 2009steklacActions
     steklac.jar
    No description
    5.96 MB19:24, 13 Jan 2009steklacActions
    You must login to post a comment.
    Powered by MindTouch Core