Peter Bódi - IE, telefóny

    Cieľ a motivácia

    Hlavná úloha tohto projektu je zhromaždiť informácie o parametroch mobilných telefónov a transformovať ich do štrukturovanej podoby. Ako zdroj týchto dát slúžia verejne dostupné katalógy mobilných zariadení. Konečný systém je schopný tieto dáta automaticky aktualizovať a následne prezentovať používateľovi. Systém ponúka aj API pre ďalšiu prácu s dátami.

    Funkcionalitu tohto systému môžu využívať viaceré skupiny používateľov od bežných záujemcov o mobilné telefóny až po vývojárov webových aplikácií. Pre bežného používateľa systém poskytuje možnosť jednoduchého prístupu k veľkému množstvu informácií o mobilných telefónoch z jednotného užívateľského prostredia. S využitia tohto systému môžu profitovať aj vývojári webových aplikácií pre mobilné zariadenia. S databázy telefónov sú prostredníctvom API schopný zistiť parametre a funkcionality podporované konkrétnym telefónom, ktorý sa pokúša spustiť webovú aplikáciu a následne mu na základe týchto parametrov poskytnú web stránku, ktorú je toto zariadenie schopné zobraziť.

    Popis riešenia

    Riešenie projektu bolo rozdelené na tri hlavné fázy. V prvej fáze bol vytvorený vysokoúrovňový návrh systému s popisom jednotlivých procesov a komponentov. Následne bolo potrebné identifikovať kritické procesy systému a vyhodnotiť ich uskutočniteľnosť. Tieto procesy boli v druhej fáze prototypované a otestované. Po vyhodnotení uskutočniteľnosti kritických procesov bol následne celý systém implementovaný s využitím algoritmov z prototypovaných procesov.

    Návrh systému

    Na začiatku boli navrhnuté jednotlivé procesy a ich vzájomné interakcie. Ako kritické boli identifikované procesy LinksAnalysis a ParametersAnalys.

     

    LinksAnalysis

    Proces pre rozpoznanie a extrakciu odkazov smerujúcich na výrobcu alebo konkrétny mobilný telefón.

    ParametersAnalysis

    Proces pre extrakciu parametrov zo stránky s mobilným telefónom.

     

     http://vi.ikt.ui.sav.sk/@api/deki/files/57/=obr1.bmp 

    Po úspešnom prototypovaní kritických procesov bol vytvorený statický návrh hlavných komponentov systému a ich vzájomná interakcia v čase.

     

    Frontend

    Používateľské rozhranie.

    Analyzer

    Komponent, ktorý spravuje prácu s komponentom Crawler a Extractor, kdevýsledok z extractora uloží doobjektov DataObjects.

    Crawler

    Komponent pre sťahovanie obsahu webu.

    Extractor

    Komponent pre extrakciu informácií.

    Serializer

    Komponent pre perzistenciu objektov.

    DataObjects

    Objekty reprezentujúce dátový model systému.


    http://vi.ikt.ui.sav.sk/@api/deki/files/58/=obr2.bmp
    http://vi.ikt.ui.sav.sk/@api/deki/files/59/=obr3.bmp
    http://vi.ikt.ui.sav.sk/@api/deki/files/60/=obr4.bmp
     

    Sťahovanie dát

    Pre sťahovanie telefónov bol vytvorený komponent Crawler. Pre správne a bezpečné fungovanie bolo potrebné riešiť nasledovné problémy:

    • Pri sťahovaní bolo potrebné generovať náhodnú časovú pauzu medzi dvoma telefónmi

    • Bolo potrebné rozpoznať kódovanie danej stránky

    • Každý stiahnutý telefón musel mať priradenú URL, aby bolo možné identifikovať, z ktorého zdroja pochádza

    • HTTP hlavičku bolo potrebné upraviť, tak aby zodpovedal hlavičke niektorého z prehliadačov

     

    Internet Explorer 7

    HTTP_ACCEPT

    */*

    HTTP_ACCEPT_LANGUAGE

    en-gb

    HTTP_UA_CPU

    x86

    HTTP_ACCEPT_ENCODING

    gzip, deflate

    HTTP_USER_AGENT

    Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.1.4322)

    Tab. 1: HTTP hlavička Internet Explorer 7



     

     

    Mozilla Firefox 3.0.3

    HTTP_ACCEPT

    text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

    HTTP_ACCEPT_LANGUAGE

    en-us,en;q=0.5

    HTTP_CHARSET

    ISO-8859-1,utf-8;q=0.7,*;q=0.7

    HTTP_ACCEPT_ENCODING

    gzip,deflate

    HTTP_USER_AGENT

    Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3

    Tab. 2: HTTP hlavička Mozilla Firefox 3.0.3

    Extrakcia odkazov

    Tento proces bol najviac problematický vzhľadom na veľkú rôznorodosť jednotlivých katalógov. V nasledovnej tabuľke je uvedený zoznam procesov a popis jednotlivých algoritmov.
     

    Proces

    Popis

    LinksExtraction

    Proces extrahuje odkazy pre GET a POST a uloží ich do zoznamu.

    SimilarLinksGrouping

    Proces klasifikuje reťazce do skupín na základe podobnosti.

    PhonesLinksRecognition

    Proces vyfiltruje odkazy súvisiace s telefónmi.

    Tab. 3: Hlavné procesy extrakcie odkazov

     http://vi.ikt.ui.sav.sk/@api/deki/files/61/=obr5.bmp

     

    LinksExtraction

    Ako prvé sa na základe regulárneho výrazu

    (<a.*?>.*?</a>)

    extrahujú všetky odkazy v Markup. Potom sa pre každý odkaz extrahuje URL a názov odkazu pomocou výrazov

    href=\""(.*?)\""

    \s*<.*?>\s*

    Výsledok extrakcie je dvojica URL a názov odkazu.

    SimilarLinksGrouping

    Proces na začiatku odstráni bázovú časť URL pre každý odkaz t.j. URL daného servera. Proces potom prechádza cez všetky URL a kontroluje prítomnosť URL reťazca v strome.

    • Ak sa podobný reťazec v strome nenachádza, potom je tento reťazec zaradený do stromu a následne je vytvorená nová skupina v slovníku. Každá skupina slovníka je charakteristická klúčom, ktorý identifikuje túto skupinu t.j. URL. Druhá vlastnosť skupiny je, že obsahuje podslovník podobných URL.

    • Ak sa podobný reťazec v strome vyskytuje, potom sa kontroluje, či spĺňa podmienku minimálnej dĺžky. Ak áno potom je tento reťazec zaradený do už existujúcej skupiny.

    Po skončení tejto klasifikácie sú následne odstraňované skupiny s malým počtom položiek, ktoré pravdepodobne nepredstavujú zoznam telefónov alebo výrobcov. Potom prebehne cyklus, ktorý vyberie skupinu s najväčším počtom položiek, ktorá je pravdepodobne cieľová skupina s odkazmi na výrobcov alebo na telefóny.

    PhonesLinksRecognition

    Proces vypočíta výskyt kľúčových slov, ktoré sú uvedené v gazeteeroch brands.txt a phones.txt v jednotlivých skupinách a následne vyberie skupinu sa najväčším počtom týchto kľúčových slov. Na záver sa spätne pre všetky odkazy priradí bázová URL, ktorá bola na začiatku procesu odstránená.

    Extrakcia parametrov

    Prvým krokom pri implementácií tohto procesu bolo rozložiť ho na elementárne kroky:

    • Rozpoznanie stránky s parametrami

    • Rozpoznať začiatok a koniec časti s parametrami a následne túto časť vystrihnúť

    • Vyextrahovať hodnoty do zoznamu

    • Transformovať zoznam na slovník (páry kľúč => hodnota)

     

    Proces

    Popis

    PageDownload

    Proces stiahne stránku z požadovanej URL.

    PageCut

    Proces vystrihne časť stránky, v ktorej sa nachádzajú parametre.

    ValuesExtraction

    Proces odstráni Markup a uloží zvyšné reťazce do zoznamu.

    ListTransformation

    Proces spáruje názvy parametrov a ich hodnoty.

    Tab. 4: Hlavné procesy extrakcie parametrov

     http://vi.ikt.ui.sav.sk/@api/deki/files/62/=obr6.bmp

     

    PageDownload

    Najskôr sú nakonfigurované hlavičkové informácie a potom prebieha proces sťahovania stránky.

    PageCut

    Na začiatku sa identifikuje pozícia jednotlivých kľúčových slov v stránke. Tu sa použije gazeteer parameters.txt. Zoznam pozícií je následne zoradený vzostupne. Potom pre jednotlivé kľúčové slová, ktoré boli nájdené v stránke sa vypočíta ich vzájomný relatívny rozptyl. Následne sa kľúčové slová na základe ich relatívneho rozptylu zhlukujú do skupín. Ak je relatívny rozptyl menší ako definovaný prah, kľúčové slovo je zaradené do aktuálnej skupiny. Ak je relatívny rozptyl väčší ako prah, potom je vytvorená nová skupina a kľúčové slovo je následne zaradené do tejto novej skupiny. Najväčšia skupina je potom vyhodnotená ako skupina s parametrami, ktorá je následne zo stránky vystrihnutá a s ktorou sa aj ďalej pracuje.

    ValuesExtraction

    Pomocou regulárneho výrazu

    <(.|\n)*?>|&(#?)(.+?);

    sa identifikujú všetky Markup znaky a následne sa zamenia za

    \r\n

    V tomto procese je priestor pre definovanie ďalších symbolov, ktoré by mali byť odstránené. Výsledkom tohto procesu je zoznam za sebou idúcich atomických hodnôt, kde atomická hodnota predstavuje buď názov parametra alebo hodnotu parametra.

    ListTransformation

    Prechádzaním zoznamu reťazcov proces detekuje názvy parametrov na základe kľúčových slov z gazeteeru parameters.txt Po identifikácií kľúčového slova je vytvorená položka v slovníku, ktorá predstavuje jeden parameter. Kľúč položky je názov parametra a hodnota položky je hodnota parametra. Proces ďalej prechádza zoznam a priraďuje hodnoty v zozname do konkrétnej položky v slovníku, teda do konkrétneho parametra. Proces vytvorí ďalší parameter v slovníku až keď rozpozná ďalšie kľúčové slovo. Výsledkom je slovník s parametrami konkrétneho telefónu.

    Testovacie dáta

    Pri vývoji jednotlivých komponentov ako aj pri zostavovaní slovníka boli v rámci testovania funkčnosti použité niektoré z nasledovných katalógov:

     

    http://www.mobil.sk/katalog/

    Dvojúrovňový katalóg (výrobca/model)

    http://katalog-mobilov.sk/

    Dvojúrovňový katalóg (výrobca/model)

    http://wurfl.sourceforge.net/

    Informácie prevažne techinckého charakteru

     

    Vyhodnotenie

    Keď porovnáme extrakciu parametrov a extrakciu odkazov, potom extrakcia parametrov pracuje s väčšou presnosťou. Dôvodom môže byť fakt, že parametre sú sústredené v jednej časti stránky a majú jasne identifikovateľné kľúčové slová, ktoré sa odlišujú od ostatných slov na stránke. Prípady, keď extrakcia vynechá niektoré parametre sú spôsobené len nesprávne zadefinovaným slovníkom. Extrakcia odkazov je viac problematická. Odkazy sa môžu nachádzať na rôznych miestach stránky a nemusia smerovať na stránky s parametrami. Napr. stránka http://www.mobil.sk/katalog/ obsahuje odkazy na články, ktoré proces extrakcie vyhodnotí ako odkazy na telefóny, čo je v skutočnosti chybné vyhodnotenie. Pre elimináciu takýchto odkazov sa ukázalo ako vhodné riešenie zahodiť stránky, ktoré neobsahovali žiadne parametre.

     


     

    Precision

    Recall

    Extrakcia odkazov

    0,7

    1

    Extrakcia parametrov

    1

    0,5

    Table 5: Precision a Recall pre http://www.mobil.sk/katalog


     

    Používateľská dokumentácia

    Inštalácia

    Archív IEPhones.bin.zipje potrebné rozbaliť do zvoleného adresára. Pre spustenie aplikácie treba spustiť súbor IEPhones.exe.

    Rozloženie ovládacích panelov

    Ľavý horný panel obsahuje stromový náhľad konkrétneho projektu, výrobcov a telefónov. Ľavý dolný panel zobrazuje po kliknutí na uzol v stromovom náhľade atribúty konkrétneho objektu. Pravý horný panel vypisuje zoznam parametrov po dvojkliknutí na konkrétny telefón v stromovom zobrazení. Pravý dolný panel vypisuje správy. Horná lišta obsahuje hlavné menu. Dolná lišta obsahuje stavový riadok, ktorý počas vykonávania úlohy zobrazuje stupeň dokončenia úlohy.

    Manipulácia s projektom

    Koreňovým objektom je Workspace, ktorý má definovanú cestu v súborovom systéme, kde sa ukladajú extrahované dáta (Predvolené %My Documents%/IEPhonesWS). Workspace obsahuje práve jeden Project. Pre prácu s projektom je potrebné vytvoriť nový alebo otvoriť existujúci prostredníctvom ovládacích prvkov v hlavnom menu. Po ukončení extrakcie je potrebné projekt uložiť. Projekt sa ukladá vo formáte binárneho súboru, ktorý obsahuje všetky extrahované dáta. Čisté HTML nie sú zahrnuté v tomto súbore. Projekt je možné zavrieť prostredníctvom File >> Close Project.

    Extrakcia odkazov a extrakcia parametrov

    Po otvorení alebo vytvorení projektu je možné spustiť extrakciu odkazov prostredníctvom Run >> Extract List a extrakciu parametrov prostredníctvom Run >> Extract Phones. Proces je možné kedykoľvek zastaviť prostredníctvom Run >> Stop Process. Po zastavení procesu, aplikáciu zobrazí v stromovom náhľade doposiaľ extrahované dáta.

    Úprava extrahovaných dát

    Výrobcov alebo telefóny je možné manuálne odstrániť je možné odstrániť kliknutím na výrobcu v stromovom náhľade a následne prostredníctvom Project >> Remove >> Brand. Telefón je možné odstrániť kliknutím na telefón v stromovom náhľade a následne prostredníctvom Project >> Remove >> Phone.

     

    Tag page (Edit tags)
    • No tags

    Files 11

    FileSizeDateAttached by 
     Bodi - IE telefony - Dokumentacia (1).pdf
    No description
    223.69 kB16:06, 11 Dec 2008Peter.BodiActions
     IEPhones.bin.zip
    Zkompilovaný projekt
    106.96 kB15:10, 1 Dec 2008Peter.BodiActions
     IEPhones.data.zip
    Extrahované dáta
    193.66 kB15:10, 1 Dec 2008Peter.BodiActions
     IEPhones.src.zip
    Zdrojové súbory a projekty
    594.79 kB15:10, 1 Dec 2008Peter.BodiActions
     IEPhones.web.zip
    Prezentácia projektu
    178.4 kB14:00, 1 Dec 2008Peter.BodiActions
     obr1.bmp
    Obr. 1: Hlavné procesy systému
    1400.87 kB22:04, 29 Nov 2008Peter.BodiActions
     obr2.bmp
    Obr. 2: Komponenty systému
    723.05 kB22:04, 29 Nov 2008Peter.BodiActions
     obr3.bmp
    Obr. 3: Interakcia komponentov v čase
    773.89 kB22:04, 29 Nov 2008Peter.BodiActions
     obr4.bmp
    Obr. 4: Dátové objekty (DataObjects)
    723.05 kB22:04, 29 Nov 2008Peter.BodiActions
     obr5.bmp
    Obr. 5: Proces extrakcie odkazov
    679.55 kB22:04, 29 Nov 2008Peter.BodiActions
     obr6.bmp
    Obr, 6: Proces extrakcie parametrov
    1309.55 kB22:04, 29 Nov 2008Peter.BodiActions
    You must login to post a comment.
    Powered by MindTouch Core