140 likes | 244 Views
Re-usable Libraries for Processing Web Pages. 21.10.2009 Michal Barla. Prečo. Viacerí z nás potrebujú spracovávať webové stránky Dostať zo stránky to čo je podstatné (text) Získať kľúčové slová Prečo by to mal robiť každý sám, keď môžeme svoje sily spojiť. Čo potrebujeme. Readability
E N D
Re-usable Libraries for Processing Web Pages 21.10.2009 Michal Barla
Prečo • Viacerí z nás potrebujú spracovávať webové stránky • Dostať zo stránky to čo je podstatné (text) • Získať kľúčové slová • Prečo by to mal robiť každý sám, keď môžeme svoje sily spojiť
Čo potrebujeme • Readability • vyseknezo stránky podstatný text • GoogleTranslate proxy • POSTne text, späť ho dostane v angličtine • Tagthe.net proxy • POSTne text, späť dostane kľúčové slová • Delicious proxy • Na zadanú URL vráti populárne tagy (ak sú)
Čo potrebujeme • OpenCalais proxy • POSTne text, späť ho dostane opoznámkovaný • TermExtraction libka • Algoritmy pre analýzu textu (extrakciu kľúčových slov)
Čo máme • Nejaký work-in-progress, ale použiteľný a hlavne pripravený na vaše zapojenie sa • Tomáš Jelínek, Lucia Jastrzembská [OP] • Ja • Tomáš Kramár
Čo máme • JKEY_EXTRACTOR [Java] • Wrapper nad JATR libkou – sada algoritmov na extrakciu kľúčových slov z URL/textu v anglickom jazyku • Delicious proxy • TagTheNet proxy • Zo zadanej URL sa však vysekne text (Readability) a preloží sa do angličtiny (Google translate)
Príklad JKeyExtractor ke = new JKeyExtractor(); ke.addAlgorithm(new JATRKeyExtractor(JATR_ALGORITHM.CValue)); ke.addAlgorithm(new JATRKeyExtractor(JATR_ALGORITHM.GlossEx)); ke.addAlgorithm(new JATRKeyExtractor(JATR_ALGORITHM.TermEx)); ke.addAlgorithm(new JATRKeyExtractor(JATR_ALGORITHM.TFIDF)); ke.addAlgorithm(new JATRKeyExtractor(JATR_ALGORITHM.Weirdness)); List<String> list = ke.getAllKeysForURL(“http://nejaka-url"); ke.addAlgorithm(new TagTheNetKeyExtractor()); ke.addAlgorithm(new DeliciousKeyExtractor()); ke.getAllKeysForText(string);
Under the hood • Readability libka [jruby] • Podľa bookmarkletu http://lab.arc90.com/experiments/readability/ get_html_content(url) get_plain_text_from_html(html) get_plain_text(url)
Under the hood • TagTheNet proxy [jruby] • get_tags_for_text(string) • GoogleTranslate proxy [jruby] • detect_language(string) • translate(string,from="",to="en") • Všetko z jruby je volateľné z javy (ak performance nie je issue )
Čo s tým chcem ja? • Jednoduchý UM v otvorenom informačnom priestore založený na tagoch • Pre každú stránku, ktorú používateľ navštívi extrahujem kľúčové slová a uložím ich do modelu používateľa • Niektoré sa budú určite objavovať častejšie
Proxy UserAgentString: Firefox Proxy Browser patcher
Proxy UserAgentString: Firefox, AUID=123 Proxy QuickProxyPlugin pre Firefox UM AUID Timestamp URL keywords
Social Networking AUID = XYZ AUID = XYZ Relax AUID = XYZ AUID = XYZ AUID = XYZ AUID = XYZ AUID = XYZ AUID = XYZ AUID = XYZ AUID = XYZ AUID = XYZ AUID = XYZ
Späť k libke/libkám • http://nimbus.fiit.stuba.sk/hg/jkey-extractor/ • browse (AIS login) • Pošli public_key (open-ssh) ak chceš prispieť • ToDo: • Pridanie OpenCalais providera (Peter Bugáň ) • Refaktoring • Handlovanie škaredých stavov