Download Diapositiva 1 - César Antonio Aguilar
Document related concepts
no text concepts found
Transcript
Introducción a la lingüística computacional César Antonio Aguilar Facultad de Lenguas y Letras 15/08/2013 Cesar.Aguilar72@gmail.com Algunas aclaraciones (1) Hay algunas cuestiones que debemos aclarar. La primera tiene que ver con respecto a la selección de un nombre que no sirva de variable para identificar a un objeto: no toda expresión lingüística funciona como una variable, pues hay algunas que aluden a funciones muy específicas, p.e.: Nota: las expresiones que aparecen en esta tabla se les conoce como nombres reservados, y sirven para identificar todas las funciones que caracterizan a un lenguaje de programación. En nuestro caso, Python maneja 31 nombres reservados, los cuales sirven hacer funciones concretas. Algunas aclaraciones (2) Tener conocimiento de estas limitaciones nos ayuda a evitar problemas como errores de sintaxis o errores de semántica. Veamos algunos casos: Notas: Estos errores se deben a lo siguiente: 1. Caso uno: Nunca inicien un nombre de variable con números, siempre van con caracteres. 2. Caso dos: el uso del símbolo $ es ilegal a la hora de asignar una variable, ya que este símbolo es una expresión regular. 3. Caso tres: class es una expresión que sirve para designar funciones que operan al nivel de clases, por lo que se convierte en un nombre reservado dentro de Python. Operaciones con números (1) De acuerdo con los manuales de Python, con este lenguaje se pueden realizar diversas funciones números enteros, reales y complejos. Los primeros son aquellos que positivos o negativos que no tienen decimales (además del cero). Los segundos son aquellos que tienen decimales, por lo que en Python pueden expresarse mediante el tipo float, lo que equivale a decir que son números de punto flotante. Finalmente, los terceros son casos de números que se ocupan en operaciones muy especiales. Esta clase de números no los ocuparemos en nuestras tareas. Operaciones con números (2) De manera resumida, las operaciones que permite realizar Python son: Operaciones con cadenas (1) Particularmente en nuestro curso, lo que nos va a interesar más que nada es trabajar con cadenas, ya sean de caracteres, de palabras, de texto, etc. Así, digamos simplemente que una cadena es todo texto que vaya encerrado entre comillas, ya sean simples o dobles: Este es un ejemplo simple respecto a cómo podemos asociar cadenas al nombre de una variable. Así, cualquier proceso que apliquemos a nuestra variable, se verá reflejado en nuestra cadena. Operaciones con cadenas (2) También podemos implementar cadenas más extensas marcándolas con tres comillas seguidas (“””_texto_”””), lo que nos permite escribir textos de varias línas. Veamos: Operaciones con cadenas (3) Así vista, una cadena no es más que una secuencia de caracteres de N extensión. Si esto es así, podemos realizar algunas operaciones. Por ejemplo, podemos concatenar dos cadenas o más usando el operador +: Nota: recuerden, nuestras operaciones las aplicamos sobre las variables designadas, no sobre los objetos representados por tales variables. Podríamos hacerlo, pero digamos que las variables nos ayudan a ahorrar tiempo y esfuerzo de una manera significativa. Operaciones con cadenas (4) Una cadena está formada de caracteres, los cuales pueden contarse tanto de izquierda a derecha, como de derecha a izquierda, veamos: Nota: el recorrido que hacemos en una cadena adquiere valores positivos cuando lo hacemos de izquierda a derecha (iniciando por el cero), y negativos cuando lo hacemos de derecha a izquierda (aquí no contamos el cero). Operaciones con cadenas (5) ¿Qué podemos hacer al recorrer esta cadena? Primero, determinar qué clase de objeto tenemos, para lo cual ocupamos la instrucción type; o igual podemos pedirle al intérprete que nos cuente cuántos caracteres tiene nuestra cadena, para lo cual usamos la instrucción len. Veamos: Operaciones con cadenas (6) Ahora, para hacer el recorrido, e incluso segmentar nuestra cadena, podemos hacerlo del siguiente modo: usando corchetes [...], escribimos secuencias de números positivos (0,1,2,3,4,5... N) para hacer el recorrido hacia la derecha; o negativos (-1,-2,-3,-4,-5... -N), si vamos hacia la izquierda: Hay otras operaciones que podemos aplicar al procesamiento de cadenas, pero las veremos más adelante. Ahora, pasemos a la instalación de NLTK en sus computadoras. Instalando NLTK (1) Como lo comentamos en una de las láminas, Python es un lenguaje de programación que trabaja con librerías, las cuales son útiles para realizar alguna tarea concreta. En Python, tenemos varias librerías útiles para trabajar con expresiones regulares, análisis estadísticos, generación de grafos, etc. En nuestro curso, la librería con la que vamos a trabajar se llama NLTK (Natural Language Tool-Kit), una librería pensada precisamente para hacer tratamientos computacionales con textos. Instalando NLTK (2) Al igual que Python, NLTK es un software libre que podemos descargar en nuestra computadora desde el siguiente sitio: www.nltk.org Algunos ya lo conocer, otros quizá les resulte nuevo. En todo caso, la idea es que, a partir de estas sesiones, ustedes se hagan una mejor idea sobre lo que es esta librería, y los usos que pueden darle para sus análisis lingüísticos. Instalando NLTK (3) De nuevo, les va a aparecer una ventana con la opción de descarga. Acepten esta opción, y una vez que hayan guardado el ejecutable en su máquina, inicien el proceso de instalación dando un click. A continuación, les saldrá una ventana con la siguiente opción: Elijan la opción Install for all users. Instalando NLTK (4) Su versión de NLTK es compatible con Python 2.6, aunque al inicio del proceso les salga esta ventana: Al igual que como lo hicimos con Python, aceptemos siempre las opciones que nos presenta NLTK. Instalando NLTK (5) Una vez que han oprimido el botón Next de la ventana anterior, NLTK se instala sin ningún problema en su computadora: Cuando termine de instalarse, aparecerá el botón Finish. Al oprimirlo, terminarán el proceso, y ya estarán listos para ocupar NLTK. Instalando NLTK (5) Junto con NLTK vienen también varias librerías que vamos a requerir para realizar análisis estadísticos, generación de gráficas, árboles sintácticos, etc. En concreto: * Numpy * PyYaml Para mayores detalles, vean el sitio WEB: www.nltk.org/download Instalando NLTK (6) Ahora, hagamos una prueba para saber si NLTK se ha cargado correctamente en nuestra computadora. Usemos la siguiente instrucción: Esta instrucción nos trae un repositorio electrónico con una serie de recursos disponibles para diferentes tareas: corpus lingüísticos, gramáticas formales, conjuntos de etiquetas, etc. La ventana que tiene que aparecerles es la siguiente: Instalando NLTK (7) Algunas referencias Para aquellos que quieran aprender más sobre cómo programar en Python, existen un sinnúmero de manuales libres disponibles en línea, los cuales pueden consultar desde el sitio de Python: http://wiki.python.org/moin/BeginnersGuide/NonProgrammers En particular, uno muy bueno es: How to Think Like a Computer Scientist: http://openbookproject.net/thinkcs/python/english2e/index.html Gracias por su atención Blog del curso: http://cesaraguilar.weebly.com/curso-deprocesamiento-del-lenguaje-natural.html