Venneapplikationer - Parser

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;  
}
Medmindre andet er angivet, er indholdet af denne side licenseret under Creative Commons Attribution-NonCommercial 3.0 License