Departamento de Informática (UM)

Página de Unidade Curricular 🇬🇧

DesignaçãoCódigoCursoRegimeRegente

Processamento de Linguagem para Ciência de Dados

15978 [L305O4]

Licenciatura em Ciência de Dados [CDADOS]

S1

José João Antunes Guimarães Dias Almeida

Objetivos

O conteúdo programático desta UC foi pensado de forma a fornecer os conceitos básicos e as mais importantes estratégias atuais para a especificação (baseada em Gramáticas) e reconhecimento de linguagens formais, que capacitem os alunos para o desenho rigoroso de Linguagens de Domínio Específico (DSL) e para o desenvolvimento dos respectivos processadores. De igual forma, serão ensinados os conceitos e métodos atuais essenciais para que os alunos possam anotar corretamente documentos em XML/YAML, ou mesmo JSON, e construir processadores para extrair informação de documentos anotados. Por fim, o programa inclui também os conhecimentos básicos em processamento de língua natural e os métodos e ferramentas mais em voga nessa área para capacitar os alunos a criarem extratores de conhecimento a partir de documentos escritos em Português ou Inglês.

Programa

Introdução ao Processamento de Linguagens:
- A noção de Linguagem e de Gramática;
- Arquitetura de um processador de linguagens: análise léxica, análise sintática e análise semântica;
- Linguagens Regulares e Análise Léxica.
Especificação de linguagens regulares com expressões regulares:
- Ferramenta FLEX ou semelhantes.
Análise Sintática:
- Linguagens e Gramáticas Independentes de Contexto;
- Utilização da ferramenta YACC ou semelhantes;
- Processamento de XML;
- Processamento de Língua Natural.

Bibliografia

Pedro Reis Santos & Thibault Langlois, "Compiladores – Da Teoria à Prática", FCA, 2014.
Dick Grune & Kees van Reeuwijk & Henri E. Bal & Ceriel J.H. Jacobs & Koen Langendoen, "Modern Compiler Design", 2nd. edition, Springer, 2012.
Keith D. Cooper & Linda Torczon, "Engineering a Compiler", 2nd. edition, Elsevier/Morgan-Kaufmann, 2011.
A. Aho & M. Lam & R. Sethi & J. Ullman, "Compiler Principles, Techniques and Tools", 2.nd edition, Addison-Wesley, 2007.
R. G. Crespo, "Processadores de Linguagens: da concepção à implementação", IST-Press, 1998;
William Waite & Carter, "An Introduction to Compiler Construction", HarperCollin College Publishers, 1993.

Resultados da aprendizagem

Competências Genéricas a adquirir:
- Utilizar ferramentas genéricas de informática em ambiente Linux e de elaboração de documentos.
Competências específicas de Processamento de Linguagens a desenvolver:
- Especificar linguagens de domínio específico através de gramáticas e/ou expressões regulares;
- Desenvolver processadores para essas linguagens;
- Transformar e limpar formato textual num outro formato;
- Processar formatos documentais estruturados como XML, JSON, YAML;
- Processar textos em língua natural.

Método de avaliação

A classificação final é dada na forma:
- 40% da classificação provém da componente prática de grupo;
- 60% da classificação provém da componente individual.

Funcionamento

Turno: T 1; Docente: José João Antunes Guimarães Dias Almeida; Dep.: DI; Horas: 30.
Turno: PL 1; Docente: José João Antunes Guimarães Dias Almeida; Dep.: DI; Horas: 30.

[ Outras UCs do Departamento ]