Learning Outcomes
• Learning of the basic principles and problems in Computational Linguistics.
• Familiarizing with basic concepts and strategies of algorithmic problem solving.
• Learning of basic data structures in programming with Python.
• Connection between theory and praxis by modeling and implementing grammatical phenomena through programming.
• Capability of implementing small scale computational projects of natural language processing.
Course Content (Syllabus)
A) Basic notions of formal languages
B) Computer memory, variables, data types: string manipulation, lists and methods in python
C) Phrase Structure Grammars ( Context-free grammars)
D) Control structures (while, for and if) I
E) Phrase Structure Grammars ( Context-sensitive grammars)
F) Control structures (while, for and if) II and functions in python I
G) Functions in Python II
H) Finite State Automata and morphology I
I) Finite State Automata and morphology II
J) Data type "dict" and creation of a small scale greek grammar in python
K) Corpus Processing with Python and various custom software I
L) Corpus Processing with Python and various custom software II
M) Corpus Annotation in XML I
N) Corpus Annotation in XML II
Keywords
Formal Languages, Chomsky Hierarchy, Finite State Automata, Phrase-structure Grammars, Corpora, Python, XML
Additional bibliography for study
Jurafsky, D. & J. H. Martin. (2009). Speech and Language Processing: An Introduction to Natural Language Processing, Speech Recognition, and Computational Linguistics. 2nd edition. Prentice-Hall. Partee B., A. Ter Meulen & R. E. Wall (1990). Mathematical Methods in Linguistics. Dordrecht/Boston/London: Kluwer Academic Publishers.