Topic outline

  • General

  • Objectives

    The course targets text analytics systems and applications to respond to business problems by discovering and presenting knowledge that is otherwise locked in textual form. The objective is to learn to recognize situations in which text analytics techniques can solve information processing needs, to identify the analytic task/process that best models the business problem, to select the most appropriate resources methods and tools, to collect text data and apply such methods to them. Several applications context will be presented: information extraction, sentiment analysis (what is the nature of commentary on an issue), spam and fake posts detection, quantification problems, summarization, etc.

    1. Disciplinary background: Natural Language Processing, Information Retrieval and Machine Learning
    2. Mathematical background: Probability, Statistics and Algebra
    3. Linguistic essentials: words, lemmas, morphology, PoS, syntax
    4. Basic text processing: regular expression, tokenisation
    5. Data gathering: twitter API, scraping
    6. Basic modelling: collocations, language models
    7. Introduction to Machine Learning: theory and practical tips
    8. Libraries and tools: NLTK, Tensorflow/Keras, Pytorch
    9. Applications:
      • Classification/Clustering
      • Sentiment Analysis/Opinion Mining
      • Information Extraction/Relation Extraction
      • Entity Linking
      • Spam Detection: mail spam & phishing, blog spam, review spam

  • Schedule

    Schedule
    Day Hour Room
    Tuesday 9-11 X1, Polo Fibonacci 
    Thursday 14-16 N1, Polo Fibonacci 
  • Jupyter Notebooks

    A server is available for running Jupyter Notebooks. You can log into the server using your University credentials.

  • Lectures

    Date 
    Topic
    Material
    16/09/2019 Introduction  
    17/09/2019 Introduction to Probability  slides
    24/09/2019 Language Modeling  slides
    26/09/2019 Language Modeling  
    30/09/2019 Python Tutorial See notebooks: Introduction to Python and Introduction to Python 2.
    01/10/2019 Python Tutorial and Examples  
    03/10/2019 Building Language Models
    See notebook: Language Models
    08/10/2019 Introduction to NLTK See notebook: Introduction to NLTK
    10/10/2019 Representation of Words  slides
    15/10/2019 Word Embeddings: Word2Vec, GloVE, FastText, ELMo  See notebook: Language Models
    17/10/2019 Text Classification  slides
    22/10/2019 Classifiers  slides
    24/10/2019 Sequence Labeling  slides
    29/10/2019 Named Entity Recognition  slides
    31/10/2019 Deep Learning  slides
    Notebook: Introduction to eras
    05/11/2019 Neural Language Models slides 
    Notebook: DocumentEmbeddings.ipynb
    07/11/2019 Transformer models
     slides
    12/11/2019 Parsing  slides
    14/11/2019 Deep Learning for NLP  
    19/11/2019 Deep Learning for NLP  
    21/11/2019 Introduction to Sentiment Analysis
     slides
    26/11/2019 Lexical Resources
     slides
    Notebook: pmi-lex-IMDB.ipynb
    28/11/2019Sentiment Classification  slides
    Notebook:
    VADER.ipynb
    Classification sklearn.ipynb
    03/12/2019 Sentiment Classification  Notebook:
    Classification sklearn-feats.ipynb
    Classification - lstmNet.ipynb
    Classification - cnnNet.ipynb
    05/12/2019 Transfer Learning/Opinion Extraction  slides
    10/12/2019 Quantification  slides
    12/12/2019 Spam Detection: mail spam & phishing, web spam, review spam slides
  • Textbooks

    1. D. Jurafsky, J.H. Martin, Speech and Language Processing. 3nd edition, Prentice-Hall, 2018.
    2. S. Bird, E. Klein, E. Loper. Natural Language Processing with Python.

    Further Readings

    1. J. Eisenstein. Introduction to NLP. MIT Press, 2019.
    2. I. Goodfellow, Y. Bengio, A. Courville. Deep Learning. MIT Press, 2016.
    3. B. Liu, Sentiment Analysis and Opinion Mining. Morgan & Claypool Publishers, 2012.


  • Earlier Editions