Ao estudar os Sistemas Baseados em Conhecimento, percebi que sua aplicação pode ir muito além do exemplo de diagnóstico médico apresentado na aula. Como atuo na área educacional e venho desenvolvendo a Plataforma Inteligente de Gestão, Análise e Comunicação da Avaliação Formativa do Aprendiz (AFA), adaptei a atividade para um contexto real da escola: o acompanhamento pedagógico e a tomada de decisão durante os Conselhos de Classe.
Optei por realizar essa adaptação porque acredito que a aprendizagem se torna mais significativa quando conseguimos transferir os conceitos estudados para problemas concretos de nossa área de atuação. Assim como um sistema especialista médico utiliza sintomas para chegar a um diagnóstico, um sistema especialista pedagógico pode utilizar informações sobre frequência, desempenho, comportamento, participação e relacionamento escolar para apoiar decisões pedagógicas de forma estruturada e transparente.
Na prática, a proposta é que a AFA receba informações dos estudantes por meio de planilhas, formulários e registros realizados por professores, coordenação, psicologia e famílias. Esses dados passam a compor uma base de conhecimento, que contém fatos sobre os alunos e regras institucionais definidas pela escola. A partir dessa base, um mecanismo de inferência aplica a lógica proposicional para identificar situações que demandam intervenção e recomendar ações adequadas.
Diferentemente dos modelos probabilísticos estudados anteriormente, como as Cadeias de Markov, que buscam prever o que provavelmente acontecerá, os sistemas especialistas respondem a outra pergunta:
Diante dos fatos observados, o que a escola deve fazer?
Por isso, enquanto as Cadeias de Markov são adequadas para prever risco de evasão, transferência ou não renovação de matrícula, os Sistemas Baseados em Conhecimento são especialmente úteis para apoiar Conselhos de Classe, protocolos de acompanhamento pedagógico, encaminhamentos socioemocionais e tomada de decisões institucionais.
Estrutura do Sistema Especialista
O sistema é composto por três elementos principais:
Fatos
Representam informações observadas sobre o estudante.
Exemplos:
- faltas frequentes;
- queda nas notas;
- baixa participação;
- registro de bullying;
- dificuldades de aprendizagem;
- problemas de comportamento.
Regras
Representam o conhecimento institucional da escola.
Exemplos:
SE faltas frequentes E queda nas notas
ENTÃO necessita acompanhamento pedagógico.
SE registro de bullying
ENTÃO acionar protocolo antibullying.
SE acompanhamento pedagógico E protocolo antibullying
ENTÃO reunião com família e coordenação.
Mecanismo de Inferência
Responsável por verificar quais regras podem ser aplicadas aos fatos existentes e gerar novas conclusões.
Implementação em Python
class BaseDeConhecimento:
def __init__(self):
self.fatos = []
self.regras = []
def adicionar_fato(self, fato):
if fato not in self.fatos:
self.fatos.append(fato)
def adicionar_regra(self, condicao, conclusao):
self.regras.append((condicao, conclusao))
class SistemaEspecialista:
def __init__(self, base_conhecimento):
self.base_conhecimento = base_conhecimento
self.raciocinio = []
def inferir(self):
novos_fatos = True
while novos_fatos:
novos_fatos = False
for condicao, conclusao in self.base_conhecimento.regras:
if all(
fato in self.base_conhecimento.fatos
for fato in condicao
):
if conclusao not in self.base_conhecimento.fatos:
self.base_conhecimento.fatos.append(
conclusao
)
novos_fatos = True
explicacao = (
f"Como foram identificados os fatos "
f"{condicao}, o sistema inferiu: "
f"{conclusao}"
)
self.raciocinio.append(
explicacao
)
def exibir_resultado(self):
print("Fatos e conclusões inferidas:")
for fato in self.base_conhecimento.fatos:
print("-", fato)
print("\nRaciocínio utilizado:")
for passo in self.raciocinio:
print("-", passo)
# Base de conhecimento
base = BaseDeConhecimento()
# Fatos observados sobre o aluno
base.adicionar_fato("faltas frequentes")
base.adicionar_fato("queda nas notas")
base.adicionar_fato("baixa participação")
base.adicionar_fato("registro de bullying")