2012. augusztus 15., szerda

HTML tisztítás és Google keyword teszt

A HTML dokumentumokból való szövegkinyerés közel sem triviális feladat -- úgy tűnhet, hogy elég kidobálni minden HTML taget és kész is vagyunk. Sajnos, már a tagek törlése is gyakran problémás, mert egy ártatlan HTML mélyén aljas Javascript-ek, kommentek, etc, etc.. lapulhatnak.

A másik probléma, hogy nem minden szöveg "szöveg" abban az értelemben, hogy érdemes vele foglalkozni: egy átlagos page jókora része kölünféle linkekből , feliratokból és egyéb haszontalan elemekből áll; és akkor még itt van a kommentek kérdése is.

Sztenderd és széles körben alkalmazott szemantikus tagelésnek pedig továbbra is híján vagyunk...

Jó hasznát vehetjük azonban a HTML dokumentumok fa-természetének, illetve a józan paraszti észnek -- pl. kiindulhatunk abból, hogy sok oldalon a cikkek szövegét P tagek közé ékelik.

És szerencsére itt van nekink a BeautifulSoup nevű remek python modul: HTML-t iterálható és kereshető objektumokká alakít.  Ennyi az egész:


Ettől a kis változtatástól a kulcsszó-kiemelő sokkal tisztább bemeneti szövegekkel tud dolgozni, és sokkal jobb eredményt is produkál:




Egy másik érdekes megfigyelés, hogy az első 6 kulcsszó alapján a Google már elég jó eséllyel rátalál a kérdéses dokumentumra (és valójában lejjebb is lehet menni, tessék kipróbálni!). Így tehát bizonyítottnak tekinthetjük, hogy a Google is használ TF-IDF elemeket az algoritmusában:)

2012. augusztus 12., vasárnap

Kulcsszó kiemelő alkalmazás

Korábban már írtam a kulcsszó kiemelésről a TF-IDF modell segítségével, most pedig végre volt egy kis időm, és megírtam rendesen minimálisan működőképesre.

Az igazi öröm számomra eközben a Google App Engine-nel való megismerkedés volt: a google ugyanis megengedi, hogy a felhőben futtassuk a kis alkalmazásainkat, ad hozzá egy elég gyorsan kiismerhető framework-ot, és nem utolsó sorban 1GB tárhelyet az adataink tárolására. INGYEN! (aztán ha több kell, lehet venni még)

A kulcsszó-kiemelő egy blog (vagy bámi más) RSS feedjének címét kéri, valamint még két paramétert: hány oldalt szeretnénk kielemeztetni a géppel és hány karakternél vágjuk le az oldal alját (ezt azonnal megérted, ha rákattintasz).



A dolog persze messze nem tökéletes, pl. szótövezés nincs beépítve, és nagyon kevés dokumentumhoz képest elemzi a kód az adott dokumentum kifejezését (egészen pontosan csak az adott feedhez képest). Igazából az a meglepő, hogy így is viszonylag értelmes dolgokat dob ki!

Tessék ezért minnél több feed címét beírni, mert az alkalmazás szorgalmasan elmenti a statisztikákat, ami a későbbiekben nagy segítség lesz nekem!;)