Programmer til at gennemgå og analysere data kaldes parsere.
Parsere virker ved at gå igennem filen tegn for tegn for at registrere indhold ved forskellige markører. F.eks. kan vi udvikle et program, der tager "ord" ud af en fil ved at registrere, hvor der er mellemrum eller linjeskift. Andre muligheder er at registrere bestemte ord, antal billeder, likes, links m.m., hvor markørerne kan være ord, HTML-tags, filafslutninger o.lign.
Parser til facebookfil
Lav parser der eks. genkender og tæller
Bedste ven: ven der optræder hyppigst
Største fan: ven der kommenterer/liker mest
Største idol: ven, du hyppigst kommenterer/liker
Forbedr parseren så den kan kører forskellige forespørgsler:
- Udvikl knapper med forskellige forespørgsler som ynglingswebsite, …
- Udvid parser så den gemmer data som teksttabel eller i database, så parseren kun skal køre første gang.
Data mineren genskaber en del af Facebooks database, men her gemmes mange flere oplysninger - hvilke kunne det være?
Parser i processing
Processingkode der loader facebooks wall.htm og tæller antal gange der står "comment". For at bruge koden skal du gå ind på din facebook-side og enten gemme siden med din "væg" som wall.htm eller bede Facebook om at sende dig alle dine data (det tager et stykke tid). Filen wall.htm skal gemmes i mappen hvor dit processing-program ligger.
void setup(){ size(400,100); //Hent ord fra væggen ind i en teksttabel String[] tekstDele = hentTekstDele("wall.htm"); //Udskriv alle ord i teksttabellen i kommandolinjen - til test & udvikling println(tekstDele); //Gå igennem hele teksttabellen og tæl hver gang der står "comment" int antalKommentarer = 0; for (int i =0 ; i < tekstDele.length; i=i+1){ if(tekstDele[i].equals("kommentarer")){ antalKommentarer=antalKommentarer+1; } } text("FACEBOOKDEKTEKTIV",10,20); text("" + antalKommentarer + " gange har en eller flere kommenteret dine opslag!",10,60); } //Funktion tager tekstdokument, henter ord ud og gemmer dem i en tekstabel som returneres String[] hentTekstDele(String filNavn) { String linjer[] = loadStrings(filNavn); String[] tekstDele = new String[0]; for (int i =0 ; i < linjer.length; i++){ String[] linjeElementer = splitTokens(linjer[i], "< > \" \\ /="); if(linjeElementer.length>0){ tekstDele = concat(tekstDele, linjeElementer); } } return tekstDele; }