SM/0164/EN - ARTIFICIAL INTELLIGENCE: NATURAL LANGUAGE PROCESSING AND UNDERSTANDING
Academic Year 2019/2020
Free text for the University
MAURIZIO ATZORI (Tit.)
- Teaching style
- Lingua Insegnamento
|[60/73] INFORMATICS||[73/00 - Ord. 2017] PERCORSO COMUNE||6||48|
The AI: Natural Language Processing and Understanding course introduces a field of Artificial Intelligence which deals with the automatic processing and understanding of natural language. The course is taught in English. The student will understand the basics of AI, including both rule-based and machine-learning approaches, and theoretical and practical fundamentals of how to process natural language automatically at the different levels of morphology, syntax, semantics, discourse and dialogue.
Both supervised and unsupervised approaches over structured and unstructured knowledge will be addressed.
Machine translation, Knowledge Graphs/Semantic Web and other applications will also be introduced.
1) knowledge and understanding
The student will learn the technical terminology used in AI and NLP, including the concepts, evaluation metrics, algorithms and understand the behaviour of the algorithms.
2) applying knowledge and understanding
The student will be able to reimplement algorithms or design a new NLP tool, and measure the performance of algorithms and tools according to scientific evaluation criteria.
3) making judgements
The student will be able to discern among different approaches and choose a solution over another for a given NLP problem based on her own autonomous judgement and deductions.
4) communication skills
The student will be able to master the technical terminology and also describe a problem and a feasible approach that can be used to solve it.
5) learning skills
The student will be able to autonomously learn a new NLP algorithm from a research paper or learn new instruments and concepts to autonomously solve an unseen NLP problem.
Elements of Mathematical analysis
Linear algebra (vectors and matrices)
Fundamentals of algorithms and data structures
Basics of Probability
Good programming skills in a programming language such as Java or Python
Part I: Foundations
Supervised and Unsupervised methods
Rule based and probabilistic approaches to AI
Natural Language Processing - Problems and perspectives
The evaluation of NLP algorithms
Introduction to Machine Learning and Deep Learning
The Unreasonable Effectiveness of Data
Concordances, collocations and measure of words association
Methods for Text Retrieval
Part II: Natural Language Processing
Tokenisation and Sentence splitting
Lexical semantics: WordNet and FrameNet
Word Sense Disambiguation
Word-Space models and word2vec
Sequence to Sequence Learning
Named entity recognition
Part II: Natural Language Understanding
Knowledge Graphs and Semantic Web
Knowledge Graph extraction from text
Linguistic concepts: Hyponymy and hypernymy
Taxonomy Learning/Hypernym Discovery
Question answering and Knowledge Base Question Answering
AA 2019/2020 will be the first year of the course, so the provided list and order of topics is temptative
Theoretical lessons, flipped classroom with multimedia teaching material on the elearning platform (moodle) and homeworks.
Verification of learning
- written test to evaluate knowledge and understanding and their applications (20% of the final mark)
- a seminar or a project (80% of the final mark) to evaluate learning skills, with oral questions to evaluate ability to make judgments and communication skills.
The seminar will be about a new NLP scientific paper.
The project may be the implementation and evaluation with existing benchmarks of a new algorithm on an standard NLP task.
The written test will be evaluated up to 30/30 based on the number of correct answers/exercises.
The seminar and the project will be ranked based on the communication proficency, terminology and the technical depth reached in the presentation and/or development.
S. Bird, E. Klein, E. Loper. Natural Language Processing with Python on http://www.nltk.org/book/
Jacob Eisenstein. Natural Language Processing on https://github.com/jacobeisenstein/gt-nlp-class/blob/master/notes/eisenstein-nlp-notes.pdf
Other teaching materials: slides, videos, scientific papers and links available on the elearning platform (moodle)