Computação em Linguagem Natural

Código:
17935
Ano:
1
Semestre:
S2
Créditos ECTS:
6
Carga Horária:
PL(30H)/T(30H)
Área Científica:
Informática
Objectivos de Aprendizagem:
Esta unidade curricular (UC) explora os elementos de estado da arte no Processamento de Linguagem Natural (PLN). O objetivo principal é capacitar os estudantes para a aplicação destas tecnologias na resolução de problemas complexos de ciência e engenharia. Os alunos deverão adquirir competências para criar sistemas que incorporam e alavancam modelos de linguagem de larga escala (LLMs). A aprendizagem progride desde os fundamentos clássicos de PLN até ao estudo de arquiteturas modernas e de modelos de larga escala. No final, os estudantes deverão ser capazes de projetar sistemas de recuperação aumentada (RAG), orquestrar recursos por meio de frameworks de referência e desenvolver agentes autónomos baseados em linguagem natural para contextos e problemas específicos.
Conteúdos programáticos:
1. Introduction and Fundamentals
1.1. Natural Language Processing (NLP).
1.2. Classical NLP models and approaches.
1.3. Classical resources for Natural Language (NL) manipulation.
2. Vector Semantics of NL
2.1. Sparse (TF-IDF and BoW) and dense (Word2Vec) vectors in NL.
2.2. Dense and contextualized vectors (e.g., BERT).
2.3. Document and lexical semantics.
3. Information Manipulation and Processing with NL
3.1. Large Language Model (LLM).
3.2. Training, post-training, and fine-tuning of LLMs.
3.3. Processing supported by language and knowledge.
3.4. LLMs in the cloud, locally, or better training?
4. NL Resource Orchestration Environments
4.1. Prompt engineering and chaining.
4.2. NL-based autonomous agent systems.
4.3. Frameworks for agent design and orchestration.
4.4. Agent design patterns.
5. Conversational Interaction Systems
5.1. Phonetic recognition and synthesis.
5.2. Modes, effectiveness, and emotions in conversation.
Metodologias de Ensino e Critérios de Avaliação:
A avaliação por frequência consiste em um trabalho distribuído ao longo do semestre, com a realização de duas provas escritas (F1 e F2) e de um trabalho final (TF).

CF = 0.3*F1 + 0.3*F2 + 0.4*TF

A obtenção de CF = 9.50 implica aprovação por frequência, e CF < 6.00 implica reprovação na categoria “Não Admitido”.
A classificação em qualquer exame CE será calculada com base na prova escrita do exame PX e no trabalho final, nas seguintes proporções:

CE = 0.6*PX + 0.4*TF
Bibliografia principal:
1. Jurafsky, D. & Martin, J. (2026). Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition with Language Models, 3rd edition. Online manuscript.
2. Bouchard, L. F., & Peters, L. (2024). Building LLMs for production: enhancing LLM abilities and reliability with prompting, fine-tuning, and RAG. Towards AI
3. Gullí, A. (2025). Agentic design patterns: a hands-on guide to building intelligent systems. Springer Nature.
4. Oshin, M., & Campos, N. (2025). Learning LangChain. " O'Reilly Media, Inc."
5. Iusztin, M. L. P. (2024). LLM Engineer's Handbook. Packt Publishing.
6. Tunstall, L., Von Werra, L., & Wolf, T. (2022). Natural language processing with transformers. O'Reilly Media.
Língua:
Português
Esta informação promove os seguintes Objetivos de Desenvolvimento Sustentável da ONU:
Garantir o acesso à educação inclusiva, de qualidade e equitativa, e promover oportunidades de aprendizagem ao longo da vida para todos