Está en la página 1de 6

ACTIVIDAD VI: APLICACIONES DE

GRAMATICAS Y LENGUAJES
FORMALES
Teoría de la computación

Aguirre Vázquez Daniel


219747867-D17-10/10/2021
1. Lenguajes de Programación
Las gramáticas Independientes del contexto, son las que se utilizan de la definición
de la mayoría de los lenguajes de programación.
La definición de las Gramáticas Tipo 2 como las hemos visto hasta ahora, cumplen
con su cometido original de cualquier punto de vista (interacción Hombre/Máquina)
se lo enfoque. Desde el punto de vista de un usuario de un lenguaje de
programación, necesita saber exactamente cómo se debe escribir un programa, el
formato de cada proposición, su puntuación, frases opcionales, etc. Y desde el
punto de vista del compilador (interfaz con la máquina) necesita saber el conjunto
completo de instrucciones y programas bien escritos que debe aceptar el traductor.
Ahora cuando nos centramos en forma estricta en el diseño de un compilador
para un lenguaje de programación tendremos que tener en cuenta lo siguiente:
• Hay varias etapas y fases a cumplir y cada una de estas tomará como
entrada definiciones en etapas anteriores.
• El análisis sintáctico no sólo sirve para controlar la estructura correcta
de las frases admitidas por un lenguaje de programación, sino que prepara
estructuras para usos posteriores.
• Estas estructuras servirán para el análisis semántico (si tiene sentido
además de estar escrito en forma correcta) y posterior generación de
instrucciones en el programa objeto.

2. Procesamiento de Lenguajes Naturales


Al contrario que otras áreas de la IA, la comprensión del lenguaje natural necesita
una investigación empírica del comportamiento actual humano, que se vuelve cada
vez más complejo e interesante.
• Los agentes envían señales a los demás para alcanzar cierto propósito: para
informar, para avisar, para solicitar ayuda, para compartir conocimiento, o para
prometer algo. Enviar una señal en este medio se llama un acto de habla. Por
último, todos los actos de habla son un intento de conseguir que otro agente que
crea algo o haga algo.

• El lenguaje está formado de signos convencionales que son un convenio de


significados. Muchos animales usan signos en este sentido. Los humanos parecen
ser los únicos animales que usan la gramática para producir una variedad no
limitada de mensajes estructurados.
• La comunicación implica tres pasos con el hablante: la intención de convenir una
idea, la generación mental de las palabras, y su síntesis física. El oyente entonces
tiene cuatro pasos: percepción, análisis, desambiguación, e incorporación del
significado. Todo uso del lenguaje es situado, en el sentido de que el significado de
una declaración puede depender de la situación en la cual se produce.
• La teoría del lenguaje formal y las gramáticas con estructuras de frase (y en
particular, gramáticas independientes del contexto) son herramientas útiles para
manejar algunos aspectos del lenguaje natural.
• Las oraciones en un lenguaje independiente del contexto pueden ser analizadas
gramaticalmente en un tiempo O(n3) mediante un analizador gramatical gráfico.
• Es conveniente aumentar una gramática para manejar problemas tales como el
sujeto (concordancia de verbo y caso pronominal). La gramática causal definida
(DFG) es un formalismo que permite aumentaciones. Con DFG, la interpretación
semántica y de análisis gramatical (e incluso la generación) se puede realizar
usando inferencia lógica.
• La interpretación semántica puede ser también manejada con una gramática
aumentada. Una forma casi-lógica puede ser intermediario útil entre árboles
sintácticos y la semántica.
• La ambigüedad es un problema muy importante en la comprensión del lenguaje
natural; la mayoría de las oraciones tienen varias posibles interpretaciones, pero
usualmente sólo una es apropiada. La desambiguación subyace en el conocimiento
del mundo, de la situación actual, y del uso del lenguaje.
• La mayoría del lenguaje existe en un contexto de múltiples oraciones, no en una
única. El discurso es el estudio de los textos conectados. Vimos cómo resolver las
referencias pronominales a través de oraciones y cómo las oraciones se unen en
segmentos coherentes.
• Inducción gramatical. La inducción gramatical puede aprender una gramática a
partir de ejemplos, aunque hay limitaciones en cómo de bien la gramática
generalizará.

3. Expresiones Regulares
Nos permiten evaluar si un patrón de búsqueda se encuentra en una cadena de
caracteres, de modo que mediante este tipo de expresiones regulares
obtendremos un valor lógico verdadero o falso según se encuentre el patrón
deseado. La sintaxis de este tipo de expresiones regulares es la siguiente:
valor a comparar =~ patrón de búsqueda
He aquí un ejemplo:
# imprimimos todas las líneas que contengan "html". Ej.: "htmlexe"
if ($linea =~ /html/) {
print $linea;
}
Los patrones de búsqueda pueden integrar información relativa al contexto, tal
como la búsqueda de líneas que empiecen por la cadena de caracteres, la
extracción de palabras que tengan prefijos o sufijos particulares... Estos
contextos se tienen mediante una representación particular del modelo.
Referencia de patrones.
Se utilizan para referenciar patrones en las expresiones regulares. Perl trabaja
con dos tipos de operadores de comparación:
$1,$2,...,$9. Sirven para referenciar uno de los patrones de búsqueda de la
expresión regular. El número del 1 al 9 representa el patrón al que queremos
referirnos dentro de la expresión regular. Así un ejemplo del uso de este
operador se puede observar en este código en Perl que añade el articulo 'El' a un
nombre común: (en este ejemplo se utilizará una expresión regular de sustitución
que veremos en el siguiente apartado).
$var = "coche";
$var =~ s/(coche)/El $1/; # $1 equivale a coche
print $var;
\1,\2, ...,\9. Este operador tiene la misma utilidad que el anterior se utiliza para
referenciar patrones, pero esta vez la referencia se ha de producir dentro de la
expresión regular. He aquí un ejemplo:
if ($var =~ (/^(\w)+.*\1$/) {
print $var;
}
Esta expresión regular de comparación tiene el siguiente significado: mediante la
cadena ^(\w)+ nos referimos a todos los caracteres alfanuméricos que forman
parte del principio de la cadena contenida en $var, es decir, la cadena ha de
empezar por uno o más caracteres alfanuméricos. Con la cadena .*
referenciamos un conjunto arbitrario de caracteres de longitud desconocida,
finalmente con la cadena \1 expresamos el primer patrón utilizado y con $
significamos que este patrón debe de estar al final de la cadena contendia en
$var. En definitiva la expresión regular tomará el valor verdadero, cuando la
cadena de caracteres contenida en $var tenga la misma cadena de caracteres
alfanuméricos al principio y al final. Así por ejemplo, si $var tiene una cadena de
caracteres como esta: 'hola juansdfa hola' el valor de la expresión regular será
cierto, ya que los espacios en blanco no se consideran caracteres alfanuméricos.
4. Aplicación adicional
Reconocimiento Sintáctico de Formas
Primer gran problema: ¿qué es una “Forma”?
Análisis indirecto: ”Forma”, parece ser el resultado del esfuerzo por traducir en
una sola palabra lo que los de habla inglesa denominan “Pattern” y los que de
habla alemana, llaman “Muster”.
La tarea es muy difícil: para muestra, algunos ejemplos. ¿Que letras, números,
jeroglíficos, objetos de alguna colección podrán ser “Formas” adecuadas.?
Todos los ejemplos se pueden designar correctamente con las palabras
“Patterns” o “Muster”; pero no hay una palabra única castellana que logre lo
mismo, la denominación “Forma” hay que aceptarla como mero “nombre propio”.
La elección de la palabra “Forma”, en todo caso coincide con la elección de los
franceses en el mismo tema y con iguales problemas. Ellos hablas de “Formes”.
Análisis directo: Consideremos como una unidad la designación “Reconocimiento
de Formas” y empecemos por “reconocimiento”. Lógicamente esto presupone un
“conocimiento” previo para poder (intentar) reconocer. Si, mediante un
razonamiento un tanto simplista, concluimos en que podemos (en principio)
reconocer algo que hemos conocido o, generalizando, que podemos reconocer
sólo lo que podemos conocer, resulta entonces que todo lo que podemos conocer
son “Formas”!. De este raciocinio se desprende que nuestro universo no es otra
cosa que un conjunto de “Formas”!. Nuestra intuición, por cierto se resiste a
aceptar esta conclusión: pues por lo menos pensamos en la declamación de
relaciones entre Formas. El objetivo de este análisis no era, desde luego, hacer
filosofía universal, sino ofrecer otro punto de vista aclaratorio sobre
“Reconocimiento de Formas”.
Formalmente, entonces ¿Qué se entiende por Reconocimiento de Formas? Es un
proceso algoritmico mediante el cual se establece la pertenencia de una Forma
(desconocida) a una clase previamente definida. Que el proceso sea algoritmico
garantiza que podrá ser realizado mediante circuitos lógicos, en general, por un
computador real. Es importante que la complejidad del algoritmo sea
suficientemente reducida como para permitir que el reconocimiento se efectúe en
un tiempo “adecuado”. Si la silla de ruedas de un parapléjico es controlada a
través de órdenes habladas, la palabra “pare” debe ser reconocida en una
fracción de segundo.)
Segundo problema, ubicación y relaciones del reconocimiento de Formas en el
espectro científico
En particular, la idea central, se refiere a la descomposición de una forma
compleja en un conjunto de formas simples (digamos, “fáciles de reconocer”),
tomando en consideración sus relaciones estructurales. Luego, considerar el
conjunto de formas simples como símbolos de un alfabeto formal y mediante una
Gramática generar un lenguaje cuyas palabras corresponden a una codificación
de las formas en reconocimiento. El árbol sintáctico permite la clasificación de
cada forma.
Métodos Generales para el diseño de Sistemas de Reconocimiento de Formas
• Métodos Matemáticos(estadísticos)
Procesamiento matemático de las características
Aprendizaje con consideraciones estadísticas.
• Métodos Sintácticos
- Estudio de las formas parciales y estructuras
- Clasificación sobre la base de gramáticas Formales
- Aprendizaje por intermedio de la Inferencia Gramatical.
- TreeBag, como herramienta de apoyo y otras.
• Métodos Eurísticos
Adaptación experimental de los métodos anteriores
Hipótesis de Optimización.

También podría gustarte