0.5 – Processamento de Linguagem Natural – Simbolico
0.5.1 – Gramaticas Formais
0.5.1.1 – Gramatica Livre de Contexto
0.5.1.2 – Gramatica de Clauses Definidas – DCG
o que são gramáticas formais
Gramáticas formais são conjuntos de regras que definem quais sequências de palavras são válidas em uma linguagem. Primeiramente, elas especificam como formar frases corretas a partir de categorias como substantivos e verbos. Por exemplo, uma regra simples diz: “uma frase pode ser formada por um sujeito seguido de um predicado”. Além disso, outra regra define que “o sujeito pode ser um artigo mais um substantivo”. Dessa forma, essas regras geram todas as frases possíveis da linguagem de maneira sistemática. Na computação, gramáticas formais permitem que máquinas analisem e gerem linguagem natural. Portanto, elas são a base matemática para o processamento simbólico da linguagem.
hierarquia de chomsky
Noam Chomsky propôs uma hierarquia que classifica gramáticas em quatro níveis de complexidade. As gramáticas regulares (tipo 3) são as mais simples, reconhecidas por autômatos finitos. As gramáticas livres de contexto (tipo 2) geram a maioria das estruturas sintáticas das linguagens naturais. As gramáticas sensíveis ao contexto (tipo 1) permitem dependências mais complexas entre elementos distantes. Finalmente, as gramáticas irrestritas (tipo 0) possuem o poder expressivo máximo, equivalente a máquinas de Turing. Cada nível reconhece um conjunto maior de linguagens, mas com maior custo computacional. Consequentemente, para linguagens naturais, gramáticas livres de contexto são as mais utilizadas.
gramáticas livres de contexto
Gramáticas livres de contexto são as mais utilizadas no processamento sintático de linguagens naturais. Elas consistem em regras onde um símbolo não-terminal pode ser substituído independentemente do contexto. Por exemplo: S → NP VP (frase vira sintagma nominal seguido de sintagma verbal). NP → Det N (sintagma nominal vira artigo e substantivo). VP → V NP (sintagma verbal vira verbo e sintagma nominal). Essas regras geram árvores sintáticas que representam a estrutura hierárquica das frases. Algoritmos como CYK e Earley analisam frases usando esse tipo de gramática. Dessa forma, apesar de poderosas, elas enfrentam desafios com fenômenos como ambiguidade estrutural.
exemplo prático de análise
Considere a frase “O cachorro persegue o gato” e sua análise por uma gramática livre de contexto. Primeiro, identificamos as categorias lexicais: “O” é artigo, “cachorro” é substantivo, “persegue” é verbo. A regra NP → Det N forma “O cachorro” como sintagma nominal sujeito. Outra aplicação da mesma regra forma “o gato” como sintagma nominal objeto. A regra VP → V NP forma “persegue o gato” como sintagma verbal. Finalmente, S → NP VP combina tudo em uma frase completa. Essa estrutura hierárquica revela as relações gramaticais entre os elementos. Por conseguinte, o analisador pode gerar uma árvore sintática que representa essas relações.
limitações e evoluções
Gramáticas livres de contexto enfrentam limitações significativas ao modelar linguagens naturais complexas. Fenômenos como concordância de número entre sujeito e verbo exigem dependências não locais. Ademais, ambiguidade estrutural gera múltiplas árvores sintáticas para uma mesma frase. Por exemplo, “Vi o homem com o telescópio” tem duas interpretações possíveis completamente diferentes. Para lidar com essas limitações, surgiram gramáticas mais expressivas como as de unificação. Gramáticas de estrutura sintagma baseadas em cabeça (HPSG) e gramáticas léxico-funcionais (LFG) ampliam o poder descritivo. Essas abordagens combinam estruturas de constituintes com traços e unificação, resolvendo desafios clássicos. Assim, para iniciantes, estudar gramáticas formais é entender a base matemática da linguagem computacional.