Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Διδάσκων: Ι. Ανδρουτσόπουλος, 2016-17 Ασκήσεις μελέτης της ενότητας «Συντακτική Ανάλυση» Παραδώστε μια αναφορά (το πολύ 5 σελίδων) για την άσκηση 9 και επιδείξτε την υλοποίησή σας. Μπορείτε να εργαστείτε σε ζεύγη. 1. Σχεδιάστε τα δύο συντακτικά δέντρα που προκύπτουν για την πρόταση «είδαμε το γιατρό με την άσπρη μπλούζα», όταν χρησιμοποιείται η ακόλουθη γραμματική με αρχικό σύμβολο S. 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
2. (α) Γράψτε μια δεξιά γραμμική γραμματική για τη γλώσσα a m b n c k, m > 0, n > 0, k > 0. Η γραμματική φαίνεται παρακάτω. Έχει αρχικό σύμβολο S. S aa A aa A bb B bb B cc C cc C ε (β) [Προαιρετική μελέτη για το ΤΕΑ] Σχεδιάστε ένα αυτόματο πεπερασμένων καταστάσεων που να αναγνωρίζει (ή να παράγει) ακριβώς τη γλώσσα του προηγούμενου σκέλους. Σημειώστε την αρχική και τις τελικές καταστάσεις. (γ) Γράψτε μια γραμματική χωρίς συμφραζόμενα για τη γλώσσα a m b n c m, με m > 0, n > 0. S abc S asc B bb B b (δ) [Προαιρετική μελέτη για το ΤΕΑ] Σχεδιάστε αυτόματο πεπερασμένων καταστάσεων με στοίβα που να αναγνωρίζει (ή να παράγει) ακριβώς τη γλώσσα του προηγούμενου σκέλους. Σημειώστε την αρχική και τις τελικές καταστάσεις. 3. Επιβεβαιώστε ότι η πολυπλοκότητα του αλγορίθμου CKY είναι O(n 3 ), όπου n το πλήθος των λέξεων της πρότασης.
4. Εξηγήστε πώς ακριβώς είναι δυνατόν να τροποποιηθεί ο αλγόριθμος CKY, ώστε να παράγει και συντακτικά δέντρα. Δείξτε πώς θα γινόταν η παραγωγή του συντακτικού δέντρου στο παράδειγμα των διαφανειών 33 41. 5. (α) Γράψτε μια γραμματική χωρίς συμφραζόμενα για τη γλώσσα a m b n c m, m > 0, n > 0. S --> a P c P --> a P c P --> Q Q --> b b Q (β) Μετατρέψτε τη γραμματική του προηγούμενου σκέλους (αν χρειάζεται), ώστε να παραμένει γραμματική χωρίς συμφραζόμενα, αλλά να έχει ως αρχικό σύμβολο το S και να περιλαμβάνει πλέον μόνο (i) τους τρεις «κανόνες λεξικού» Α α, B b και C c, καθώς και (ii) κανόνες χωρίς τερματικά σύμβολα στα δεξιά μέρη τους και χωρίς A, B, C (κατηγορίες λέξεων) στα αριστερά μέρη. S --> A P C P --> A P C P --> Q Q --> B B Q A --> a B --> b C --> c (γ) [Προαιρετική μελέτη] Δίνουμε στον αλγόριθμο Earley τη γραμματική του προηγούμενου σκέλους και την είσοδο «abc». Σχεδιάστε τα περιεχόμενα του χάρτη στο τέλος της εκτέλεσης του αλγορίθμου. 6. (α) [Προαιρετική μελέτη] Δίνεται στον αλγόριθμο Earley η ακόλουθη γραμματική χωρίς συμφραζόμενα (με αρχικό σύμβολο S) και η ακολουθία λέξεων εισόδου «ο σκύλος κυνήγησε τη γάτα». Σχεδιάστε το χάρτη που θα προκύψει στο τέλος της εκτέλεσης του αλγορίθμου. S NP VP NP Det N VP V NP Det ο η το τη N σκύλος γάτα V κυνήγησε δάγκωσε
(β) Γράψτε την παραπάνω γραμματική σε μορφή DCG, προσθέτοντας επίσης έλεγχο συμφωνίας γένους, ώστε π.χ. να μην επιτρέπονται προτάσεις όπως «η σκύλος κυνήγησε το γάτα». s --> np, vp. np --> det(gender), n(gender). vp --> v, np. det(masc) --> [ο]. det(fem) --> [η]. det(masc) --> [το]. det(fem) --> [τη]. n(masc) --> [σκύλος]. n(masc) --> [σκύλο]. n(fem) --> [γάτα]. v --> [κυνήγησε]. v --> [δάγκωσε]. 7. [Προαιρετική μελέτη] (α) Δίνεται στον αλγόριθμο Earley η ακόλουθη γραμματική χωρίς συμφραζόμενα (με αρχικό σύμβολο S) και η ακολουθία λέξεων εισόδου «ο οδηγός είδε τη γιατρό». Σχεδιάστε το χάρτη που θα προκύψει στο τέλος της εκτέλεσης του αλγορίθμου. S NP VP NP Det N VP V NP Det ο η το τη N οδηγός γιατρό V είδε
(β) [Προαιρετική μελέτη] Εξηγήστε ποιες επιπλέον πληροφορίες πρέπει να αποθηκεύονται στο χάρτη κατά την εκτέλεση του αλγορίθμου Earley, ώστε μετά τον τερματισμό του αλγορίθμου να είναι δυνατή η κατασκευή του συντακτικού δέντρου από τα δεδομένα του χάρτη. Προσθέστε τις επιπλέον πληροφορίες στο χάρτη του σκέλους (α) και σχεδιάστε το συντακτικό δέντρο που προκύπτει, εξηγώντας πώς προκύπτει από τα δεδομένα του χάρτη του σκέλους (α). Σε κάθε ακμή που προστίθεται στο χάρτη δίνουμε ένα διαφορετικό αριθμόταυτότητα. Επίσης, σε κάθε ακμή, έστω α, που προκύπτει μέσω συμπλήρωσης, αποθηκεύουμε τώρα εντός παρενθέσεων και τους αριθμούς-ταυτότητες όλων των άλλων ακμών που μας βοήθησαν να προχωρήσουμε τις τελείες της ακμής α προς τα δεξιά. Στην περίπτωση του παραδείγματος του σκέλους (β), προκύπτει το δέντρο: Ο αριθμός εντός παρενθέσεων της ακμής με ετικέτα «Γ S» (βλ. χάρτη) δείχνει πως η τελεία προχώρησε δεξιά του S (δηλαδή βρέθηκε το S) με τη βοήθεια της ακμής 17, που έχει ετικέτα «S NP VP». Επομένως τα παιδιά του S στο συντακτικό δέντρο είναι NP και VP. Ομοίως οι αριθμοί εντός παρενθέσεων της ακμής 17 δείχνουν ότι τα NP και VP βρέθηκαν με τη βοήθεια των ακμών 6 και 16 αντίστοιχα, που έχουν ετικέτες «NP Det N» και «VP V NP». Επομένως τα παιδιά του NP είναι Det και N, ενώ του VP είναι V και NP. Ομοίως προκύπτει και το υπόλοιπο δέντρο. 8. Συμπληρώστε το παράδειγμα της εκτέλεσης του αλγορίθμου CKY με πιθανοτική γραμματική (διαφάνειες 68 70). 9. (α) Υλοποιήστε τον αλγόριθμο CKY (για γραμματικές σε Chomsky Normal Form, CNF) ή/και (προαιρετικά) τον αλγόριθμο Earley (για γραμματικές χωρίς συμφραζόμενα, CFG). (β) Προαιρετικά, μπορείτε να επεκτείνετε την υλοποίηση του προηγούμενου σκέλους, ώστε να
υποστηρίζει και πιθανοτικές γραμματικές (διαφάνειες 66 70) του αντίστοιχου τύπου (πιθανοτικές γραμματικές CNF ή πιθανοτικές CFG). (γ) Να επεκτείνετε την υλοποίηση του πρώτου σκέλους (προαιρετικά και του δεύτερου), ώστε να παράγει και δέντρα συντακτικών εξαρτήσεων (όπως στη διαφάνεια 19, χωρίς ετικέτες στις ακμές), θεωρώντας ότι οι κανόνες της γραμματικής ορίζουν τα κύρια παιδιά (βλ. διαφάνεια 17). Επιδείξτε τις δυνατότητες των υλοποιήσεών σας χρησιμοποιώντας γραμματικές των διαφανειών ή/και δικές σας. Οι υλοποιήσεις σας πρέπει να τυπώνουν τα αντίστοιχα συντακτικά δέντρα (σε όποια μορφή θέλετε), μαζί με τη συνολική πιθανότητα κάθε δέντρου στην (προαιρετική) περίπτωση πιθανοτικών γραμματικών. Πρέπει, επίσης, να διαβάζει τη γραμματική από αρχείο εύκολα τροποποιήσιμο με απλό επεξεργαστή κειμένου. Μπορείτε να παριστάνετε τις γραμματικές σε όποια μορφή θέλετε (π.χ. σε XML). 10. [Προαιρετική, προχωρημένη] Υλοποιήστε μια απλοποιημένη μορφή του αναλυτή συντακτικών εξαρτήσεων των Chen & Manning (διαφάνειες 79 84), που να παράγει π.χ. δέντρα εξαρτήσεων χωρίς ετικέτες, λαμβάνοντας υπόψη μόνο τις διανυσματικές παραστάσεις (embeddings) των λέξεων (όχι των POS tags, ούτε των ετικετών). Μπορείτε να χρησιμοποιήσετε ένα σύνολο δεδομένων (treebank, π.χ. για τα Αγγλικά) του Universal Dependencies Project (βλ. http://universaldependencies.org/) και προ-εκπαιδευμένες διανυσματικές παραστάσεις λέξεων (βλ. π.χ. https://nlp.stanford.edu/projects/glove/). Αξιολογήστε των αναλυτή σας υπολογίζοντας το UAS του σε δεδομένα αξιολόγησης.