Hoofdstuk 14.2 Algoritmen: Automatische taalherkenning.

Slides:



Advertisements
Verwante presentaties

Advertisements


Het label van de stad Den Haag De vlieger
Hoofdstuk 1 Programmeren.
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)
Gestructureerd programmeren in C
Van domeinklasse tot implementatie
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
Het type int Tekenen met Java operatoren
Klassen en objecten.
Grammaire chapitre 4 1 hv.
Hoofdstuk 6: Controle structuren
Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk 10: Omgaan met problemen.
Hoofdstuk 1 Programmeren.
Hoofdstuk 2 Hallo, C# !.
INTERACTION DESIGN Week 6.
Hoofdstuk 10 Overerving.
Inleiding programmeren in C++ Life Science & Technology 2 februari Universiteit Leiden.
Oefeningen Hoofdstuk 3.
Consoletoepassing Variabelen Klassen
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
6.1 Inleiding HOOFDSTUK 6 METHODEN
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Hoofdstuk 2 Java. Soorten Java-programma’s nJava Applet programma “leeft” op een WWW-pagina nJava Application programma heeft een eigen window nJavascript.
Opgave 2a nMet een InputStream lees je bytes uit een binare file nMet een Reader lees je characters uit een tekstfile.
Java GUI nJava is platform-onafhankelijk nLook&feel past zich aan aan het platform new FileDialog(……).show();
Arrays.
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 15: Herhaling Java-programmatie en geautomatiseerd testen.
Deltion College Engels A2 Lezen [Edu/002]/subvaardigheid ‘koken’….!
1 Syntax JavaLogo. 2 Hoofdstuk 1 Tekenen in Java.
Deltion College Engels A1 Lezen [Edu/002] thema: Headlines can-do : kan het onderwerp vaststellen van korte berichten in een krant © Anne Beeker Alle rechten.
Inleiding tot programmeren
Datacommunicatie en netwerken
1 Introductie next MCT - Programmeren 2 © S. Walcarius Waarom java? programma machinetaal (.exe) compilen platformspecifiek Een exe programma.
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Deltion College Engels B2 Lezen [Edu/004] thema: Scanning, a race against the time can-do: kan snel belangrijke detailinformatie vinden in lange en complexe.
JAVA: een platformonafhankelijke taal
Deltion College Engels B1 Schrijven [Edu/005] thema: The Weakest Link or Weekend Millionaire… can-do : kan in brieven of s feitelijke zaken beschrijven.
Hoofdstuk 14.1 Algoritmen: Zoeken in een netwerk.
Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen.
Beslissingen. Inhoud: Booleaanse expressies: wat? Booleaanse expressies: wat? Relationele en logische operatoren Relationele en logische operatoren De.
Polymorphisme en Interfaces: inleiding
HTML. Wat is HTML Je kunt er sites mee bouwen Hypertext Markup Language Afspraken voor opmaak: tags.
Hoofdstuk 11 Strings en arrays. TextArea en String class LetterTeller extends Applet { void init ( ) { invoer = new TextArea (5, 40); uitvoer = new TextField(40);
Hoofdstuk 12 Ontwerp van programma’s. Ontwerp van de GUI nStandaard in Applets: alle met add toegevoegde componenten komen naast elkaar (totdat de regel.
Opgave 1a ncompiler: vertaalt broncode naar machine-uitvoerbare code ninterpreter: voert broncode direct uit.
1 PI1 week 9 Complexiteit Sorteren Zoeken. 2 Complexiteit van algoritmen Hoeveel werk kost het uitvoeren van een algoritme (efficiëntie)? –tel het aantal.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2.
 C++ heeft een inheritance mechanisme  Manier om functionaliteit te ‘erfen’ van een parrent class ◦ Polymorphisme ◦ Zoals we het ook in C# kennen.
CAPHRI School for Public Health and Primary Care
Opbouw van het Netwerk void Lees (string filenaam ) { while ( (regel=sr.ReadLine()) != null ) { string [] r = regel.Split(" ", StringSplitOptions.RemoveEmpty.
Wat gebeurt er in de hersenen als we lezen of schrijven?
De lidwoorden Kleine woorden met grote gevolgen!! Welke ken je? (ne en fa du)
GUI Graphical User Interface. Wat is een Graphical User Interface Mooi Gebruiksvriendelijk Veel denkwerk.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
GUI & classes Een Gui in een class steken en het object gebruiken.
IF() ELSE() LES 4: VOORWAARDEN. BOOL Een variabele die slechts 2 mogelijke waarden kan hebben: true(waar) of false(niet waar) duid je aan met bool bool.
Leesvaardigheid Lezen en leestoetsen. ▪ 1. Gouden tip voor leestoetsen ▪ 2. Hoe pak je leestoetsen aan? ▪ 3. Wat doe je bij onbekende woorden? ▪ 4. Hoe.
Les 4 havo Leesvaardigheistraining;
Objectgeoriënteerd Programmeren (2)
Gameprogrammeren: Lists en interfaces
Quel jour sommes-nous aujourd’hui ?
Quel jour sommes-nous aujourd’hui ?
Publieksvraag // schrijf een static methode die telt hoe // vaak een symbool voorkomt in een string // voorbeeld-aanroep: int n; n = Demo . Freq(’e’,
Lezen en schrijven van tekst
Modelleren en Programmeren voor KI Practicumopdracht 4: SAT Solver
Gameprogrammeren: Abstracte klassen
Digitale beeldverwerking
Transcript van de presentatie:

Hoofdstuk 14.2 Algoritmen: Automatische taalherkenning

Implementeer Programmeer-cyclus Edit Compile Run Specificeer Modelleer

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

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

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

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

Specificeren onbekende tekst voorbeeld- talen en -teksten

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

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

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

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;

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?

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

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

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;

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);

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!

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

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

Implementatie af! Implementeer Edit Compile Run Specificeer Modelleer

Programmeer-cyclus Implementeer Edit Compile Run Specificeer Modelleer

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

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

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