De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Opbouw van het Netwerk void Lees (string filenaam ) { while ( (regel=sr.ReadLine()) != null ) { string [] r = regel.Split(" ", StringSplitOptions.RemoveEmpty.

Verwante presentaties


Presentatie over: "Opbouw van het Netwerk void Lees (string filenaam ) { while ( (regel=sr.ReadLine()) != null ) { string [] r = regel.Split(" ", StringSplitOptions.RemoveEmpty."— Transcript van de presentatie:

1 Opbouw van het Netwerk void Lees (string filenaam ) { while ( (regel=sr.ReadLine()) != null ) { string [] r = regel.Split(" ", StringSplitOptions.RemoveEmpty ); if (r[0] == "stad") { } else { new Point( int.Parse(r[2]), int.Parse(r[3]) ) ); this. bouwStad (r[1] this.bouwWeg( r[1], r[2], int.Parse(r[3]) ); } } } if (r.Length==4) StreamReader sr = new StreamReader(filenaam);

2 Opbouw van het Netwerk void bouwStad (string naam, Point p) { } Stad st = new Stad(naam, p); void bouwWeg (string van, string naar, int kosten) { } Steden. Add (st); Stad st1 = this. vindStad (van); Stad st2 = this. vindStad (naar); st1. BouwWeg (st2, kosten); st2. BouwWeg (st1, kosten); Netwerk’s Stad’s void BouwWeg(Stad doel, int k) { } Wegen. Add ( new Weg(doel, k) ); class Stad {

3 Opbouw van het Netwerk Stad vindStad (String naam) { } foreach ( Stad st in Steden ) { } if ( st.naam == naam ) return st ; return null ; Stad VindStad (Point p) { foreach ( Stad st in steden ) { } if ( return st ; return null ; p.X-st.Plek.X < 5 && p.Y-st.Plek.Y <5 ) Math.Abs( )

4 while (... ) { pad =... if (compleet) return pad; for (...) if ( !kring ) paden.Push(...) } return null; Niet de eerste oplossing, maar de beste zoeken! while (... ) { pad =... if (compleet) return pad; for (...) if ( !kring ) paden.Push(...) } return null; beste = null; return beste; beste=pad;if (beter) beste=pad; && !zinloos)

5 Hoofdstuk 11.2 Algoritmen: Automatische taalherkenning

6 Implementeer Programmeer-cyclus Edit Compile Run Specificeer Modelleer

7 Modelleren ngedicht “Jabberwocky” (Lewis Carroll) 'Twas brillig, and the slithy toves Did gyre and gimble in the wabe: All mimsy were the borogoves, And the mome raths outgrabe. Il brigue: les tôves libricilleux Se gyrent en vrillant dans la guave. Enmîmés sont les goubebosqueux Et le mômerade horsgrave. Es brillig war. Die schlichten Toven Wirrten un wimmelten in Waben; Und aller-mümsigen Burggroven Die mohmen Räth' ausgraben. 't Was bradig en de slijp'le torfs Driltolden op de wijde weep. Misbrozig stonden borogorfs 't Verdwoolde grasvark schreep. nHoe herken je de taal? uk fr de nl

8 Modelleren je kunt de taal herkennen zonder de woorden te begrijpen! npatronen in woorden en uitgangen nrelatieve frequenties van de letters die kan een computer ook tellen...

9 Modelleren nBepaal de letterfrequentie van de onbekende tekst nVergelijk die met opgeslagen frequentie- tabellen van diverse talen nDe “best passende” is het! misschien

10 Modelleren we stoppen er niet kant-en-klare tabellen in......maar voorbeeldteksten, waarvan het programma de letters zelf mag turven is dit nou AI? Ja. subsymbolische AI

11 Specificeren onbekende tekst voorbeeld- talen en -teksten

12 Specificeren Hoe vergelijk je frequentietabellen? nAlle letters zijn belangrijk Totaliseer de verschillen voor alle letters nTekstlengte mag niet van invloed zijn Gebruik de relatieve frequentie nTekort mag overschot niet compenseren Tel het verschil altijd positief

13 Ontwerpen Klassen in dit programma nclass Form nclass TurfTab nclass RelTurfTab : TurfTab nclass Taal : Form uit System.Windows.Forms uit LetterTeller voegt toe: - relatieve telling - lezen vanaf WWW voegt toe: - interactie

14 Implementatie: GUI class Taal : Form { TextBox invoer; Label uitvoer; TextBox [ ] taal;TextBox [ ] url; const int aantal = 10; Label [ ] score; TableLayoutPanel paneel,talen,alles;

15 Implementatie: actie void herken_klik (object o, ActionEvent ae) { RelTurfTab onbekend, voorbeeld; onbekend = new RelTurfTab(); onbekend. Turf ( invoer.Text ); voorbeeld = new RelTurfTab(); voorbeeld. Lees (url[t].Text ); for (int t=0; t<aantal; t++) { } d = onbekend. Verschil (voorbeeld); if (d<kleinste) kleinste = d; { antwoord = taal[t].Text; } uitvoer. Text = antwoord; kleinste = 1.0; antwoord = "onbekend"; double kleinste; string antwoord;

16 De klasse TurfTab public class TurfTab { int [ ] tellers; int totaal; public TurfTab ( ){... } public void Turf (string s){... } public string ToString ( ) {... } private void turf (char c){... } } klasse-ontwerp: wat is... & wat kan... & hoe?

17 De klasse RelTurfTab public void Lees (string s) {... } public double Verschil (RelTurfTab ander ) {... } private double relatief (int i) {... } } public class RelTurfTab : TurfTab {

18 Specificeren Hoe vergelijk je frequentietabellen? nAlle letters zijn belangrijk Totaliseer de verschillen voor alle letters nTekstlengte mag niet van invloed zijn Gebruik de relatieve frequentie nTekort mag overschot niet compenseren Tel het verschil altijd positief

19 De klasse RelTurfTab public double Verschil (RelTurfTab ander ) { } private double relatief (int i) { } public class RelTurfTab : TurfTab { tellers[i] / totaal(double)return ; this.relatief(t) – ander.relatief(t) for (int t=0; t<26; t++) totaal += Math.Abs ( ); double totaal = 0.0; return totaal;

20 De klasse RelTurfTab public void Lees (string naam) public class RelTurfTab : TurfTab { { } TextReader reader; string regel; regel = reader.ReadLine() while ( ( ) != null ) this.Turf (regel); reader = new StreamReader(naam); reader = new StreamReader( new WebClient( )); if (naam.StartsWith("http://")) else. OpenRead(naam)

21 Modelleren we stoppen er niet kant-en-klare tabellen in......maar voorbeeldteksten, waarvan het programma de letters zelf mag turven geplukt van het internet Klik hier verstoren taalbeeld!

22 De klasse TurfTab class TurfTab { int [ ] tellers; int totaal; public TurfTab ( ){... } public void Turf (String s){... } public String ToString ( ) {... } private void turf (char c){... } } deze methode herdefiniëren in RelTurfTab virtual protected

23 De klasse RelTurfTab override protected void turf (char c) { } class RelTurfTab : TurfTab { base. turf (c); if (teltMee) bool teltMee = true; if (c== ‘ ’) teltMee = true; herdefinitie doe de oorspronkelijke versie extra member-variabele

24 Implementatie af! Implementeer Edit Compile Run Specificeer Modelleer

25 Modelleren nBepaal de letter- frequentie van de onbekende tekst nVergelijk die met opgeslagen frequentie- tabellen van diverse talen nDe “best passende” is het! misschien we stoppen er niet kant-en-klare tabellen in......maar voorbeeldteksten, waarvan het programma de letters zelf mag turven

26 Specificeren Hoe vergelijk je frequentietabellen? nAlle letters zijn belangrijk Totaliseer de verschillen voor alle letters nTekstlengte mag niet van invloed zijn Gebruik de relatieve frequentie nTekort mag overschot niet compenseren Tel het verschil altijd positief

27 Ontwerpen Klassen in dit programma nclass Frame nclass TurfTab nclass RelTurfTab : TurfTab nclass Taal : Frame uit System.Windows.Forms hadden we al voegt toe: - relatieve telling - lezen vanaf WWW voegt toe: - interactie


Download ppt "Opbouw van het Netwerk void Lees (string filenaam ) { while ( (regel=sr.ReadLine()) != null ) { string [] r = regel.Split(" ", StringSplitOptions.RemoveEmpty."

Verwante presentaties


Ads door Google