De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Hoofdstuk 14.2 Algoritmen: Automatische taalherkenning.

Verwante presentaties


Presentatie over: "Hoofdstuk 14.2 Algoritmen: Automatische taalherkenning."— Transcript van de presentatie:

1 Hoofdstuk 14.2 Algoritmen: Automatische taalherkenning

2 Implementeer Programmeer-cyclus Edit Compile Run Specificeer Modelleer

3 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

4 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...

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

6 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

7 Specificeren onbekende tekst voorbeeld- talen en -teksten

8 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

9 Ontwerpen Klassen in dit programma nclass Frame nclass TurfTab nclass RelTurfTab extends TurfTab nclass Taal extends Frame uit java.awt hadden we al voegt toe: - relatieve telling - lezen vanaf WWW voegt toe: - interactie

10 Implementatie GUI class Taal extends Frame implements ActionListener { TextArea tekst; Label uitvoer; TextField [] taal; TextField [] url; final int aantal = 10;

11 Implementatie actie public void actionPerformed (ActionEvent e) { RelTurfTab onbekend, voorbeeld; onbekend = new RelTurfTab(); onbekend. turf ( tekst.getText() ); voorbeeld = new RelTurfTab(); voorbeeld. leesUrl (url[t].getText() ); for (int t=0; t<aantal; t++) { } d = onbekend. verschil (voorbeeld); if (d<kleinste) kleinste = d; { antwoord = taal[t].getText(); } uitvoer. setText ( antwoord ); kleinste = 1.0; antwoord = “onbekend”; double kleinste; String antwoord;

12 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?

13 De klasse RelTurfTab public void leesUrl (String s) {... } public double verschil (RelTurfTab ander ) {... } private double relatief (int i) {... } } public class RelTurfTab extends TurfTab {

14 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

15 De klasse RelTurfTab public double verschil (RelTurfTab ander ) { } private double relatief (int i) { } public class RelTurfTab extends 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;

16 De klasse RelTurfTab private void leesUrl (String naam) { } public class RelTurfTab extends TurfTab { new URL (naam). getConnection(). getInputStream() new InputStreamReader ( ) new BufferedReader ( ) BufferedReader reader = ; String regel; regel=reader.readLine() while ( ( ) != null ) this. turf (regel);

17 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!

18 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){... } } deze methode herdefiniëren in RelTurfTab

19 De klasse RelTurfTab private void turf (char c) { } public class RelTurfTab extends TurfTab { super. turf (c); if (teltMee) boolean teltMee = true; if (c== ‘ ’) teltMee = true; herdefinitie doe de oorspronkelijke versie extra variabele in het object

20 Implementatie af! Implementeer Edit Compile Run Specificeer Modelleer

21 Programmeer-cyclus Implementeer Edit Compile Run Specificeer Modelleer

22 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

23 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

24 Ontwerpen Klassen in dit programma nclass Frame nclass TurfTab nclass RelTurfTab extends TurfTab nclass Taal extends Frame uit java.awt hadden we al voegt toe: - relatieve telling - lezen vanaf WWW voegt toe: - interactie


Download ppt "Hoofdstuk 14.2 Algoritmen: Automatische taalherkenning."

Verwante presentaties


Ads door Google