Ασκήσεις μελέτης της ενότητας της Γλωσσικής Τεχνολογίας

Σχετικά έγγραφα
Ασκήσεις μελέτης της 23 ης διάλεξης

Ασκήσεις μελέτης της ενότητας «Σημασιολογική Ανάλυση»

Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Μάθημα: Γλωσσική Τεχνολογία, Διδάσκων: Ι. Ανδρουτσόπουλος

Ασκήσεις μελέτης της ενότητας «Συντακτική Ανάλυση»

Ασκήσεις μελέτης της ενότητας «Συντακτική Ανάλυση»

Επικοινωνία Ανθρώπου Υπολογιστή. Β3. Κατανόηση φυσικής γλώσσας

Γλωσσική Τεχνολογία. 5 η Ενότητα: Συντακτική ανάλυση. Ίων Ανδρουτσόπουλος.

Συστήματα κ Τεχνολογίες Γνώσης Εργασίες στην Επεξεργασία Φυσικής Γλώσσας

Ασκήσεις μελέτης της 6 ης διάλεξης

Τεχνητή Νοημοσύνη. 23η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Ασκήσεις μελέτης της 16 ης διάλεξης

Τεχνητή Νοημοσύνη. 21η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνογλωσσία 8 Β' Εξάμηνο Λογικός Προγραμματισμός Prolog

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 4 ο : Συντακτική ανάλυση. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος:

Ασκήσεις μελέτης της 19 ης διάλεξης

Τεχνογλωσσία 8 Β' Εξάμηνο. Λογικός Προγραμματισμός Prolog. Άσκηση: Διορθωτής Εκφράσεων

Επικοινωνία Ανθρώπου Υπολογιστή

Εργαστηριακές σημειώσεις για το μάθημα: «Εισαγωγή στην Μηχατρονική»

Printed November 5, 2012 at 8:37

Συντακτική Ανάλυση. Ίων Ανδρουτσόπουλος.

Ασκήσεις μελέτης της 11 ης διάλεξης

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Μηχανές Πεπερασμένων Καταστάσεων

Εισαγωγή στην Αριθμητική Ανάλυση

«Τεχνογλωσσία VIII» Εξαγωγή πληροφοριών από κείμενα

Υπηρεσία «NT Bulk SMS» Οδηγίες Χρήσεως

ΠΕΚ ΤΡΙΠΟΛΗΣ ΕΠΙΜΟΡΦΩΣΗ ΕΚΠ/ΚΩΝ ΠΕ19,20 ΗΜ/ΝΙΑ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ

turnin Lab4.pro

Ασκήσεις3 Διαγωνισιμότητα Βασικά σημεία Διαγωνίσιμοι πίνακες: o Ορισμός και παραδείγματα.

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Συστήματα Αναμονής (Queuing Systems)

/ Γράψε και χρωμάτισε τα φρούτα. / Γράψε και χρωμάτισε τα ζώα.

Ασκήσεις μελέτης της 8 ης διάλεξης

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1)

ΑΣΚΗΣΗ ΜHΧΑΤΡΟΝΙΚΗΣ. Τέλος όταν εισάγετε ένας σωστός συνδυασμός η ένδειξη του display να μηδενίζετε.

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΤΕΧΝΟΓΛΩΣΣΙΑ VIII ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΔΑΣΚΟΝΤΕΣ: ΜΑΪΣΤΡΟΣ ΓΙΑΝΗΣ, ΠΑΠΑΚΙΤΣΟΣ ΕΥΑΓΓΕΛΟΣ ΑΣΚΗΣΗ: ΔΙΟΡΘΩΣΗ ΕΚΦΡΑΣΕΩΝ (Β )

Σειρά Προβλημάτων 3 Λύσεις

Γραμμική Αλγεβρα ΙΙ Διάλεξη 1 Εισαγωγή Χρήστος Κουρουνιώτης Πανεπισ τήμιο Κρήτης 19/2/2014 Χ.Κουρουνιώτης (Παν.Κρήτης) Διάλεξη 1 19/2/ / 13

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Ολοκληρωμένα Κυκλώματα

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Εργαστήριο Γραμμικής Άλγεβρας. H Matlab ως γλώσσα προγραμματισμού

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΜΑΘΗΜΑΤΙΚΑ Ι (ΘΕ ΠΛΗ 12) ΕΡΓΑΣΙΑ 1 η Ημερομηνία Αποστολής στον Φοιτητή: 20 Οκτωβρίου 2008

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

LESSON 16 (ΜΑΘΗΜΑ ΔΕΚΑΕΞΙ) REF : 102/018/16-BEG. 4 March 2014

The Accusative Case. A Target for the Action. A lesson for the Paideia web-app Ian W. Scott, 2015

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΣΗΜΑΣΙΟΛΟΓΙΑ - SEMANTICS

Τυπικές χρήσεις της Matlab

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕ ΕΦΑΡΜΟΓΕΣ ΣΤΗ ΒΙΟΪΑΤΡΙΚΗ

Γλώσσα Προγραμματισμού C

ΦΥΣ 145 Μαθηματικές Μέθοδοι στη Φυσική. Γράψτε το ονοματεπώνυμο και αριθμό ταυτότητάς σας στο πάνω μέρος της αυτής της σελίδας.

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

Πανελλήνιες 2016: Ο νέος τρόπος υπολογισμού των μορίων

Ασκήσεις3 Διαγωνίσιμες Γραμμικές Απεικονίσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΣΥΝΤΑΞΗ: ΟΡΘΟΛΟΓΙΚΗ ΠΡΟΣΕΓΓΙΣΗ (FORMAL SYNTAX)

Περιεχόμενα Πρόλογος 1. Εισαγωγή 2. Τα Βασικά Μέρη ενός Προγράμματος Prolog

ΤΕΙ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ «ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ» ΔΕ. 11 ΙΟΥΝΙΟΥ 2012

Θεωρία Προγραμματισμού

Τεχνητή Νοημοσύνη. 6η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

STARTING STEPS IN GRAMMAR, FINAL TEST C TERM 2012 UNITS 1-18

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Πιθανοκρατικό μοντέλο

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

Προγραμματισμός ΙI (Θ)

(Γραμμικές) Αναδρομικές Σχέσεις

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

1.5 ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ μικρόκοσμου «Προγραμματισμός Η/Υ»

τις αναδρομικές ακολουθίες (recursive sequences) στις οποίες ορίζαμε

Ενότητα 4: «Εισαγωγή στον Προγραμματισμό. Τα πρώτα προγράμματα σε γλώσσα C»

SPSS Statistical Package for the Social Sciences

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 1 Ο. Εισαγωγή στις έννοιες Πρόβλημα, Αλγόριθμος, Προγραμματισμός, Γλώσσες Προγραμματισμού

αριθμούς Βασικές ασκήσεις Βασική θεωρία iii) φυσικοί; ii) ακέραιοι; iii) ρητοί;

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

1. Για καθένα από τους ακόλουθους διανυσματικούς χώρους βρείτε μια βάση και τη διάσταση. 3. U x y z x y z x y. {(,, ) } a b. c d

Τμήμα Φυσικής Πανεπιστημίου Κύπρου Εαρινό Εξάμηνο 2015/2016. ΦΥΣ145 Υπολογιστικές Μέθοδοι στην Φυσική

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

(Γραμμικές) Αναδρομικές Σχέσεις

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

(Γραμμικές) Αναδρομικές Σχέσεις

ΕΝΟΤΗΤΑ 4 ΜΟΤΙΒΑ ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΥ ΑΦΑΙΡΕΣΗ ΜΕ ΧΑΛΑΣΜΑ ΔΕΚΑΔΑΣ

Εισαγωγή στον επιστημονικό προγραμματισμό 2 o Μάθημα

Περισσότερα ουσιαστικά

Κεφάλαιο 8: Ελεύθερη πτώση

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Επικοινωνία Ανθρώπου Υπολογιστή

Θεωρια Αριθµων Προβληµατα

Transcript:

Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Μάθημα: Επικοινωνία Ανθρώπου Υπολογιστή, 2016 17 Διδάσκων: Ι. Ανδρουτσόπουλος Ασκήσεις μελέτης της ενότητας της Γλωσσικής Τεχνολογίας 1. Επιβεβαιώστε τους υπολογισμούς της διαφάνειας 26 (πίνακας υπολογισμού απόστασης διόρθωσης) της Ενότητας Β1. Δοκιμάστε και άλλα ζεύγη λέξεων. Υλοποιήστε τον αλγόριθμο. 2. (α) Χρησιμοποιήστε εξομάλυνση Laplace (ή καλύτερη) και το ελληνικό τμήμα του σώματος κειμένων Europarl (βλ. http://www.statmt.org/europarl/) για να εκτιμήσετε τις πιθανότητες όλων των διγραμμάτων λέξεων που εμφανίζονται στις έξι υποψήφιες ακολουθίες 4 t 1 της διαφάνειας 28 της ενότητας Β1. Μπορείτε να θεωρήσετε ότι κάθε πρόταση ξεκινά με την ψευδο-λέξη <start> και τελειώνει με την ψευδο-λέξη <end>. (β) Χρησιμοποιήστε ένα γλωσσικό μοντέλο διγραμμάτων και τις εκτιμήσεις του προηγούμενου σκέλους για να 4 εκτιμήσετε την πιθανότητα εμφάνισης κάθε μίας από τις έξι υποψήφιες ακολουθίες t 1 της διαφάνειας 28. (Στην πράξη οι υλοποιήσεις γλωσσικών μοντέλων n-γραμμάτων υπολογίζουν το άθροισμα των λογαρίθμων των πιθανοτήτων των n-γραμμάτων, αντί για το γινόμενο των πιθανοτήτων. Γιατί;) (γ) Χρησιμοποιώντας ως P(w i t i ) τον αντίστροφο της απόστασης διόρθωσης των w i, t i (ή καλύτερες εκτιμήσεις που θα λαμβάνουν π.χ. υπόψη τους αν οι w i, t i είναι ομόηχες και θα ικανοποιούν w i P(w i t i ) = 1) και τους τύπους της διαφάνειας 29, υπολογίστε την P(t 4 1 w 4 4 1 ) για κάθε μία από τις έξι υποψήφιες ακολουθίες t 1 της διαφάνειας 28. Υπόδειξη: Η άσκηση είναι προγραμματιστική. Στο σκέλος (α), σας ζητά να εκτιμήσετε πρώτα τις πιθανότητες όλων των διγραμμάτων των έξι υποψηφίων ακολουθιών λέξεων της διαφάνειας 28, χρησιμοποιώντας τους τύπους της διαφάνειας 16 (αλλά για διγράμματα) και μια συλλογή κειμένων. Για παράδειγμα: P(εσείς start) = (c(start, εσείς) + 1) / (c(start) + V ) P(παίζετε εσείς) = (c(εσείς, παίζετε) + 1) / (c(εσείς) + V ) Στο σκέλος (β), σας ζητά να εφαρμόσετε τον πρώτο τύπο της διαφάνειας 15 (καλύτερα με άθροισμα λογαρίθμων, αντί για γινόμενο πιθανοτήτων) σε κάθε υποψήφια ακολουθία λέξεων της διαφάνειας 28, για να υπολογίσετε το P(t 1 k ) κάθε υποψήφιας ακολουθίας λέξεων. Στο σκέλος (γ), πρέπει πρώτα να εφαρμόσετε τον κάτω τύπο της διαφάνειας 29 σε κάθε υποψήφια ακολουθία λέξεων της διαφάνειας 28, για να υπολογίσετε το P(w 1 k t 1 k ) κάθε υποψήφιας ακολουθίας. Ως P(w i t i ) μπορείτε να χρησιμοποιήσετε (για τους σκοπούς της άσκησης) το 1/d(w i, t i ), όπου d(w i, t i ) η απόσταση Levenshtein μεταξύ των λέξεων w i και t i. Τέλος, πρέπει να πολλαπλασιάσετε (ή να προσθέσετε αν χρησιμοποιείτε λογαρίθμους) το P(t 1 k ) με το P(w 1 k t 1 k ) κάθε υποψήφιας ακολουθίας λέξεων, για να βρείτε την καλύτερη υποψήφια ακολουθία. 3. Εξηγήστε (χρησιμοποιώντας και δικά σας παραδείγματα) πώς ακριβώς θα μπορούσε ένα έξυπνο πληκτρολόγιο σαν εκείνο των διαφανειών 32 34 της Ενότητας B1 να προτείνει επόμενες λέξεις ή διορθώσεις ή συμπληρώσεις της τρέχουσας λέξης χρησιμοποιώντας ένα λεξικό (π.χ. συχνές λέξεις που έχει χρησιμοποιήσει στο παρελθόν ο χρήστης), τον αλγόριθμο υπολογισμού της απόστασης διόρθωσης κι ένα γλωσσικό μοντέλο n-γραμμάτων. 4. (α) Εξηγήστε σε συμφοιτητή σας που δεν παρακολουθεί το μάθημα τα στάδια παραγωγής των διανυσμάτων MFCC της Ενότητας Β2. (β) Τροποποιήστε το διάγραμμα της διαφάνειας 31 της Ενότητας Β2, ώστε το σύστημα να μπορεί να αναγνωρίσει προτάσεις που αποτελούνται από τις λέξεις «Ι», «would», «like», «want», «a», «an», «morning», «evening»,

«flight», «from», «to», «departing», «depart», «arriving», «arrive», «in», «the», «Athens», «London», «Paris», «Berlin». Χρησιμοποιήστε το φωνητικό λεξικό του CMU (βλ. http://www.speech.cs.cmu.edu/cgi-bin/cmudict). 5. Εξηγήστε πώς μπορεί να υπολογιστεί το WER της διαφάνειας 34 της Ενότητας Β2 χρησιμοποιώντας τον αλγόριθμο υπολογισμού της απόστασης διόρθωσης της Ενότητας Β1. 6. Σχεδιάστε τα δύο συντακτικά δέντρα που προκύπτουν για την πρόταση «είδαμε το γιατρό με την άσπρη μπλούζα», όταν χρησιμοποιείται η ακόλουθη γραμματική με αρχικό σύμβολο S (βλ. ενότητα Β3). V είδαμε Det το την N γιατρό μπλούζα Prep με Adj άσπρη Nominal N Adj N N PP NP Det Nominal PP Prep NP VP V NP V NP PP S VP 7. (α) Επιβεβαιώστε ότι η πολυπλοκότητα του αλγορίθμου CKY της Ενότητας Β3 είναι O(n 3 ), όπου n το πλήθος των λέξεων της πρότασης. (β) Εξηγήστε πώς ακριβώς είναι δυνατόν να τροποποιηθεί ο αλγόριθμος CKY, ώστε να παράγει και συντακτικά δέντρα. Δείξτε πώς θα γινόταν η παραγωγή του συντακτικού δέντρου στο παράδειγμα των διαφανειών 10 18. (γ) Υλοποιήστε τον αλγόριθμο CKY, ώστε να επιστρέφονται και τα συντακτικά δέντρα. 8. (α) Μετατρέψτε την ακόλουθη γραμματική σε μορφή DCG (βλ. Ενότητα Β3), προσθέτοντας επίσης έλεγχο συμφωνίας γένους, ώστε π.χ. να μην επιτρέπονται προτάσεις όπως «η σκύλος κυνήγησε το γάτα». S NP VP NP Det N VP V NP Det ο η το τη N σκύλος σκύλο γάτα V κυνήγησε δάγκωσε (β) Τροποποιήστε τη γραμματική DCG του προηγούμενου σκέλους, ώστε αν την δώσουμε στην Prolog μαζί με το στόχο: phrase(s(action, Agent, Object), [ο, σκύλος, κυνήγησε, τη, γάτα]). η Prolog να απαντήσει: Action = chase, Agent = dog, Object = cat, ενώ στην περίπτωση του στόχου: phrase(s(action, Agent, Object), [ο, σκύλος, δάγκωσε, τη, γάτα]). η Prolog να απαντήσει: Action = bite, Agent = dog, Object = cat. s(action, Agent, Object) --> np(agent), vp(action, Object). np(entity) --> det(gender), n(entity, Gender). vp(action, Object) --> v(action), np(object). det(masc) --> [ο]. det(fem) --> [η]. det(masc) --> [το]. det(fem) --> [τη]. n(dog, masc) --> [σκύλος]. n(dog, masc) --> [σκύλο].

n(cat, fem) --> [γάτα]. v(chase) --> [κυνήγησε]. v(bite) --> [δάγκωσε]. 9. Τροποποιήστε τη γραμματική DCG της διαφάνειας «Σημασιολογία αριθμητικής γλώσσας» της Ενότητας Β3, ώστε να επιτρέπει αριθμητικές πράξεις μεταξύ αριθμών από το μηδέν ως και το 9.999. Ως απλούστευση, το δέκα να γράφεται ως [one, ten], το δώδεκα ως [one, ten, two], το 23 ως [two, ten, three], το εκατό ως [one, hundred], το 110 ως [one, hundred, one, ten], το 123 ως [one, hundred, two, ten, three], το 1000 ως [one, thousand], το 1123 ως [one, thousand, one, hundred, two, ten, three] κ.ο.κ. Για παράδειγμα, η ακόλουθη εντολή:?-phrase(expression(v), [open, two, thousand, three, hundred, five, ten, two, plus, two, ten, one, close]). θα πρέπει να επιστρέφει: V = 2373 και η εντολή:?-phrase(expression(v), [open, open, two, thousand, three, hundred, five, ten, two, plus, two, ten, one, close, minus, one, thousand, seven, ten, close]). V = 1303 digit(0) --> [zero]. digit(2) --> [two]. digit(4) --> [four]. digit(6) --> [six]. digit(8) --> [eight]. digit(1) --> [one]. digit(3) --> [three]. digit(5) --> [five]. digit(7) --> [seven]. digit(9) --> [nine]. number(value) --> digit(value). number(newvalue) --> digit(value1), [ten], number(value2), {Value2 < 10, NewValue is Value1 * 10 + Value2}. number(newvalue) --> digit(value1), [ten], {NewValue is Value1 * 10}. number(newvalue) --> digit(value1), [hundred], number(value2), {Value2 < 100, NewValue is Value1 * 100 + Value2}. number(newvalue) --> digit(value1), [hundred], {NewValue is Value1 * 100}. number(newvalue) --> digit(value1), [thousand], number(value2), {Value2 < 1000, NewValue is Value1 * 1000 + Value2}. number(newvalue) --> digit(value1), [thousand], {NewValue is Value1 * 1000}. expression(value) --> number(value). expression(newvalue) --> [open], expression(value1), [plus], expression(value2), [close], {NewValue is Value1 + Value2}. expression(newvalue) --> [open], expression(value1), [minus], expression(value2), [close], {NewValue is Value1 - Value2}. 10. Γράψτε μια γραμματική DCG (βλ. Ενότητα Β3) που να επιτρέπει προτάσεις όπως: [άνοιξε,τα,παράθυρα,του,σαλονιού], [κλείσε,το,μικρό,παράθυρο,του,σαλονιού], [σβήσε,το,μεγάλο,φως,της,μικρής,κουζίνας], [άναψε,τα,φώτα,των,μικρών,μπάνιων]

αλλά να μην επιτρέπει προτάσεις με ασυμφωνία γένους, αριθμού ή πτώσης, όπως οι παρακάτω: Χ [άνοιξε,το,παράθυρα,του,σαλονιού], Χ [κλείσε,το,μικρή,παράθυρο,του,σαλονιού], Χ [σβήσε,το,μεγάλου,φως,της,μικρής,κουζίνας], Χ [άναψε,τα,φώτα,το,μικρού,μπάνιων] και να απαιτεί τα ρήματα «ανάβω» και «σβήνω» να χρησιμοποιούνται μόνο με φώτα, ενώ τα «ανοίγω» και «κλείνω» μόνο με παράθυρα. Για παράδειγμα, να μην επιτρέπονται προτάσεις όπως: Χ [σβήσε,το,μικρό,παράθυρο,του,σαλονιού], Χ [άνοιξε,το,μεγάλο,φως,της,μικρής,κουζίνας] Για τις επιτρεπόμενες προτάσεις, θέλουμε η γραμματική να μπορεί να χρησιμοποιηθεί όπως φαίνεται στα παρακάτω παραδείγματα: [άνοιξε,τα,μεγάλα,παράθυρα,του,μικρού,σαλονιού]). Action = open, Type1 = window, Size1 = large, Number1 = plur, Type2 = livingroom, Size2=small, Number2 = sing [άναψε,τα,φώτα,των,μικρών,μπάνιων]). Action = on, Type1 = light, Size1 = unknown, Number1 = plur, Type2 = bathroom, Size2=small, Number2 = plur [κλείσε,τα,παράθυρα]). Action = close, Type1 = window, Size1 = unknown, Number1 = plur, Type2 = unknown, Size2=unknown, Number2 = unknown s(action, Type1, Size1, Number1, Type2, Size2, Number2) --> vp(action, Type1, Size1, Number1, Type2, Size2, Number2). vp(action, Type, Size, Number, uknown, uknown, unknown) --> v(action, Type), np(gender, Number, acc, Type, Size). vp(action, Type1, Size1, Number1, Type2, Size2, Number2) --> v(action, Type1), np(number1, acc, Type1, Size1), np(number2, gen, Type2, Size2). np(number, Case, Type, Size) --> det(gender, Number, Case), nominal(gender, Number, Case, Type, Size). nominal(gender, Number, Case, Type, Size) --> adj(gender, Number, Case, Size), n(gender, Number, Case, Type). nominal(gender, Number, Case, Type, unknown) --> n(gender, Number, Case, Type).

v(on, light) --> [άναψε]. v(open, window) --> [άνοιξε]. det(neut, sing, acc) --> [το]. det(neut, sing, gen) --> [του]. det(gender, plur, gen) --> [των]. v(off, light) --> [σβήσε]. v(close, window) --> [κλείσε]. det(neut, plur, acc) --> [τα]. det(fem, sing, gen) --> [της]. n(neut, sing, acc, window) --> [παράθυρο]. n(neut, plur, acc, window) --> [παράθυρα]. n(neut,sing,acc, light) --> [φως]. n(neut, plur, acc, light) --> [φώτα]. n(neut, sing, gen, livingroom) --> [σαλονιού]. n(neut, plur, gen, livingroom) --> [σαλονιών]. n(neut, sing, gen, bathroom) --> [μπάνιου]. n(neut, plur, gen, bathroom) --> [μπάνιων]. n(fem, sing, gen, kitchen) --> [κουζίνας]. n(fem, plur, gen, kitchen) --> [κουζινών]. adj(neut, sing, acc, small) --> [μικρό]. adj(neut, sing, gen, small) --> [μικρού]. adj(fem, sing, acc, small) --> [μικρή]. adj(fem, sing, gen, small) --> [μικρής]. adj(gender, plur, gen, small) --> [μικρών]. adj(neut, sing, acc, large) --> [μεγάλο]. adj(neut, sing, gen, large) --> [μεγάλου]. adj(fem, sing, acc, large) --> [μεγάλη]. adj(fem, sing, gen, large) --> [μεγάλης]. adj(gender, plur, gen, large) --> [μεγάλων].