UNIVERSIDAD NACIONAL DE TRUJILLO FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS ESCUELA ACADEMICO PROFESIONAL DE INFORMÁTICA DISEÑO DE UNA PROPUESTA DE SISTEMA INTELIGENTE UTILIZANDO PROCESAMIENTO DE LENGUAJE NATURAL (PLN) PARA RECONOCIMIENTO DE MENSAJES EXTORSIVOS. Autores Argomedo Pflücker Kevin Christian Cóndor Ruiz Alexander Tito Asesor Ing. Jorge Luis Gutiérrez Gutiérrez 17 de Diciembre de 2014 Trujillo, La Libertad INDICE INTRODUCCIÓN ................................................................................................................................... 1 CAPÍTULO I .......................................................................................................................................... 4 MARCO TEÓRICO ................................................................................................................................. 4 1.1. Mensajes SMS extorsivos ................................................................................................... 4 1.1.1. Definición ............................................................................................................................ 4 1.1.1.1.Mensaje SMS .......................................................................................................... 4 1.1.1.2.Extorsión ................................................................................................................. 4 1.1.2. Características ..................................................................................................................... 4 1.1.3. Arquitectura para la red SMS ............................................................................................. 6 1.2. PLN ....................................................................................................................................... 7 1.2.1. Definición ............................................................................................................................ 7 1.2.2. Problemas en PLN ............................................................................................................... 7 1.2.2.1.La variación y la ambigüedad lingüística ............................................................... 7 1.2.2.2.Detección de separación entre las palabras ........................................................ 10 1.2.2.3.Complejidad del conocimiento Lingüístico .......................................................... 10 1.2.2.4.Complejidad del conocimiento extra lingüístico ................................................. 11 1.2.2.5.Recepción imperfecta de datos ............................................................................ 12 1.2.3. Tipos de PLN ...................................................................................................................... 12 1.2.3.1.Procesamiento de Voz .......................................................................................... 12 1.2.3.2.Procesamiento de Texto ....................................................................................... 13 1.2.4. Componentes Principales ................................................................................................. 13 1.2.4.1.Análisis Morfológico ............................................................................................. 13 1.2.4.2.Análisis Sintáctico ................................................................................................. 14 1.2.4.3.Análisis Semántico ................................................................................................ 15 1.2.4.4.Análisis Pragmático .............................................................................................. 17 1.2.5. Aplicaciones....................................................................................................................... 18 1.2.5.1.Recuperación de información .............................................................................. 18 1.2.5.2.Interfaces en lenguaje natural ............................................................................. 19 1.2.5.3.Traducción Automática ........................................................................................ 21 1.2.5.4.Reconocimiento del Habla ................................................................................... 23 1.2.5.5.Generación de Lenguajes Naturales .................................................................... 24 1.2.6. Ejemplos ............................................................................................................................ 27 1.2.6.1 Traducción Informática ........................................................................................ 27 1.2.6.2 Clasificación de Textos ......................................................................................... 28 1.2.6.3 Recuperación de Información .............................................................................. 29 1.2.6.4 Entendimiento/Generación de lenguaje Natural ................................................ 30 1.2.6.5 Otros...................................................................................................................... 30 1.3. Clasificador Bayesiano Ingenuo ........................................................................................ 30 1.3.1. Definición .......................................................................................................................... 30 1.3.2. Modelo Probabilístico ....................................................................................................... 31 1.3.3. Estimación de Parámetros y modelo de eventos............................................................. 32 1.3.4. Corrección de Muestras .................................................................................................... 33 1.3.5. Construcción de un clasificador del modelo probabilístico ............................................. 33 CAPÍTULO II ....................................................................................................................................... 34 MATERIALES Y MÉTODOS.................................................................................................................. 34 2.1. Tipo de Estudio .................................................................................................................. 34 2.2. Población ........................................................................................................................... 34 2.3. Muestra ............................................................................................................................. 34 2.4. Técnica de Recolección de Datos ...................................................................................... 35 2.5. Instrumento de Recolección de Datos ............................................................................. 35 2.6. Procedimiento de Investigación ....................................................................................... 35 CAPÍTULO III ...................................................................................................................................... 36 RESULTADOS ..................................................................................................................................... 36 3.1. Descripción ........................................................................................................................ 36 3.2. Modelo Propuesto de PLN ................................................................................................ 36 3.3. Elementos del Software .................................................................................................... 37 3.3.1. Análisis léxico .................................................................................................................... 37 3.3.2. Análisis sintáctico .............................................................................................................. 37 3.3.3. Análisis semántico............................................................................................................. 37 3.3.4. Análisis estadístico ............................................................................................................ 38 REFERENCIAS BIBLIOGRÁFICAS ......................................................................................................... 41 INTRODUCCIÓN La presente investigación tiene por objetivo el diseño de un sistema inteligente para el reconocimiento de mensajes de texto extorsivos utilizando Procesamiento del Lenguaje Natural (PLN). Los datos sobre los que hemos trabajados son una muestra de mensajes de texto tanto extorsivos como no extorsivos. En la actualidad, PLN es una rama de la inteligencia artificial desarrollada en su mayoría para el idioma inglés, no existen muchos estudios que se enfoquen en el idioma español, tanto la riqueza de este idioma y su ambigüedad hacen que el tratamiento sea mucho más complejo. Este trabajo nos permite brindar un pequeño aporte al estudio de PLN enfocado al idioma español. En nuestro país, la seguridad ciudadana se ve amenazada por bandas criminales que amedrentan a las personas y “solicitan” un pago para que no se atente contra sus vidas; día a día encontramos en las noticias un nuevo caso de extorsión, de personas que ven como el fruto de su trabajo, su vida y la de sus seres queridos se ve riesgo si es que no entregan la suma de dinero que se les exige. Este proyecto se enfoca en los mensajes de texto extorsivos, es decir, analizar estos mensajes antes de que la persona afectada los reciba; de esta manera el usuario evita recibir este tipo de amenazas y extorsiones, además de tener la posibilidad de identificar al emisor de estos mensajes. Es por ello que consideramos que nuestro proyecto se justifica socialmente ya que permite evitar que una persona reciba mensajes extorsivos, ayudando a mantener su tranquilidad; además se justifica académicamente porque pondremos en práctica técnicas de procesamiento del lenguaje natural, gramáticas de libre contexto e investigación en el área de la lingüística española que es un área poco trabajada. 1 Con relación a nuestra investigación nos hemos topado con trabajos realizados como: El trabajo (F. Gelbukh, N. Galicia Haro, & A. Bolshakov, 1998) que tuvo como finalidad realizar análisis sintácticos a textos en español y además colaborar con la enseñanza del idioma al extranjero. Los patrones de manejo sintáctico son una colección completa de descripciones de todos los posibles "objetos" de una palabra específica. Del trabajo, utilizaremos la forma en que clasifica una palabra por su ambigüedad gramatical, sea esta sustantiva, adjetival, entre otras. Egresados de la escuela de Informática (Bautista & Tuesta, 2004) desarrollaron una aplicación, la cual consiste en ingresar una consulta en lenguaje natural (idioma español ) y ésta, luego de emitir avisos para que el usuario corrija las palabras mal escritas; transforma esa consulta a una sentencia SQL y devuelve el resultado de dicha consulta. Definen una gramática muy útil para el idioma español, la cual usaremos en el proyecto. En el trabajo realizado en la Universidad Nacional de Colombia (Ovalle, 2002) se consideró la tarea de la clasificación de frases del lenguaje natural, utilizando redes neuronales recurrentes. Se obtuvo como resultado la clasificación de las frases por su estado gramatical. En este trabajo se logró en un porcentaje aceptable esta clasificación, utilizando como ejemplos para entrenar a la red neuronal recurrente, frases codificadas del lenguaje natural, basándose esta codificación en la teoría lingüística de Reacción y Ligamiento. Bajo la salvedad que, se aplica en frases correctas gramaticalmente, utilizaremos el entrenamiento de esa red neuronal como un referente para entrenar la nuestra. El trabajo realizado en la Universidad de Sevilla (L. Cruz, A. Troyano, Enríquez, & Ortega, 2008) abordo la tarea de determinar si en el texto se expresan opiniones negativas o positivas, esta aplicado al idioma español aplicándolo a un corpus de críticas de cine en español de construcción propia, se planteó además una versión supervisada del clasificador que mejora significativamente la precisión. Para la parte de pruebas se seleccionaron 400 criticas aleatorias del corpus (mitad consideradas positivas y la mitad de negativas), de los resultados obtenidos usando el proceso supervisado son mucho mejores que los obtenidos a partir del proceso no supervisado. De este trabajo tomaremos como referencia la metodología usada para el tratamiento de los textos en español. 2 Por todo lo antes mencionado la pregunta es: ¿Cómo reconocer mensajes de texto extorsivos?, ante esta pregunta la hipótesis que consideramos es que, mediante un sistema inteligente utilizando procesamiento del lenguaje natural podemos reconocer dichos mensajes. Finalmente el objetivo que perseguimos es lograr el diseño de una propuesta de sistema inteligente para el reconocimiento de mensajes extorsivos. Este trabajo presenta los siguientes capítulos: En el capítulo I se presenta el marco teórico donde analizaremos aspectos básicos relacionados con nuestro proyecto, aspectos como la tecnología que se usa para el envió de los mensajes de texto, un visión general de PLN y algunas de sus aplicaciones. El capítulo II se refiere a los Materiales y Métodos, aquí exponemos cuestiones propias de la investigación tales como: tipo de estudio, población, muestra, técnicas e instrumentos usados en la recolección de datos y el procedimiento de la investigación. En el capítulo III se presentan los resultados obtenidos en la investigación, describimos tales resultados, además presentamos el modelo de PLN propuesto y el software implementado. El capítulo IV aborda la discusión de los resultados mostrados en el capítulo III, considerando aspectos como la determinación y los factores críticos que afectan a la eficacia, además se habla sobre trabajos futuros. Finalmente presentamos las conclusiones obtenidas a lo largo de la investigación y las recomendaciones que a nuestro modesto entender pueden ser consideradas para futuras investigaciones. 3 CAPÍTULO I MARCO TEÓRICO 1.1. Mensajes SMS extorsivos 1.1.1. Definición 1.1.1.1. Mensaje SMS SMS son las siglas de Servicio de Mensaje Corto. Disponible en redes digitales GSM permitiendo enviar y recibir mensajes de texto de hasta 160 caracteres a teléfonos móviles vía el centro de mensajes de un operador de red. También se pueden enviar mensajes cortos a través de Internet, usando un sitio web de SMS. Si el teléfono al que se envía el mensaje está apagado o fuera de cobertura, el mensaje se almacena en la red y se entrega en cuanto el teléfono se conecta de nuevo a la red. (Diccionario de Informática y Tecnología) 1.1.1.2. Extorsión Presión que se hace a una persona, mediante el uso de la fuerza o la intimidación, para conseguir de ella dinero u otra cosa. (Real Academia Española) 1.1.2. Características Un mensaje corto puede tener una longitud de hasta 160 caracteres. Esos 160 caracteres pueden ser palabras, números o una combinación alfanumérica. Los mensajes cortos basados en No-texto (por ejemplo, en formato binario) también se utilizan. Los mensajes cortos no se envían directamente del remitente al receptor, sino que se envían a través de un centro de SMS. Cada red de telefonía móvil que utiliza SMS tiene uno o más centros de mensajería para manejar los mensajes cortos. 4 El servicio de mensajes cortos se caracteriza por la confirmación de mensaje de salida. Esto significa que el usuario que envía el mensaje, recibe posteriormente otro mensaje notificándole si su mensaje ha sido enviado o no. Los mensajes cortos se pueden enviar y recibir simultáneamente a la voz y datos. Esto es posible porque mientras que la voz o los datos asumen el control de un canal de radio dedicado durante la llamada, los mensajes cortos viajan sobre un canal dedicado a señalización independiente de los de tráfico. Hay formas de enviar múltiples mensajes cortos. La concatenación SMS (que encadena varios mensajes cortos juntos) y la compresión de SMS (que consigue más de 160 caracteres de información dentro de un solo mensaje corto) han sido definidas e incorporadas en los estándares del GSM SMS. Para utilizar el servicio de mensajes cortos, los usuarios necesitan la suscripción y el hardware específico: - Una suscripción a una red de telefonía móvil que soporte SMS. - Un teléfono móvil que soporte SMS - Conocimiento de cómo enviar o leer mensajes cortos usando su terminal móvil. - Un destino para enviar el mensaje, o dónde recibir el mensaje. Éste es generalmente otro teléfono móvil, una PC o un buzón de e-mail. (Interactividad GSMspain) 5 1.1.3. Arquitectura para la red SMS La figura, muestra la estructura básica de la red SMS. SME (Short Messaging Entity) : Entidad que puede enviar o recibir mensajes cortos, pudiendo estar localizada en la red fija, una estación móvil, u otro centro de servicio. SMSC (Short Message Service Center): Es el responsable de la transmisión y almacenamiento de un mensaje corto, entre el SME y una estación móvil. SMS-Gateway/Interworking MSC (SMS-GMSC): es un Centro de Intercambio de Mensajería capaz de recibir el mensaje corto, interrogando al HLR (Home Location Register) sobre la información de encaminamiento y enviando el mensaje corto al MSC visitado de la estación móvil receptora. Está normalmente integrado en el SMSC. HLR (Home Location Register): Es una base de datos usada para el almacenamiento permanente y gestión de los usuarios y el perfil del servicio. Sobre la interrogación del SMSC, el HLR le proporciona la información de encaminamiento para el usuario indicado. El HLR, también informa al SMSC, el cual previamente inició un intento de envío de SMS fallido a una estación móvil específica, que ahora la estación móvil es reconocida por la red y es accesible. MSC (Mobile Switching Center): Lleva a cabo funciones de conmutación del sistema y el control de llamadas a y desde otro teléfono y sistema de datos. VLR (Visitor Location Register): Es una base de datos que contiene información temporal de los usuarios. Esta información, la necesita el MSC para dar servicio a los usuarios de paso (que están de visita). 6 BSS (Base Statio System): Formada por el BSCs(base-station controllers) y por BTSs (base-transceiver strations), su principal responsabilidad es transmitir el tráfico de voz y datos entre las estaciones móviles. (Información Técnica GSMspain) 1.2. PLN 1.2.1. Definición Es la disciplina que pertenece al campo de la inteligencia artificial; cuál a su vez al campo de la informática; que asume como objetivo básico el tratamiento automático de la información lingüística. De hecho, a este campo de estudio también se le denomina Lingüística computacional. Se ocupa de la formulación e investigación de mecanismos computacionales para la comunicación entre personas y maquinas mediante el uso de lenguajes naturales. (Conference on Intelligent Text Processing and Computational Linguistics) 1.2.2. Problemas en PLN 1.2.2.1. La variación y la ambigüedad lingüística El lenguaje natural, entendido como la herramienta que utilizan las personas para expresarse, posee propiedades que merman la efectividad de los sistemas de recuperación de información textual. Estas propiedades son la variación y la ambigüedad lingüística. Cuando hablamos de la variación lingüística nos referimos a la posibilidad de utilizar diferentes palabras o expresiones para comunicar una misma idea. En cambio, la ambigüedad lingüística se produce cuando una palabra o frase permite más de una interpretación. Ambos fenómenos inciden en el proceso de recuperación de información aunque de forma distinta. La variación lingüística provoca el silencio documental, es decir la omisión de documentos relevantes para cubrir la necesidad de información, ya que no se han utilizado los mismos términos que aparecen en el documento. En cambio, la ambigüedad implica el ruido documental, es decir la inclusión de documentos que no 7 son significativos, ya que se recuperan también documentos que utilizan el término pero con significado diferente al requerido. Estas dos características dificultan considerablemente el tratamiento automatizado del lenguaje. A continuación se muestran algunos ejemplos que ilustran la repercusión de estos fenómenos en el proceso de recuperación de información: A nivel morfológico una misma palabra puede adoptar diferentes roles morfo-sintácticos en función del contexto en el que aparece, ocasionando problemas de ambigüedad (ejemplo 1). Ejemplo 1. Deja la comida que sobre, sobre la mesa de la cocina, dijo llevando el sobre en la mano. La palabra sobre es ambigua morfológicamente ya que puede ser un sustantivo masculino singular, una preposición, y también la primera o tercera persona del presente de subjuntivo del verbo sobrar. A nivel sintáctico, centrado en el estudio de las relaciones establecidas entre las palabras para formar unidades superiores, sintagmas y frases, se produce ambigüedad a consecuencia de la posibilidad de asociar a una frase más de una estructura sintáctica. Por otro lado, esta variación supone la posibilidad de expresar lo mismo pero cambiando el orden de la estructura sintáctica de la frase (ejemplo 2). Ejemplo 2. María vio a un niño con un telescopio en la ventana. La interpretación de la dependencia de los dos sintagmas preposicionales, con un telescopio y en la ventana, otorga diferentes significados a la frase: (i) María vio a un niño que estaba en la ventana y que tenía un telescopio. (ii) María estaba en la ventana, desde donde vio a un niño que tenía un telescopio (iii) María estaba en la ventana, desde donde miraba con un telescopio, y vio a un niño. A nivel semántico, donde se estudia el significado de una palabra y el de una frase a partir de los significados de cada una de las palabras que la 8 componen. La ambigüedad se produce porque una palabra puede tener uno o varios sentidos, es el caso conocido como polisemia (ejemplo 3). Ejemplo 3. Luís dejó el periódico en el banco. El término banco puede tener dos significados en esta frase: (i) Entidad bancaria (ii) Asiento. La interpretación de esa frase va más allá del análisis de los componentes que forman la frase, se realiza a partir del contexto en que es formulada. Y también hay que tener en cuenta la variación léxica que hace referencia a la posibilidad de utilizar términos distintos a la hora de representar un mismo significado, es decir el fenómeno conocido como sinonimia (ejemplo 4): Ejemplo 4: Coche / Vehículo / Automóvil. A nivel pragmático, basado en la relación del lenguaje con el contexto en que es utilizado, en muchos casos no puede realizarse una interpretación literal y automatizada de los términos utilizados. En determinadas circunstancias, el sentido de las palabras que forman una frase tiene que interpretarse a un nivel superior recurriendo al contexto en que es formulada la frase (ejemplo 5). Ejemplo 5. Se moría de risa. En esta frase no puede interpretarse literalmente el verbo morirse si no que debe entenderse en un sentido figurado. Otra cuestión de gran importancia es la ambigüedad provocada por la anáfora, es decir, por la presencia en la oración de pronombres y adverbios que hacen referencia a algo mencionado con anterioridad (ejemplo 6). Ejemplo 6. Ella le dijo que los pusiera debajo La interpretación de esta frase tiene diferentes incógnitas ocasionadas por la utilización de pronombres y adverbio: ¿quién habló?, ¿a quién?, ¿qué pusiera qué?, ¿debajo de dónde? Por tanto, para otorgar un 9 significado a esta frase, debe recurrirse nuevamente al contexto en que es formulada. Con todos los ejemplos expuestos queda patente la complejidad del lenguaje y que su tratamiento automático no resulta fácil ni obvio. (Valles & Pedraza, 2007) 1.2.2.2. Detección de separación entre las palabras Este suele ser un gran problema, especialmente cuando se recepcionan los datos en forma oral; y es que en la lengua hablada no se suelen hacer pausas entre palabra y palabra. El lugar en el que se debe separar las palabras a menudo depende de cuál es la posibilidad que mantenga un sentido lógico, tanto gramatical como contextual; lo cual tiende a realizarse utilizando técnicas probabilísticas. Esto es debido a nuestro idioma, ya que, por ejemplo, en la lengua escrita, idiomas como el chino mandarín tampoco tienen separaciones entre las palabras. (Carboneli, 1992) 1.2.2.3. Complejidad del conocimiento Lingüístico Hay dos tipos de conocimiento necesario para el reconocimiento de las estructuras en el texto y para la resolución de ambigüedades: Conocimiento general Son los algoritmos y las gramáticas, es decir, lo que se aplica a todo el lenguaje, a cualquier oración o texto. Gramáticas detalladas y algoritmos muy sofisticados, con una profunda base matemática pueden mejorar mucho la eficiencia de análisis de texto. Pero aunque los buenos algoritmos pueden aumentar la rapidez del proceso, en pocos casos pueden ellos mejorar la calidad de los resultados. Jamás un algoritmo astuto podrá entender el lenguaje sin un inmenso conocimiento sobre las palabras individuales. Conocimiento léxico. Es específico para cada palabra, o a veces para grupos de palabras. Dependiendo de la calidad de análisis necesario, se puede requerir mucha información: cómo se conjuga la palabra, qué significa y qué 10 relaciones impide a otras palabras en la oración, qué preposiciones usa para marcar sus objetos, cuáles palabras se usan para expresar los sentidos como ‘muy’, ‘hacer’, ‘resultado’, etcétera. La mayoría de esta información es específica para cada idioma: por ejemplo, casarse en español requiere la preposición “con”, en inglés el equivalente de “a”, en ruso de sobre; papel (rol) en español usa desempeñar para expresar el sentido de ‘hacer’, y en inglés el equivalente de jugar. Uno de los problemas contemporáneos del procesamiento de texto es que la cantidad del conocimiento léxico necesario es tan inmensa que resulta muy difícil alcanzar el grado necesario de conocimiento en un sistema específico. La compilación, ya sea manual o semiautomáticamente, de los diccionarios de varios tipos –morfológicos, sintácticos, semánticos– es una de las más importantes tareas de hoy en la lingüística computacional. (Gelbukh & Bolshakov, 2000) 1.2.2.4. Complejidad del conocimiento extra lingüístico Los diccionarios de las propiedades gramaticales de las palabras no son el único conocimiento necesario para entender el lenguaje. Lo que falta es el conocimiento de las propiedades de las cosas y de las situaciones en el mundo real. El problema es que el texto no comunica toda la información necesaria para entenderlo, sino que omite muchas ideas obvias, las cuáles se pueden simplemente restaurar por el humano que escucha, pero no por la computadora. Consideremos una analogía. Cuando explicamos a alguien cómo ir al Metro, le decimos algo como esto: «Del Ángel vas por Reforma dos paradas en la dirección opuesta a la Diana, bajas en el Caballito y das vuelta a la derecha». Tenemos en nuestra mente un mapa, y estamos seguros que el que oye también tiene en su mente un mapa igual al nuestro; lo único que necesitamos es darles unas pistas sobre su trayectoria en este mapa, unos puntos clave. Ahora bien, ¿qué sucederá si el que oye es un extranjero y no sabe ni qué son el Angel o la Diana, ni cómo llegar allá, ni 11 siquiera cómo usar los peseros, cómo se ven, dónde subir, ni que hay que pagar y cuánto? Ésta es la situación de las computadoras: son extranjeras en nuestro mundo, no saben cómo usarlo, cómo se comportan las cosas en él. Las personas lo aprenden observando las cosas y participando en las situaciones. Las computadoras no tienen esta oportunidad. (Arreiza Londoño & Henao Restrepo, 2000) 1.2.2.5. Recepción imperfecta de datos Acentos extranjeros, regionalismos o dificultades en la producción del habla, errores de mecanografiado o expresiones no gramaticales, errores en la lectura de textos mediante Reconocimiento Óptico de Caracteres (OCR). (Carboneli, 1992) 1.2.3. Tipos de PLN 1.2.3.1. Procesamiento de Voz En inglés se denomina Voice/Speech Recognition (o con sus siglas SR). Es la fase de la aplicación que recibe los sonidos, mediante el clásico y conocido micrófono (de mejor o peor calidad) transformándolos, luego de un largo proceso interno, en conjuntos de palabras conocidas, es decir, en una presunta frase. Esta frase puede tener o no sentido, pero es la interpretación que el módulo hace de los sonidos recibidos vía micrófono. El procesamiento de voz se puede dividir en las siguientes categorías: - Reconocimiento de Voz: Trata con el análisis del contenido lingüístico de una señal de voz - Codificación de Voz: Técnicas de compresión de las señales de voz - Análisis de Voz: Estudio de los sonidos y la voz para propósitos de contenido lingüístico, médico, forense, etc. - Síntesis de Voz: Creación de voz artificial por medio de la computadora. - Mejoramiento de Voz: 12 Técnicas para el mejoramiento de la inteligibilidad y/o la calidad en la percepción de las señales de voz. Una vez obtenida la frase; se sigue con el análisis de lenguaje natural. (Larios) 1.2.3.2. Procesamiento de Texto El procesamiento de texto es más sencillo que el procesamiento de voz; ya que se procesa una frase que ya se encuentra escrita, sólo recepciona; evitándonos el procesamiento de sonidos para decodificar la misma. Una vez obtenida la frase, se procede a realizar su estudio de lenguaje. El estudio del lenguaje natural se estructura normalmente en 4 niveles de análisis: - Morfológico. - Sintáctico. - Semántico. - Pragmático. Además se pueden incluir otros niveles de conocimiento como es el análisis del discurso, que estudia cómo la información precedente puede ser relevante para la comprensión de otra información; y, finalmente, lo que se denomina conocimiento del mundo, referente al conocimiento general que los hablantes han de tener sobre la estructura del mundo para mantener una conversación. (Larios) 1.2.4. Componentes Principales 1.2.4.1.Análisis Morfológico Su función consiste en detectar la relación que se establece entre las unidades mínimas que forman una palabra, como puede ser el reconocimiento de sufijos o prefijos. Este nivel de análisis mantiene una estrecha relación con el léxico. 13 El léxico es el conjunto de información sobre cada palabra que el sistema utiliza para el procesamiento. Las palabras que forman parte del diccionario están representadas por una entrada léxica, y en caso de que ésta tenga más de un significado o diferentes categorías gramaticales, tendrá asignada diferentes entradas. En el léxico se incluye la información morfológica, la categoría gramatical, irregularidades sintácticas y representación del significado. Normalmente el léxico sólo contiene la raíz de las palabras con formas regulares, siendo el analizador morfológico el que se encarga de determinar si el género, número o flexión que componen el resto de la palabra son adecuados. (Sosa) 1.2.4.2.Análisis Sintáctico Tiene como función etiquetar cada uno de los componentes sintácticos que aparecen en la oración y analizar cómo las palabras se combinan para formar construcciones gramaticalmente correctas. El resultado de este proceso consiste en generar la estructura correspondiente a las categorías sintácticas formadas por cada una de las unidades léxicas que aparecen en la oración. Las gramáticas, tal como se muestra en la siguiente figura, están formadas por un conjunto de reglas: O --> SN, SV SN --> Det, N SN --> Nombre Propio SV --> V, SN SV --> V SP --> Preposición, SN 14 Dónde: O= Oración SN = Sintagma nominal SV = Sintagma verbal Det = Determinante Ejemplo de una gramática simple: las reglas tiene como función la composición de estructuras El resultado del análisis se puede expresar en forma arbórea. Los árboles son formas gráficas utilizadas para expresar la estructura de la oración, consistentes en nodos etiquetados (O, SN, SV, etc.) conectados por ramas: 1.2.4.3.Análisis Semántico En muchas aplicaciones del PLN los objetivos del análisis apuntan hacia el procesamiento del significado. En los últimos años las técnicas de procesamiento sintáctico han experimentado avances significativos, resolviendo los problemas fundamentales. 15 Sin embargo, las técnicas de representación del significado no han obtenido los resultados deseados, y numerosas cuestiones continúan sin encontrar soluciones satisfactorias. Definir qué es el significado no es una tarea sencilla, y puede dar lugar a diversas interpretaciones. A efectos funcionales, para facilitar el procesamiento, la modularidad es una de las propiedades más deseables. Haciendo uso de esta concepción modular es posible distinguir entre significado independiente y significado dependiente del contexto. El primero, tratado por la semántica, hace referencia al significado que las palabras tienen por sí mismas sin considerar el significado adquirido según el uso en una determinada circunstancia. La semántica, por tanto, hace referencia a las condiciones de verdad de la frase, ignorando la influencia del contexto o las intenciones del hablante. Por otra parte, el componente significativo de una frase asociado a las circunstancias en que ésta se da, es estudiado por la pragmática y conocido como significado dependiente del contexto. Atendiendo al desarrollo en el proceso de interpretación semántica, es posible optar entre múltiples pautas para su organización, tal como se determinan en los siguientes párrafos. En referencia a la estructura semántica que se va a generar, puede interesarnos que exista una simetría respecto a la estructura sintáctica, o por el contrario que no se dé tal correspondencia entre ellas. En el primer caso, a partir del árbol generado por el análisis sintáctico se genera una estructura arbórea con las mismas características, sobre la cual se realizará el análisis semántico. En el segundo caso, en la estructura generada por la sintaxis se produce un curso de transformaciones sobre las cuales se genera la representación semántica. Cada una de las dos opciones anteriores puede implementarse de forma secuencial o paralela. En la interpretación secuencial, después de haber finalizado la fase de análisis sintáctico, se genera el análisis semántico. En 16 cambio, desde un procedimiento en paralelo, el proceso de análisis semántico no necesita esperar a que el analizador sintáctico haya acabado toda su tarea, sino que puede ir realizando el análisis de cada constituyente cuando éste ha sido tratado en el proceso sintáctico. Finalmente en combinación con cada una de las opciones anteriores, podemos escoger un modelo en el que exista una correspondencia entre reglas sintácticas y semánticas o, contrariamente, podemos optar por un modelo que no cumpla tal requisito. En caso afirmativo, para cada regla sintáctica existirá una regla semántica correspondiente. El significado es representado por formalismos conocidos por el nombre de knowledge representation. El léxico proporciona el componente semántico de cada palabra en un formalismo concreto, y el analizador semántico lo procesa para obtener una representación del significado de la frase. (Sosa) 1.2.4.4.Análisis Pragmático Añade información adicional al análisis del significado de la frase en función del contexto donde aparece. Se trata de uno de los niveles de análisis más complejos, la finalidad del cual es incorporar al análisis semántico la aportación significativa que pueden hacer los participantes, la evolución del discurso o información presupuesta. Incorpora así mismo información sobre las relaciones que se dan entre los hechos que forman el contexto y entre diferentes entidades. (Sosa) 17 1.2.5. Aplicaciones Entre las tareas principales del procesamiento de lenguaje natural se puede mencionar: 1.2.5.1. Recuperación de información La aplicación del procesamiento de lenguaje natural más obvia y una de las más importante en el momento actual es la búsqueda de información (se llama también recuperación de información). Por un lado, en Internet y en las bibliotecas digitales se contiene una cantidad enorme de conocimiento que puede dar respuestas a muchísimas preguntas que tenemos. Por otro lado, hay tanta información que no sirve porque ya no se puede encontrarla. Hoy en día la pregunta ya no es “¿si se sabe cómo...?” sino “ciertamente se sabe, pero ¿dónde está esta información?”. Técnicamente, rara vez se trata de decidir cuáles documentos (así se llaman archivos o textos en la recuperación de información) son relevantes para la petición del usuario y cuáles no. Usualmente, una cantidad enorme de documentos se puede considerar como relevantes en cierto grado, siendo unos más relevantes y otros menos. Entonces, la tarea se entiende cómo medir el grado de esta relevancia para proporcionar al usuario primero el documento más relevante; si no le sirvió, el segundo más relevante, etc. El problema más difícil de la recuperación de información es, sin embargo, no de índole técnica sino psicológica: entender cuál es la necesidad real del usuario, para qué formula su pregunta. Este problema se complica ya que no existe un lenguaje formal en el cual el usuario podría formular claramente su necesidad. (La dirección más prometedora de resolver este problema es, nuevamente, el uso de lenguaje natural.) Las técnicas más usadas actualmente para la recuperación de información involucran la búsqueda por palabras clave: se buscan los 18 archivos que contengan las palabras que el usuario teclee. Es decir, la representación formal usada es el conjunto de las cadenas de letras (palabras), usualmente junto con sus frecuencias en el texto (en número de ocurrencias). La claridad matemática de la tarea causó mucho avance en la teoría de estos métodos. Las ideas más usadas son los modelos probabilísticos y los procedimientos iterativos e interactivos: tratar de adivinar qué necesita el usuario preguntándolo cuáles documentos le sirven). Sin embargo, los métodos que involucran sólo las palabras (como cadenas de letras) pero no el sentido del texto son muy limitados en su capacidad de satisfacer la necesidad informática del usuario, es decir, de hallar la respuesta a la pregunta que tiene en mente. Se puede mejorar mucho aplicado las siguientes operaciones, desde las más sencillas hasta más complejas: Coincidencia de las formas morfológicas de palabras: buscando pensar, encontrar piénsalo. Coincidencia de los sinónimos, conceptos más generales y más específicos: buscando cerdo, encontrar puerco, mascota, animal, etc. Tomar en cuenta las relaciones entre las palabras en la petición del usuario y en el documento: buscando estudio de planes, rechazar como no relevante planes de estudio. (Conference on Intelligent Text Processing and Computational Linguistics) 1.2.5.2. Interfaces en lenguaje natural Las computadoras están entrando en todos los aspectos de nuestra vida cotidiana: en las oficinas, en las tiendas, en las escuelas, en los servicios públicos. Sin embargo, la gran mayoría del pueblo no tiene la preparación adecuada para usarlas ya que se requiere saber cómo se usan. Y nunca va a tener esta preparación, por el simple hecho: 19 económicamente, más conviene que las máquinas se adapten al modo de la comunicación de las personas y no que todas las personas (las cuales sólo en el mundo hispanohablante son 400 millones), generación tras generación, aprendan cómo usar las máquinas –por ejemplo, aprendan el SQL para formular con precisión sus preguntas. De esto surge la idea ya muy conocida de las películas de fantaciencia: las personas debemos poder hablar con las máquinas (o sea, los robots) como hablaríamos con nuestros sirvientes, dándoles órdenes en la forma cotidiana y escuchando sus respuestas. Hablando de darles órdenes, no se trata de pronunciar los comandos especiales que de otra manera escogeríamos del menú: abrir, edición, copiar, guardar, salir (de modo similar a como se habla al perro pastor). En lugar de esto, se trata de hablar a la máquina como hablaríamos al ser humano. Un tipo específico de las interfaces en lenguaje natural son preguntas complejas a una base de datos. Como un ejemplo, podemos mencionar el sistema TRAINS desarrollado en la Universidad deRochester en los EE.UU. por James Allen. Este sistema vende los boletos de tren. El cliente –que puede ser cualquier persona sin ningún conocimiento sobre las máquinas– llama por teléfono a la estación de trenes y formula su necesidad: tengo que ir mañana en la tarde a Nueva York. El programa – sin siquiera darse cuenta el cliente de que habla con una máquina y no con una persona– trata de entender su pregunta e internamente la traduce a SQL, para ejecutar la búsqueda en su base de datos. Después, el programa conduce (por teléfono) el diálogo con el usuario, explicándole los precios y las condiciones, escuchando sus preguntas o comentarios sobre cuál boleto más le conviene, etc. Finalmente, si llegan al acuerdo, le reserva el boleto. Todo eso, nuevamente enfatizamos, no requiere del cliente ningún conocimiento previo sobre el manejo de los 20 programas sino sólo el manejo natural de lenguaje que cotidianamente usa para hablar con otras personas. El problema más importante de este tipo de aplicaciones es que –a diferencia de las aplicaciones en la recuperación de información– se requiere entender exactamente la intención del usuario, ya que el costo de error puede ser muy alto. Realmente, si el robot entiende incorrectamente el comando, pude hacer alguna acción destructiva o peligrosa. Si se malentiende la pregunta a la base de datos, la información proporcionada resultará incorrecta, lo que puede causar consecuencias graves. Entonces, las interfaces en lenguaje natural en muchos casos requieren de las representaciones de información más detalladas y complejas, así como del análisis lingüístico más preciso y completo. (Conference on Intelligent Text Processing and Computational Linguistics) 1.2.5.3. Traducción Automática Históricamente, el sueño de la traducción automática motivó las primeras investigaciones en lingüística computacional. A la primera vista, la traducción parece ser un trabajo bastante mecánico y aburrido, que puede fácilmente hacer la máquina: sustituir las palabras en un lenguaje con sus equivalentes en el otro. Sin embargo, con los avances en los programas de traducción se hizo cada vez más obvio que esta tarea no es tan simple. Esto se debe, en una parte, a las diferencias entre los lenguajes las cuales varían desde muy obvias (por ejemplo, el orden de palabras es diferente en inglés y en español) hasta más sutiles (el uso de diferentes expresiones y diferente estilo). 21 El esquema general de prácticamente cualquier traductor automático es (en acuerdo con el esquema expuesto en la introducción a este artículo) el siguiente: El texto en el lenguaje fuente se transforma a una representación intermedia, De ser necesario, se hacen algunos cambios a esta representación, Luego, esta representación intermedia se transforma al texto en el lenguaje final. En algunos sistemas, al texto generado con este esquema también se aplican algunos ajustes previstas por las heurísticas de traducción. De la calidad esperada de traducción y de la proximidad de los dos lenguajes depende qué tan profundas son las transformaciones entre las dos representaciones, es decir, que tan diferente es la representación intermedia del texto en el lenguaje humano. En algunos casos (se puede mencionar los traductores entre los lenguajes tan parecidos como español y catalán, portugués y gallego, etc.) basta con la representación morfológica: el análisis y generación de las palabras fuera del contexto. Por ejemplo, la palabra española hijas se analiza como HIJO-femenino-plural, se transforma (usando una tabla de correspondencias) a la representación FILHA-femenino-plural, de la cual se genera la palabra portuguesa filhas (aqui, HIJA y FILHA son claves de acceso a la base de datos que contiene las propiedades de las palabras en los lenguajes correspondientes). En otros casos, cuando hay diferencias estructurales más profundos entre los lenguajes (que es el caso de casi cualquier par de idiomas, incluidos español–inglés, español–francés, etc.), se usan como la representación intermedia (que en este caso se llama interlingua) las estructuras formales de predicados lógicos o sus equivalentes, por ejemplo, redes semánticas (véase más abajo). Esta representación 22 independiente de lenguaje es en realidad el sentido del mensaje que comunica el texto. Es decir, la transformación del texto a esta representación formal es comprensión del texto, y la transformación en el sentido contrario es generación: teniendo una idea, decirla en el lenguaje humano. (Conference on Intelligent Text Processing and Computational Linguistics) 1.2.5.4. Reconocimiento del Habla Es una disciplina de la inteligencia artificial que tiene como objetivo permitir la comunicación hablada entre seres humanos y computadoras. El problema que se plantea en un sistema de este tipo es el de hacer cooperar un conjunto de informaciones que provienen de diversas fuentes de conocimiento (acústica, fonética, fonológica, léxica, sintáctica, semántica y pragmática), en presencia de ambigüedades, incertidumbres y errores inevitables para llegar a obtener una interpretación aceptable del mensaje acústico recibido. Un sistema de reconocimiento de voz es una herramienta computacional capaz de procesar la señal de voz emitida por el ser humano y reconocer la información contenida en ésta, convirtiéndola en texto o emitiendo órdenes que actúan sobre un proceso. En su desarrollo intervienen diversas disciplinas, tales como: la fisiología, la acústica, la lingüística, el procesamiento de señales, la inteligencia artificial y la ciencia de la computación. Un aspecto crucial en el diseño de un sistema de RAH es la elección del tipo de aprendizaje que se utilice para construir las diversas fuentes de conocimiento. Básicamente, existen dos tipos: Aprendizaje deductivo: Las técnicas de Aprendizaje Deductivo se basan en la transferencia de los conocimientos que un experto humano posee a un sistema informático. Un ejemplo paradigmático de las metodologías que utilizan tales técnicas lo 23 constituyen los Sistemas Basados en el Conocimiento y, en particular, los Sistemas Expertos. Aprendizaje inductivo: Las técnicas de Aprendizaje Inductivo se basan en que el sistema pueda, automáticamente, conseguir los conocimientos necesarios a partir de ejemplos reales sobre la tarea que se desea modelizar. En este segundo tipo, los ejemplos los constituyen aquellas partes de los sistemas basados en los modelos ocultos de Márkov o en las redes neuronales artificiales que son configuradas automáticamente a partir de muestras de aprendizaje. En la práctica, no existen metodologías que estén basadas únicamente en el Aprendizaje Inductivo, de hecho, se asume un compromiso deductivo-inductivo en el que los aspectos generales se suministran deductivamente y la caracterización de la variabilidad inductivamente. (Congreso de Sevilla: La lengua española y las nuevas tecnologías, 2011) 1.2.5.5. Generación de Lenguajes Naturales Es el proceso de la construcción de un texto en lenguaje natural para la comunicación con fines específicos. Texto se refiere aquí a un término general y repetitivo aplicable a expresiones, o partes de ellas, de cualquier tamaño, tanto habladas como escritas. En el ser humano, el que sea hablado o escrito tiene consecuencias en el nivel deliberativo y de edición que ha tenido lugar; si el lenguaje es hablado puede faltar revisión ya que la mayoría de los programas actuales pueden hablar, si bien casi todos sólo presentan palabras en una pantalla. La decisión de revisar o usar la palabra escrita o hablada no es una opción para la generación del programa en la actualidad; pero se debe abordar el tema en el diseño de un programa en particular. El principal énfasis de la generación de lenguajes naturales no es sólo el facilitar el uso del ordenador sino también el desarrollar una teoría 24 computacional de la capacidad del lenguaje humano. En este sentido constituye una herramienta para extender, aclarar y verificar teorías que se han formulado en lingüística, psicología y sociología acerca de la comunicación entre humanos. Un generador de lenguaje natural típicamente tiene acceso a un gran conjunto de conocimiento del cual ha de seleccionar información para presentar a los usuarios en varias formas. El generar texto es, pues, un problema de toma de decisiones con múltiples restricciones: de conocimiento proposicional, de herramientas lingüísticas disponibles, de los objetivos de la comunicación del usuario a quien se dirige el texto, y de la situación y del discurso pasado. Se trata de identificar los factores involucrados en este proceso y de determinar la mejor forma de representar estos factores y sus dependencias. Para generar un texto, un sistema debe escoger cierta información de la base de conocimiento, decidir cómo organizarla, y determinar cómo producir el texto en lenguaje natural, lo cual incluye el decidir acerca de la entrada del léxico y de las estructuras sintácticas. Esto hace que el proceso de generación se divida en dos partes: una componente de planificación del texto y una componente de generación propiamente dicha. Ésta a su vez se divide en dos tareas: la de escoger los objetos del léxico y la de efectuar selecciones gramaticales. En todo esto se trata de escoger apropiadamente para expresar lo mejor posible el significado deseado. Planificación de textos Cuando se hace de arriba a abajo, se generan textos para sistemas complejos, en sistemas expertos para dialogar con una gran variedad de usuarios. El proceso de planificación es algo restrictivo ya que no puede alcanzar planificación oportunista. En algunos casos se incorporan 25 métodos de abajo a arriba, para aprovecharse de planificación oportunista. Generación de textos Elección de léxico. En este campo se trabaja desde los puntos de vista lingüísticos y computacionales. Este problema es difícil. En algunos casos se trata al nivel de la representación conceptual sobre cuya base opera el generador. Este método puede resultar en una arquitectura de procesamiento más simple. En otros casos se trata de que la elección de léxico no ocurra de una forma aislada sino como parte del problema de la elección léxico gramatical. En otros casos se han desarrollado generadores basados en la teoría significado-texto, donde el léxico desempeña un papel central, que influye en el proceso de generación. Recursos gramaticales. En este campo la gramática a utilizar es una componente importante del sistema, y toma decisiones de cómo expresar sintácticamente la información deseada. En algunos casos se trata de una gramática que tenga en cuenta las correferencias del discurso. En otros casos la gramática se diseña para manejar las necesidades de la generación de oraciones incrementalmente. Morfología. Este campo trata de la formación de la palabra (inflexión, palabras derivadas, palabras compuestas). Se basa en un léxico que contiene entradas para un conjunto de palabras y reglas para las inflexiones. (Ángel G. Jordán, 1992) 1.2.5.6. Respuestas a Preguntas Llamado en inglés Question Answering (QA) es un tipo de recuperación de la información. Dada una cierta cantidad de documentos (tales como World Wide Web), el sistema debería ser capaz de recuperar respuestas a preguntas planteadas en lengua natural. QA es observado como un método que requiere una tecnología de Procesamiento de lenguaje natural más compleja que otros tipos de sistemas para la Recuperación 26 de documentos, y, en algunos casos, se le observa como un paso por delante de la tecnología del buscador. Un sistema de question answering es uno de los sistemas más complejos en torno a la recuperación de información. Debemos de tener en cuenta que un sistema basado en el question-answering es mucho más difícil que un sistema normal que se encarga de buscar una información en una cantidad más o menos grande de documentos, ya que estos debe extraer de dichos documentos un fragmento de texto (mínimo) que responda a una pregunta dada en lenguaje natural. Estos sistemas están muy ligados a los buscadores web. Un sistema de question-answering intenta reconocer un amplio rango de tipos de cuestiones, incluyendo hechos, listas, definiciones, cómo, cuándo, dónde, por qué, etc. Dichas búsquedas pueden variar desde pequeñas colecciones de documentos locales, organizaciones internas de documentos, hasta la web entera (o una parte de ella). (Computació) 1.2.6. Ejemplos 1.2.6.1 Traducción Informática Systran Es uno de los sistemas comerciales de traducción automática más veteranos. Es utilizado de manera gratuita en las múltiples instalaciones accesibles por Internet: AOL, AltaVista, o el Instituto Cervantes. La empresa ofrece módulos preparados para más de 40 idiomas. Systran además integra funciones multilingües muy útiles para aplicaciones como el comercio electrónico, CRM, bases de datos, correo electrónico, mensajería instantánea, SMS, WAP. Todas desarrolladas bajo fundamento de PLN. (Systran) 27 Google Translate Es un sistema de traducción automática gratuito proporcionado por Google Inc, basado en procesamiento estadístico del lenguaje para traducir un texto, documentos y páginas web a otras lenguas. Google introdujo su propio software de traducción en 2007, antes Google utilizaba el traductor SYSTRAN, que es utilizado por otros servicios de traducción, tales como Babel Fish, AOL y Yahoo. (Traductor Google) 1.2.6.2 Clasificación de Textos Filtro Spam. Algunas han sido incorporadas en productos, servicios y software para aliviar la carga que cae sobre usuarios y administradores. No existe la fórmula perfecta para solucionar el problema del spam por lo que entre las múltiples existentes unas 28 funcionan mejor que otras, rechazando así, en algunos casos, el correo deseado para eliminar completamente el spam, con los costes que conlleva de tiempo y esfuerzo. Clasificación de temas. Tratan de establecer una división lógica y sistemática del conocimiento, que permita representar el contenido de manera sintética. Ordenación o disposición por clases o grupos Análisis Sentimental. Es el uso de PLN, análisis de textos y lingüística computacional para identificar y extraer información subjetiva en materiales fuente. Determina la actitud de un sujeto respecto a algún tema. Su actitud será su juicio o evaluación de estado afectivo; o la comunicación emocional que pretenda expresar. (Antispam) 1.2.6.3 Recuperación de Información Search Engines : Google Search, Lucene Diseñados para buscar información. Los resultados de búsqueda son presentados generalmente en una línea de resultados. La información es una mezcla de diferentes fuentes ( páginas web, imágenes, otro tipo de archivos ). A diferencia de los directorios, que son supervisados sólo por editores humanos; los engranes de búsqueda presentan información en tiempo real. (Apache Lucene) 29 Text Databases: MongoDB, CouchDB. Son aquellas que gestionan datos semi estructurados. Es decir documentos. Estos datos son almacenados en algún formato estándar como puede ser XML, JSON o BSON. Son las bases de datos NoSQL más versátiles. Se pueden utilizar en gran cantidad de proyectos, incluyendo muchos que tradicionalmente funcionarían sobre bases de datos relacionales. (Bases de Datos Textuales) 1.2.6.4 Entendimiento/Generación de lenguaje Natural Chatbots 1.2.6.5 Otros Corrección Automática Compiladores Intérpretes Resúmenes Automáticos Scraping 1.3. Clasificador Bayesiano Ingenuo 1.3.1. Definición Un clasificador Bayesiano Ingenuo es un clasificador probabilístico simple, basado en la aplicación del teorema de Bayes con fuertes supuestos de independencia. Un término más descriptivo para el modelo de probabilidad subyacente es "modelo de producción independiente". El clasificador asume que la presencia o ausencia de una característica particular, no está relacionada con la presencia o ausencia de cualquier otra característica, teniendo en cuenta la variable de clase. Por ejemplo, una fruta puede ser considerada como una manzana si es rojo, redondo, y alrededor de 3cm. de 30 diámetro. Un clasificador de Bayes Ingenuo considera cada una de estas funciones para contribuir de manera independiente a la probabilidad de que esta fruta es una manzana, independientemente de la presencia o ausencia de las otras características. Para algunos tipos de modelos de probabilidad, clasificadores de Bayes ingenuo se puede entrenar de manera muy eficiente en un entorno de aprendizaje supervisado. En muchas aplicaciones prácticas, la estimación de parámetros para los modelos Bayes naive utiliza el método de máxima verosimilitud, es decir, se puede trabajar con el modelo Bayes naive sin creer en la probabilidad bayesiana o el uso de cualquiera de los métodos bayesianos. Una ventaja de Bayes Ingenuo es que sólo se requiere una pequeña cantidad de datos de entrenamiento para estimar los parámetros necesarios para la clasificación. Porque se supone que las variables independientes, sólo las varianzas de las variables para cada clase tienen que ser determinados y no a toda la matriz de covarianza. (Clasificador bayesiano.) 1.3.2. Modelo Probabilístico El modelo de probabilidad para un clasificador es: Sobre una variable dependiente C, con un pequeño número de resultados (o clases). Esta variable está condicionada por varias variables independientes desde a . El problema es que si el número n de variables independientes es grande (o cuando éstas pueden tomar muchos valores), entonces basar este modelo en tablas de probabilidad se vuelve imposible. Por lo tanto el modelo se reformula para hacerlo más manejable usando el teorema de Bayes, quedando de ésta forma: 31 En la práctica sólo importa el numerador, ya que el denominador no depende de y los valores de son datos, por lo que el denominador es, en la práctica, constante. El numerador es equivalente a una probabilidad compuesta: Que puede ser reescrita como sigue, aplicando repetidamente la definición de probabilidad condicional: Y así sucesivamente. Ahora es cuando la asunción “ingenua" de independencia condicional entra en juego: se asume que cada otra para es independiente de cualquier . Esto significa que: (Drakos & Moore, 2001) 1.3.3. Estimación de Parámetros y modelo de eventos Todos los parámetros del modelo se pueden aproximar con frecuencias relativas del conjunto de entrenamiento. Estas son las estimaciones de máxima verosimilitud de las probabilidades. Una clase 'antes se puede calcular suponiendo clases equiprobables, o calculando una estimación de la probabilidad de clase del conjunto de entrenamiento. Para estimar los parámetros para la distribución de una característica, uno debe suponer una distribución o generar modelos no paramétricos para las características del conjunto de entrenamiento. Las hipótesis sobre la distribución de funciones se llaman el modelo de eventos del Clasificador bayesiano. Por características discretas como las encontradas en la clasificación de documentos, las distribuciones multinomiales y Bernoulli son populares. Estos supuestos conducen a dos modelos distintos, que a menudo se 32 confunden. Cuando se trata de los datos continuos, un supuesto típico es que los valores continuos asociados con cada clase se distribuyen según una distribución de Gauss. En general, el método de distribución es una mejor opción si hay una pequeña cantidad de datos de entrenamiento, o si se conoce la distribución precisa de los datos. El método de discretización tiende a hacer mejor si hay una gran cantidad de datos de entrenamiento, ya que va a aprender para adaptarse a la distribución de los datos. Desde Bayes ingenuo se utiliza típicamente cuando una gran cantidad de datos está disponible, se prefiere generalmente el método de discretización sobre el método de distribución. (Clasificador bayesiano.) 1.3.4. Corrección de Muestras Si el valor de la clase y de la función dada no ocurren juntas en los datos de entrenamiento, entonces la estimación basada en la probabilidad de frecuencia será cero. Esto es un problema, ya que acabará con toda la información de las otras probabilidades cuando se multiplican. Por lo tanto a menudo es necesario incorporar una pequeña corrección de muestreo, llamada pseudocontador, con toda la probabilidad estimada, de tal manera que no hay probabilidad alguna para que dé exactamente cero. (Clasificador bayesiano.) 1.3.5. Construcción de un clasificador del modelo probabilístico Hasta ahora la discusión ha derivado del modelo de características independientes, es decir, el modelo de probabilidad de Bayes ingenuo. El clasificador Naïve Bayes combina este modelo con una regla de decisión. Una regla común es para recoger la hipótesis de que es más probable, esto se conoce como el máximo de una regla de decisión a posteriori o MAPA. El clasificador correspondiente, un clasificador de Bayes, es la función definida de la siguiente manera: (Drakos & Moore, 2001) 33 CAPÍTULO II MATERIALES Y MÉTODOS 2.1. Tipo de Estudio Es una investigación de diseño no experimental, toda vez que los resultados se obtienen con datos de prueba. 2.2. Población La población para el presente estudio, dada la complejidad del idioma español estaría formada un número infinito de formas distintas de escribir un mensaje. 2.3. Muestra Dado que la población de mensajes es infinita optamos por usar un muestreo aleatorio simple para poblaciones desconocidas con un nivel de confianza del 95% y un error de muestreo del 5% Dónde: - n = Tamaño de muestra - z = Coeficiente de confiabilidad (1,96) - p = 0.50 - e = Error (0, 05) Aplicando la formula obtenemos que la muestra es de tamaño 384 mensajes. 34 2.4. Técnica de Recolección de Datos Los mensajes fueron recolectados a través de un formato de monitoreo realizado por la policía; dicho monitoreo consiste en el proceso sistemático de recolectar y utilizar la información para hacer un seguimiento al progreso de un particular, en nuestro caso, los casos de extorsión. 2.5. Instrumento de Recolección de Datos En este caso, será el software de sistema inteligente, en la que se ejecute el programa, el encargado de recolectar los datos. 2.6. Procedimiento de Investigación En primer lugar vamos a separar la muestra de los mensajes que constituyen a ese estudio Luego diseñaremos un diccionario (corpus) que contendrá las palabras escritas correctamente que aparecen generalmente en los mensajes extorsivos; y sus funciones gramaticales respectivas. Luego vamos a diseñar la gramática de libre contexto para el análisis sintáctico. Se analizara el texto obtenido del análisis sintáctico usando el clasificador de Bayes iIngenuo, este resultado será considerado dentro del vector de características necesario para la red neuronal. Después vamos a diseñar una red neuronal tomando en consideración la base de conocimientos de los patrones que requiere la misma (vector de características). Finalmente, desarrollaremos un sistema inteligente para hacer las pruebas del caso con los mensajes de la muestra. 35 CAPÍTULO III RESULTADOS 3.1. Descripción El software recibirá como entrada una frase, la cual será evaluada. En primer lugar se revisará si cada palabra está correctamente escrita, de no ser así, se procederá a su corrección individual. Luego, se determinará si el mensaje tiene sentido (análisis sintáctico, análisis semántico); para la red neuronal es necesario obtener un vector de características, dicho vector tendrá como primer parámetro el resultado obtenido del clasificador de bayes ingenuo, el cual es aplicado a la frase luego de ser analizada sintácticamente, el segundo parámetro del vector de características es el resultado obtenido del análisis semántico. Del resultado de la red neuronal, conoceremos si el mensaje ingresado es amenazante o no. 3.2. Modelo Propuesto de PLN 36 3.3. Elementos del Software 3.3.1. Análisis léxico Se analiza cada una de las palabras de la frase verificando que estas se encuentren bien escritas, en caso contrario corregir su escritura. 3.3.2. Análisis sintáctico A partir de las palabras obtenidas en el análisis léxico, asociaremos estas a la figura gramatical que le corresponda obteniendo posibles frases, las cuales serán analizadas para elegir una sintácticamente correcta. Para esto se emplea un corpus de figuras gramaticales, que contiene las palabras y sus respectivas figuras gramaticales. Una primera parte de este análisis consiste en generar las frases candidatas como en el siguiente ejemplo: Entrada: Mensaje: “tu pagaras o yo mato a tu familia” Salida: arreglo de frases según su figura gramatical ['pronombre', 'verbo', 'pronombre', 'verbo', 'pronombre', 'sustantivo'] ['pronombre', 'verbo', 'sujeto', 'verbo', 'pronombre', 'sustantivo'] 3.3.3. Análisis semántico El desarrollador semántico tendrá como parámetro de entrada la frase ya procesada en el análisis sintáctico y determinara si esta tiene sentido. 37 3.3.4. Análisis estadístico Para este análisis hemos usado el clasificador Naive Bayes que está basado en el teorema de bayes, para lo cual se implementado las siguientes funciones: Lista_palabra(texto): esta función recibe una frase, la cual separara palabra por palabra y devuelve otro arreglo donde se almacenan todas las palabras que tienen 3 letras o más. Entrenar(textos) : esta función recibe un arreglo de frases como parámetro de entrada, estas frases además ya están clasificadas como extorsivas y no extorsivas, como retorno tendremos los siguientes datos: o Cantidad de palabras, es un arreglo donde se guarda la palabra además de la cantidad de veces que esta palabra ocurre tanto en los mensajes extorsivos como en los no extorsivos. o Cantidad de categorías, en nuestro caso siempre es dos ya que solo clasificamos entre extorsivo y no extorsivo. 38 o Cantidad de textos, es la cantidad de frases que se están usando para el entrenamiento. o Cantidad total de palabras en las frases, sin tomar en cuenta las repeticiones ni las palabras de longitud menor a tres. Clasificar(texto,c_palabras,c_categorias,c_textos,c_tot_palabras) Esta función toma los datos obtenidos por la función entrenar, además de la frase que será evaluada y devuelve la categoría a la que pertenece. En esta función se usa el clasificador bayes ingenuo. 39 40 REFERENCIAS BIBLIOGRÁFICAS Congreso de Sevilla: La lengua española y las nuevas tecnologías. (2011). Obtenido de http://cvc.cervantes.es/obref/congresos/sevilla/tecnologias/mesaredon_moreno.htm Ángel G. Jordán. (1992). Lenguas y tecnologías de la información. Sevilla. Antispam. (s.f.). Obtenido de http://heptagrama.com/deteccion-spam.htm Apache Lucene. (s.f.). Obtenido de http://lucene.apache.org/ Arreiza Londoño, R., & Henao Restrepo, L. M. (2000). Implicaciones extralingüísticas e intertextuales en la lectura. Colombia. Bases de Datos Textuales. (s.f.). Obtenido de http://institutos.filo.uba.ar/ravignani/biblioteca/bases-de-datos-en-texto-completo Bautista, Y., & Tuesta, R. (2004). Implementacion de un Spanish Query para una base de datos financiera. Trujillo: UNT. Carboneli, J. (1992). El procesamiento del lenguaje natural, tecnología en transición. Sevilla. Clasificador bayesiano. (s.f.). Obtenido de http://centrodeartigo.com/articuloseducativos/article_4294.html Computació, C. d. (s.f.). Lingüística Computacional. Barcelona. Conference on Intelligent Text Processing and Computational Linguistics. (s.f.). Obtenido de http://www.cicling.org/ampln/NLP.htm Diccionario de Informática y Tecnología. (s.f.). Obtenido de http://www.alegsa.com.ar/Dic/sms.php Drakos, N., & Moore, R. (2001). Computer Based Learning Unit. Sydney: Cambridge University Press. F. Gelbukh, A., N. Galicia Haro, S., & A. Bolshakov, I. (1998). Diccionario de Patrones de Manejo Sintactico para análisis de texto en español. Mexico D.F. Gelbukh, A., & Bolshakov, I. (2000). AVANCES Y PERSPECTIVAS DE PROCESAMIENTO AUTOMÁTICO DE LENGUAJE NATURAL. Mexico. Información Técnica GSMspain. (s.f.). Obtenido de http://www.gsmspain.com/info_tecnica/sms/pagina3.php Interactividad GSMspain. (s.f.). Obtenido de http://www.gsmspain.com/info_tecnica/sms/pagina1.php 41 L. Cruz, F., A. Troyano, J., Enríquez, F., & Ortega, J. (2008). Clasificación de documentos basada en la opinión: experimentos con un corpus de criticas de cina en español. Sevilla. Larios, E. (s.f.). Pontificia Universidad Católica del Perú. Obtenido de Trabajo Sistemas Operativos para Telecomunicaciones: http://blog.pucp.edu.pe/item/54702/introduccion-a-lastecnologias-de-reconocimiento-de-voz Ovalle, S. R. (2002). Clasificacion de frases del lenguaje natural usando redes neuronales recurrentes. Bogota. Real Academia Española. (s.f.). Obtenido de http://buscon.rae.es/drae/srv/search?id=boA0vUoQFDXX2LHCD71v Sosa, E. (s.f.). Procesamiento del lenguaje natural: revisión del estado actual, bases teóricas y aplicaciones . Obtenido de http://www.elprofesionaldelainformacion.com/contenidos/1997/enero/procesamiento_d el_lenguaje_natural_revisin_del_estado_actual_bases_tericas_y_aplicaciones_parte_i.ht ml Systran. (s.f.). Obtenido de http://www.systran.es/ Traductor Google. (s.f.). Obtenido de http://www.traductorgoogle.es/ Valles, M., & Pedraza, R. (2007). El Procesamiento del Lenguaje Natural en la Recuperación de Información Textual y áreas afines. 42