Consulta de Guies Docents



Curs Acadèmic: 2022/23

3377 - Grau en Enginyeria en Informàtica

25432 - Introducció a les Tècniques de Processament de Llenguatge Natural per a Aplicacions Quotidianes


Informació de la Guia Docent

Curs acadèmic:
2022/23
Centre acadèmic:
337 - Escola d'Enginyeria
Estudi:
3377 - Grau en Enginyeria en Informàtica
Assignatura:
25432 - Introducció a les Tècniques de Processament de Llenguatge Natural per a Aplicacions Quotidianes
Àmbit:
---
Crèdits:
5.0
Curs:
4 i 3
Idiomes de docència:
Teoria: Grup 1: Anglès
Pràctiques: Grup 101: Anglès
Seminari: Grup 101: Anglès
Professorat:
Leo Wanner
Periode d'Impartició:
Primer trimestre
Horari:

Presentació

Les tècniques de processament del llenguatge natural (PLN) estan omnipresents en moltes aplicacions que utilitzem habitualment a la nostra rutina diària i que van des de simples correctors ortogràfics fins a assistents personals com Alexa, Siri, Google Now o Cortana. L’objectiu del curs és doble: (i) proporcionar una visió general i l’estat de la qüestió de les tècniques individuals que s’utilitzen en aplicacions comunes seleccionades, incloent-hi, per exemple, el resum automàtic de text, l’anàlisi de sentiments, la classificació de discursos d’odi, la generació automàtica d’informes o l’assistència personal abans esmentada; i (ii) ensenyar les habilitats necessàries per dissenyar i construir prototips d’aplicacions basades en PNL utilitzant mòduls comercials àmpliament disponibles avui dia com a SW de codi obert.

Les activitats del curs són de tres tipus diferents:

  • Conferències en què s’introdueix el rerefons teòric de les nocions i tècniques fonamentals del PNL i se’n demostra l’ús a partir d’aplicacions d’última generació.
  • Tasques de laboratori, en què els estudiants treballen en col·laboració en petits grups en experiments amb tècniques d’ús corrent i posen en pràctica les seves solucions.

Seminaris, en què els estudiants presenten i discuteixen una solució de PNL descrita en una publicació científica de la seva elecció.

Competències associades

El curs contribueix a les habilitats i als coneixements bàsics adquirits durant els estudis de grau:

  • La capacitat de recopilar i interpretar dades rellevants en l’àmbit de les ciències de la computació i la intel·ligència artificial en general i del processament del llenguatge natural en particular per poder valorar i comentar temes rellevants des del punt de vista científic, ètic i social.
  • La capacitat de comunicar informació, idees, problemes i solucions en l’àmbit del processament del llenguatge natural tant al públic en general com als estudiosos del PNL. A més, el curs contribueix a les competències transversals relacionades amb:

CE1. Resoldre els problemes matemàtics que es puguin plantejar en l’enginyeria i aplicar els coneixements sobre: àlgebra lineal; càlcul diferencial i integral; mètodes numèrics, algorismes numèrics, estadística i optimització.

CE8. Dominar els conceptes de programació de dades i estructures de dades, incloent-hi els principis de disseny segur i programació defensiva, verificació de programes i detecció derrors.

CE10. Reconéixer els procediments algorísmics bàsics i aplicar-los per a la resolució de problemes computacionals, analitzant la idoneïtat i complexitat de la solució.

CE11. Resoldre problemes computacionals complexos utilitzant els principis i les tècniques dels sistemes intel·ligents.

Resultats de l'aprenentatge

S’espera que els estudiants obtinguin coneixements sobre les tècniques de PNL més avançades i adquireixin les habilitats necessàries tant per integrar mòduls disponibles públicament en aplicacions com per desenvolupar pel seu compte aplicacions senzilles que utilitzin les tècniques més avançades. En particular:

RA.CE1.5 Utilitzar el coneixement de l’estadística per resoldre problemes que es puguin plantejar en l’enginyeria.

RA.CE8.3 Dissenyar i utilitzar estructures de dades avançades i els algorismes més adequats per resoldre un problema.

RA.CE 10.3 Aplicar tècniques bàsiques d’intel·ligència artificial.

RA.CE 11.2 Resoldre problemes complexos mitjançant tècniques daprenentatge automàtic.

RA.CE 11.3 Aplicar tècniques avançades de computació intel·ligent per al disseny i el desenvolupament d’aplicacions intel·ligents.

Objectius de Desenvolupament Sostenible

Les aplicacions de processament del llenguatge natural contribueixen a l’assoliment de la majoria dels 17 Objectius de Desenvolupament Sostenible de les Nacions Unides (entre ells, l’Objectiu 1 – No a la pobresa; l’Objectiu 3 – Garantir una vida sana i promoure el benestar per a tothom en totes les edats;  l’Objectiu 4 – Educació de qualitat, etc.).

Prerequisits

Els prerequisits bàsics per assistir amb èxit al curs inclouen coneixements de programació, principis bàsics d’intel·ligència artificial i coneixements bàsics de lògica. També és molt desitjable un coneixement més gran de les tècniques d’aprenentatge automàtic clàssiques i profundes (basades en xarxes neuronals).

Continguts

Les classes teòriques del curs s’agrupen en quatre grans blocs temàtics (que no s’imparteixen necessàriament en aquest ordre):

  1. Introducció
  2. Representacions i mètriques en PNL:
  • Com es representen les paraules, les frases i els textos en el PNL? Es posarà especial èmfasi en les modernes tècniques d’incrustació profunda.
  • Quines són les mètriques per mesurar-ne la distribució, correlació, similitud, etc., i així avaluar-ne la rellevància, derivar-ne l’estructura o semàntica?
  1. Instruments per a l’aplicació de les tècniques de PNL:
    • Models clàssics d’aprenentatge automàtic
    • Models de xarxes neuronals profundes

  2. Aplicacions que es basen en els blocs temàtics 2 i 3, incloent-hi, per exemple (les aplicacions estudiades poden variar, depenent de la preferència del públic):
    • Anàlisi de textos
    • Resum del text
    • Anàlisi de sentiments / mineria d’opinió
    • Perfil de l’autor / identificació de l’autor
    • Classificació de la incitació a l’odi
    • Gestió del diàleg en les aplicacions d’assistència personal

Metodologia docent

La metodologia del curs preveu la immersió de l’alumne en el PNL durant les classes teòriques, les sessions pràctiques de laboratori i els seminaris. A les classes teòriques l’alumne coneixerà els fonaments teòrics (i, en la mesura necessària, matemàtics) d’algunes tècniques de PNL seleccionades i el seu ús en aplicacions. Com a il·lustració, també s’estudiaran algunes aplicacions conegudes. Al laboratori pràctic l’estudiant implementarà algunes tècniques restringides seleccionades i aprendrà a utilitzar el codi de les implementacions de codi obert com a mòduls independents i/o com a mòduls integrats en aplicacions més complexes. Als seminaris cada alumne llegirà un article científic d’avantguarda sobre un camp del PNL de la seva elecció, ho resumirà i en farà una presentació davant de la classe.

Avaluació

L’avaluació consta de tres parts:

  • un examen, que pot ser escrit o oral i que avalua la comprensió per part de l’alumne de les nocions teòriques i les tècniques de PNL presentades durant les classes teòriques;
  • avaluació del treball realitzat per l’alumne en el marc de les sessions de laboratori;
  • avaluació de la presentació del seminari i participació activa en els debats del seminari.

La nota final es pondera de la manera següent: 40% examen + 40% laboratori + 20% seminari. L’estudiant ha d’aprovar l’examen, el laboratori i el seminari (els dos darrers es compten junts) per aprovar el curs. L'examen de recuperació posterior durant el curs acadèmic és només de la part teòrica del curs.

Bibliografia i recursos d'informació

La bibliografia sobre cada tema es proporcionarà a la classe.

També s’anima els estudiants a consultar:

Y. Goldberg (2017). Neural Network Methods for Natural Language Processing . Morgan & Claypool Publishers. La versió electrònica del llibre es pujarà a l’Aula Global del curs.


Academic Year: 2022/23

3377 - Bachelor's Degree in Computer Engineering

25432 - Introduction to Natural Language Processing Techniques for Everyday Applications


Teaching Guide Information

Academic Course:
2022/23
Academic Center:
337 - Engineering School
Study:
3377 - Bachelor's Degree in Computer Engineering
Subject:
25432 - Introduction to Natural Language Processing Techniques for Everyday Applications
Ambit:
---
Credits:
5.0
Course:
3 and 4
Teaching languages:
Theory: Group 1: English
Practice: Group 101: English
Seminar: Group 101: English
Teachers:
Leo Wanner
Teaching Period:
First quarter
Schedule:

Presentation

Natural Language Processing (NLP) techniques are omnipresent in many applications that we regularly use in our daily routine and that range from simple spellcheckers to personal assistants such as Alexa, Siri, Google Now, or Cortana. The objective of the course is twofold: (i) to provide an overview and the state-of-the-art of the individual techniques that are used in selected common applications, including, e.g., automatic text summarization, sentiment analysis, hate speech classification, automatic report generation, or the above mentioned personal assistance; and (ii) to teach skills necessary to design and build prototypical NLP-based applications using off-the-shelf modules widely available nowadays as open source SW.

The activities of the course are of three different types:

  • Lectures in which the theoretical background of fundamental notions and techniques in NLP are introduced and their use is demonstrated drawing upon state-of-the-art applications;
  •  Laboratory assignments, in which students work collaboratively in small groups  on experiments with off-the-shelf techniques and implement their own solutions;

Seminars, in which students present and discuss an NLP solution described in a scientific publication of their choice.

Associated skills

The course contributes to the basic skills and expertise acquired during the undergraduate studies:

  • The capacity to collect and interpret relevant data in the area of Computer Science and Artificial Intelligence in general and Natural Language Processing in particular in order to be able to assess and comment on relevant topics from the scientific, ethical and social points of view.

The capacity to communicate information, ideas, problems and solutions in the area of Natural Language Processing to general public and NLP scholars alike.  Furthermore, the course contributes to transversal skills related to

CE1. Solving the mathematical problems which can be set out in the arise in engineering and apply the knowledge on: linear algebra; differential and integral calculus; numerical methods, numerical algorithms, statistics, and optimization.

CE8. Mastering the concepts of data programming and programming and data structures, including principles of secure design and defensive programming, program verification and error detection.

CE10. Recognizing basic algorithmic procedures and applying them for the resolution of computational problems, analyzing the solution’s suitability and complexity.

CE11. Solving complex computational problems using the principles and techniques of intelligent systems.

Learning outcomes

It is expected that the students will obtain knowledge about state-of-the-art NLP techniques and acquire the skills to both integrate publicly available off-the-shelf modules into applications and develop on their own simple applications that use state-of-the-art techniques. In particular:

RA.CE1.5 Using knowledge of statistics to solve problems which can be set out in the in engineering.

RA.CE8.3 Designing and using advanced data structures and the most proper suitable algorithms for solving a problem.

RA.CE10.3 Applying basic techniques of artificial intelligence.

RA.CE11.2 Solving complex problems using machine learning techniques.

RA.CE11.3 Applying advanced intelligent computation techniques for the design and development of intelligent applications.

Sustainable Development Goals

Natural Language Processing applications contribute to the achievement of most of the 17 UN Sustainable Development Goals (including, e.g., Goal 1 – No Poverty, Goal 3 – Ensure Healthy Lives and Promote Well-Being for All at all Ages, Goal 4 – Quality Education, etc.).

Prerequisites

The basic prerequisites for a successful attendance of the course include programming skills, basic principles of Artificial Intelligence, and basic knowledge of logics. Highly desirable is also a closer acquaintance with classical and deep (neural network based) machine learning techniques.

Contents

The theoretical lectures of the course are grouped into four main thematic blocks (which are not necessarily taught in this order):

  1. Introduction
  2. Representations and metrics in NLP:
  • How do we represent words, sentences and texts in NLP? Particular emphasis will be put on modern deep embedding techniques.
  • What are the metrics to measure their distribution, correlation, similarity, etc. and thus assess their relevance, derive their structure or semantics?
  1. Instruments for the implementation of NLP techniques
    • Classical Machine Learning models
    • Deep Neural Network models
  2. Applications that build upon the thematic blocks 2 and 3, including, e.g. (the studied applications may vary, depending on the preference of the audience)
    • Text analysis
    • Text summarization
    • Sentiment analysis / opinion mining
    • Author profiling /author identification
    • Hate speech classification
    • Dialogue management in personal assistant applications

Teaching Methods

The methodology of the course foresees the immersion of the student into NLP during theoretical lessons, practical lab sessions and seminars. In the theoretical lessons, the student will learn about the theoretical (and, to the extent needed, mathematical) background of some selected NLP techniques and their use in applications. For illustration, some well-known applications will be also studied. In the practical lab, the student will implement some selected restricted techniques and learn how to use the code of open source implementations as stand-alone modules and/or as modules integrated into more complex applications.  In seminars, each student will read a state-of-the-art scientific article on an NLP field of their choice summarize it and make a presentation in front of the class.

Evaluation

The evaluation consists of three parts:

  • an exam, which can be either written or oral and which assesses the understanding of the student of the theoretical notions and NLP techniques presented during the theory classes;
  • assessment of the work carried out by the student in the context of the lab sessions;
  • assessment of the seminar presentation and active participation in the seminar discussions.

The final grade is weighted as follows: 40% exam + 40% lab + 20% seminar. The student must pass the exam, the lab and the seminar (the last two are counted together) in order to pass the course. The make-up exam later on during the academic year is on the theoretical part of the course only. 

Bibliography and information resources

Bibliography on each topic will be provided in the class. 

The students are also encouraged to consult

Y. Goldberg (2017). Neural Network Methods for Natural Language Processing. Morgan & Claypool Publishers. The e-version of the book will be uploaded to Aula Global of the course.


Curso Académico: 2022/23

3377 - Grado en Ingeniería en Informática

25432 - Introducción a las Técnicas de Procesamiento de Lenguaje Natural para Aplicaciones Cotidianas


Información de la Guía Docente

Curso Académico:
2022/23
Centro académico:
337 - Escuela de Ingeniería
Estudio:
3377 - Grado en Ingeniería en Informática
Asignatura:
25432 - Introducción a las Técnicas de Procesamiento de Lenguaje Natural para Aplicaciones Cotidianas
Ámbito:
---
Créditos:
5.0
Curso:
4 y 3
Idiomas de docencia:
Teoría: Grupo 1: Inglés
Prácticas: Grupo 101: Inglés
Seminario: Grupo 101: Inglés
Profesorado:
Leo Wanner
Periodo de Impartición:
Primer trimestre
Horario:

Presentación

Las técnicas de procesamiento del lenguaje natural (PLN) están omnipresentes en muchas aplicaciones que utilizamos habitualmente en nuestra rutina diaria y que van desde simples correctores ortográficos hasta asistentes personales como Alexa, Siri, Google Now o Cortana. El objetivo del curso es doble: (i) proporcionar una visión general y el estado de la cuestión de las técnicas individuales que se utilizan en aplicaciones comunes seleccionadas, incluyendo, por ejemplo, el resumen automático de texto, el análisis de sentimientos, la clasificación de discursos de odio, la generación automática de informes, o la asistencia personal antes mencionada; y (ii) enseñar las habilidades necesarias para diseñar y construir prototipos de aplicaciones basadas en PNL utilizando módulos comerciales ampliamente disponibles hoy en día como SW de código abierto.

Las actividades del curso son de tres tipos diferentes:

  • Conferencias en las que se introduce el trasfondo teórico de las nociones y técnicas fundamentales del PNL y se demuestra su uso a partir de aplicaciones de última generación.
  • Tareas de laboratorio, en las que los estudiantes trabajan en colaboración en pequeños grupos en experimentos con técnicas de uso corriente y ponen en práctica sus propias soluciones.

Seminarios, en los que los estudiantes presentan y discuten una solución de PNL descrita en una publicación científica de su elección.

Competencias asociadas

El curso contribuye a las habilidades y conocimientos básicos adquiridos durante los estudios de grado:

  • La capacidad de recopilar e interpretar datos relevantes en el ámbito de las ciencias de la computación y la inteligencia artificial en general y del procesamiento del lenguaje natural en particular para poder valorar y comentar temas relevantes desde el punto de vista científico, ético y social.
  • La capacidad de comunicar información, ideas, problemas y soluciones en el ámbito del procesamiento del lenguaje natural tanto al público en general como a los estudiosos del PNL.  Además, el curso contribuye a las competencias transversales relacionadas con:

CE1. Resolver los problemas matemáticos que puedan plantearse en la ingeniería y aplicar los conocimientos sobre: álgebra lineal; cálculo diferencial e integral; métodos numéricos, algoritmos numéricos, estadística y optimización.

CE8. Dominar los conceptos de programación de datos y estructuras de datos, incluyendo los principios de diseño seguro y programación defensiva, verificación de programas y detección de errores.

CE10. Reconocer los procedimientos algorítmicos básicos y aplicarlos para la resolución de problemas computacionales, analizando la idoneidad y complejidad de la solución.

CE11. Resolver problemas computacionales complejos utilizando los principios y técnicas de los sistemas inteligentes.

Resultados del aprendizaje

Se espera que los estudiantes obtengan conocimientos sobre las técnicas de PNL más avanzadas y adquieran las habilidades necesarias tanto para integrar módulos disponibles públicamente en aplicaciones como para desarrollar por su cuenta aplicaciones sencillas que utilicen las técnicas más avanzadas. En particular:

RA.CE1.5 Utilizar el conocimiento de la estadística para resolver problemas que se puedan plantear en la ingeniería.

RA.CE8.3 Diseñar y utilizar estructuras de datos avanzadas y los algoritmos más adecuados para la resolución de un problema.

RA.CE10.3 Aplicar técnicas básicas de inteligencia artificial.

RA.CE11.2 Resolver problemas complejos mediante técnicas de aprendizaje automático.

RA.CE11.3 Aplicar técnicas avanzadas de computación inteligente para el diseño y desarrollo de aplicaciones inteligentes.

Objetivos de Desarrollo Sostenible

Las aplicaciones de procesamiento del lenguaje natural contribuyen a la consecución de la mayoría de los 17 Objetivos de Desarrollo Sostenible de las Naciones Unidas (entre ellos, el Objetivo 1 - No a la pobreza; el Objetivo 3 - Garantizar una vida sana y promover el bienestar para todos en todas las edades; el Objetivo 4 - Educación de calidad, etc.).

Prerrequisitos

Los prerrequisitos básicos para asistir con éxito al curso incluyen conocimientos de programación, principios básicos de inteligencia artificial y conocimientos básicos de lógica. También es muy deseable un mayor conocimiento de las técnicas de aprendizaje automático clásicas y profundas (basadas en redes neuronales).

Contenidos

Las clases teóricas del curso se agrupan en cuatro grandes bloques temáticos (que no se imparten necesariamente en este orden):

  1. Introducción
  2. Representaciones y métricas en PNL:
  • ¿Cómo se representan las palabras, las frases y los textos en el PNL? Se hará especial hincapié en las modernas técnicas de incrustación profunda.
  • ¿Cuáles son las métricas para medir su distribución, correlación, similitud, etc., y así evaluar su relevancia, derivar su estructura o semántica?
  1. Instrumentos para la aplicación de las técnicas de PNL:
    • Modelos clásicos de aprendizaje automático
    • Modelos de redes neuronales profundas

  2. Aplicaciones que se basan en los bloques temáticos 2 y 3, incluyendo, por ejemplo (las aplicaciones estudiadas pueden variar, dependiendo de la preferencia del público):
    • Análisis de textos
    • Resumen del texto
    • Análisis de sentimientos / minería de opinión
    • Perfil del autor / identificación del autor
    • Clasificación de la incitación al odio
    • Gestión del diálogo en las aplicaciones de asistencia personal

Metodología docente

La metodología del curso prevé la inmersión del alumno en el PNL durante las clases teóricas, las sesiones prácticas de laboratorio y los seminarios. En las clases teóricas el alumno conocerá los fundamentos teóricos (y, en la medida necesaria, matemáticos) de algunas técnicas de PNL seleccionadas y su uso en aplicaciones. A modo de ilustración, también se estudiarán algunas aplicaciones conocidas. En el laboratorio práctico el estudiante implementará algunas técnicas restringidas seleccionadas y aprenderá a utilizar el código de las implementaciones de código abierto como módulos independientes y/o como módulos integrados en aplicaciones más complejas. En los seminarios cada alumno leerá un artículo científico de vanguardia sobre un campo del PNL de su elección, lo resumirá y hará una presentación ante la clase.

Evaluación

La evaluación consta de tres partes:

  • un examen, que puede ser escrito u oral y que evalúa la comprensión por parte del alumno de las nociones teóricas y las técnicas de PNL presentadas durante las clases teóricas;
  • evaluación del trabajo realizado por el alumno en el marco de las sesiones de laboratorio;
  • evaluación de la presentación del seminario y participación activa en los debates del seminario.

La nota final se pondera de la siguiente manera: 40% examen + 40% laboratorio + 20% seminario. El estudiante debe aprobar el examen, el laboratorio y el seminario (los dos últimos se cuentan juntos) para aprobar el curso. El examen de recuperación posterior durante el año académico es solo sobre la parte teórica del curso.

Bibliografía y recursos de información

La bibliografía sobre cada tema se proporcionará en la clase.

También se anima a los estudiantes a consultar:

Y. Goldberg (2017). Neural Network Methods for Natural Language Processing. Morgan & Claypool Publishers. La versión electrónica del libro se subirá al Aula Global del curso.