![]() |
Encima luego de nacer y antes de poder decir palabra alguna, me llevaron a vivir en Alemania. Ah! me olvidaba contarles que después de llorar un poco, llenar infinidad de pañales en varios idiomas, mis primeras palabras fueron.. todas preguntas. Me cuentan que desde muy chico le rompí la paciencia a todo el mundo, matándolos a preguntas sin piedad. Dicen que me calmé algo cuando al aprender a leer, (lo hice yo solo..), descubrí que algunas respuestas estaban como dentro de los libros. Así fue que me puse a estudiar (tal vez algo de más) y por sobre todo me puse a hacer las cosas que me gustan, quizá demasiadas, y bien!. Hoy mi humanidad ronda los 1.91m y cerca de 100kg (IM < 25).
![]() ![]() ![]() Cabe destacar que todo lo publicado fue implementado y está funcionando en diversos lados, lo interesante es que impuse metas "normales" de cosas que creo necesarias, según mi criterio y del desarrollo de las mismas, salieron varios trabajos originales (un tanto raro no?) Comencé a publicar en el año 2006 primero en congresos locales lasta lograr trascender fronteras con una publicación de junio del 2010 fue aceptada en un congreso Lisboa, Europa, más precisamente en el INSTICC2010. Luego en el 2011 presenté dos trabajos en el Congreso Internacional ProLen "Procesamiento de Lenguaje", que se celebró ese año en Buenos Aires, Argentina.
Aprendí a programar desde los 16 años en casi todos los lenguajes de computación a mi alcance, arrancando de los básicos como Assembler incipiente del intel 4004, el SC/MP, lueog intel 4040 y 8080, Zilog Z80 / intel 8085 / motorola 6800 / 6809 / Rockwell 6502 / para leugo llegar al x86. Programé lueo en lenguajes de alto nivel como Pascal, C, C++, Java, y hoy uso C# (.NET), hice algo en JavaScript y uso Python para enseñar Inteligencia Artificial. Actualmente me siento cómodo programando en Java y C# bajo entorno .NET (Visual Studio). También usé Eclispe para probar cosas en Java, Java2ME y usé JavaCreator 2.5 como entorno de pruebas y tracing, programé sistemas complejos usando Servlets en Contenedores Java, NetBeans, y otras excentricidades, para no quedarme sin saber lo último. Me interesa la filosofía Open Source pero no soy devoto y muchos trabajos los mandé "free" a la web, y como nadie paga por código que se puede bajar libremente y modificar a voluntad, finalmente me incliné por el tema de licencias que me dan hoy de comer. Me apasionan la criptografía y la seguridad informática, y las cosas más raras como los compiladores de lenguajes nuevos (de hecho escribí uno.. y lo más sorprendente para mí es que funciona..) Investigo alctualmente los mecanismos para crear software automáticamente, como compiladores y lenguajes avanzados, quiero crear algo que quizá aprenda a plantear y resolver cosas por sí mismo, es decir autoprogramarse (y.. en eso estoy) tipo que entre una fórmula hablada y el tipo programe eso. Hace un tiempo, haciendo introspección, (es más barato que el psicoanálisis... posta!) descubrí que me gusta escribir (y.. vaya que me gusta.. con este interminable chorizo de página...) y entonces, para dar rienda suelta a la pluma, la dejé volar (literalmente) en un taller de Escritura Literaria con la Lic. Bea Lunazzi, una aguda crítica literaria y excelente poetisa. Hace poco recopilé mis cuentos, poesías e historias y me sorprendí por su número, lo cual me incita a publicarlos, cosa que aún no he decidido, dado que siento que estoy jugando a ser un escritor de verdad.. o tal vez de ficción?, bueh! como quiera que me salga, hago ficción, SciFi, cuentos fantásticos, alguno policial y de terror. ![]()
Algo de eso se puede ver en el sitio oficial, aunque por decirlo suavemente, es demasiado técnico, lo único entendible fácilmente está en la parte de Servicios, hoy está como antecedente y me dedico a Inteligencia Artificial, y como es tan complicado no hice sitio web, lo ofrezco directamente: www.pandorabox.com.ar ![]() Co-fundé y co-dirigí (1988/2001), una Agencia de Publicidad Mercurio Arte y Gráfica ![]() Desarrollé y diseñé Micrófonos Profesionales a condensador entre el 2000 y el 2004 en USA www.theaudio.com ![]() En el año 2009 junto a un grupo de banqueros, fundamos la empresa Moneybox s.a., de la cual soy presidente. Esta Empresa está dedicada a transferencias de dinero mediante tecnología inteligente usando dispositivos móviles (celulares), entre otros. Va dirigida al segmento de usuarios que tienen un celular y no desen llevar tantas tarjetas de crédito y dinero en efectivo para pagar un taxi, un delivery o un kiosco. Entre los socios, contamos con el dr. Horacio Liendo, un prestigioso un ex-presidente del Banco Central de la República Argentina. En el año 2015, con un grupo de conocidos fundamos IAAR, que son las siglas de Inteligencia Artificial Argentina, con ellos organizamos Meetups, cursos y últimamente nos han convocado desde Gobierno y Ministerio de Educación como apoyo desde la sociedad civil para fomentar la Inteligencia Artificial. Actualmente doy charlas por todos lados, soy como un evangelizador de Inteligencia Artificial, lo cual me llevó a dar cursos desde a simples mortales hasta graduados y grandes empresas.
Estos sistemas están funcionando actualmente, en Argentina ![]() ![]() ![]() ![]() ![]() El sistema está funcionando en Argentina desde nov'2007, es usable desde cualquier teléfono móvil y no requiere suscripción, solo cobra un importe como cuando se manda un mensajito SMS a una radio (un poco mas que un mensaje de persona a persona), Esta funcionado con los operadores Claro, Personal, Nextel y Movistar; y desde oct'2005 funciona en Ecuador en exclusiva para Movistar. Explicación detallada. ![]()
![]() 1º Desafío Aprender a Leer Que una máquina pueda leer texto natural (mente?) y procesarlo conforme a su contenido, significado o sintaxis (no solo guardarlo en una base de datos o imprimirlo) se denomina Procesamiento de Lenguaje Natural (en inglés Natural Language Processing o NLP) esto que parece tan simple y obvio, como lo es el texto natural en un idioma en cual todos hablamos y escribimos naturalmente, no es así. Esto requirío el tener que adentrarme en esto y aprender esta rama un tanto extraña de las ciencias llamadas de "borde" pues no son ni lingüística ni computación puras, sino una maquiavélica combinación difícil de abordar. Allí me desayuné que no es nada fácil hacer cosas con palabras (textos). En computación los textos son de las entidades más básicas, representadas como cadenas "strings" de caracteres, que a su vez son representados por códigos numéricos (ASCII y otros) luego no tienen un tratamiento funcional, lo únco que hay nativamente es poder ordenarlas por orden alfabético, cortarlas y concatenarlas, contar las letras y compararlas. (y con bastantes bemoles). Inicialmente un incauto (como lo fui yo) pensaría que todo se soluciona simplemente yendo a un diccionario muy lindo y ordenadito.. Suponiendo que exista,.¿que se halla allí?.. Rta.: más palabras, tal vez códigos o clasificaciones de todo tipo y sin un mecanismo riguroso ni estándar (la mayoría en palabras y abreviaturas), el tema central es ¿que hacer con eso? Como si esto fuese poco, los diccionarios habituales, (incuso los electrónicos) solo tienen las formas raíz o canónicas (en castellano y en otros idiomas muy flexivos, los diccionarios solo contienen los verbos en infinitivo, los sustantivos y adjetivos en singular y masculino, etc.) y casi nada de palabras flexionadas: verbos conjugados, adjetivos y sustantivos en plural, femenino, peyorativo o diminutivos y sus combinaciones válidas. En ejemplo es el término camionetitas, éstas palabras y otras flexionadas, son muy frecuentemente usadas en el habla cotidiana, pero conforman la pesadilla del profesional de NLP, pues no existen en diccionarios de ningún tipo conocido, salvo en bases de datos morfológicas que son rarezas universitarias y no salen de allí. Además estos diccionarios serían tan extensos que ocuparían decenas de tomos, o tal vez toda una biblioteca. Esto es por que su número es una combinación de hasta decenas de conjugaciones verbales con miles de prefijos y sufijos de variado origen, combinables de múltiples maneras, su número es de varios cientos de millones y resulta inmanejable como fuente de información e inviable de administrar. Además, para complicar más aún el tratamiento, el ser humano crea constantemente nuevos términos usando la llamada parasíntesis (uniendo múltiples prefijos, infijos, sufijos con raíces para crear términos, basados en la semántica o significado de sus partes y una necesidad concreta de nombrar algo nuevo) Esto es usual en medicina y en ciencias, al crear lso nombres de patologías, enfermedades, nombres de especies, etc. allí se usan recursos latinos mezclados con nombres propios honrando los descubridores. Esta tarea se llama lematización (hallar el lema o raíz) morfosintáctica (pues halla las partes morfológicas) robusta (pues tolera errores comunes) y luego determina u obtiene la función sintáctica de la palabra, si es verbo, sustantivo, adjetivo, adverbio, artículo, pronombre, determinante, preposición, fecha, hora, nombre propio y/o entidad nombrada (NE: Named Entity), si es una abreviatura y de qué, si es un nexo, puntuación, unidad física, un número una fórmula matemática o de química y/o ingeniería; además de algunas cosas más que hacemos cuando leemos un texto. Todo esto no es para nada trivial ni unívoco y requiere de una cantidad importante de cálculo y proceso cuidadoso, mucho del cual no hay métodos famosos, conocidos ni estándard y las opciones se multiplican peligrosamente. Estos problemas caen fácilmente en categorías de resolución conocidas como de tiempo exponencial, NP-duros o resoluble con una cantidad combinatoria de pasos, lo cual no puede calcularse en un tiempo polinomial, es la base definida para los problemas llamados irresolubles, hasta tanto alguien aporte una solución. Esto es suficiente desafío para enloquecer a muchos y animar a los más arriesgados (como yo). ver avances
![]() 4º Desafío Entender lo Escrito El tema era lograr que una máquina entienda texto (Comprensión Artificial / Machine Understanding). Para entender un lenguaje es necesario primeramente definir o adoptar un modelo de representación de conocimiento y procesamiento de ideas o pensamiento, me basé en uno de los mas parecidos al pensamiento humano que es predicado por la lengua como panacea: las partes de la oración. Como nosotros usamos una gramática para hablar y formar las oraciones en forma no caprichosa, sino medianamente entendible, decidí usar la artillería del conocimiento lingüístico para atacar este frente, lo mas apropiado (estimé) era un Parser / Compilador. La idea subyacente es que el lenguaje escrito es una manera de representar las ideas, y por cierto éstas se encuentran ciertamente dentro del lenguaje escrito; la contracara es que éste es interpretado hasta ahora solamente por las intrincadas reglas de comprensión humanas, las cuales no son para nada obvias ni programables. Teniendo en cuenta además que la gramática de cada lengua es una manera de sistematizar la comprensión y es usada para enseñar la lengua misma, es que parti de esto conceptos como piedra fundamental para esta etapa. Lo más parecido a hallar la estructura de la oración es definir la gramática española en términos cuasi-matemáticos-lógicos gracias a Chompsky, Backus y Naurus y proceder con las herramientas indicadas en computación para lidiar con gramáticas que son los compiladores y parsers. ver avances ![]() 5º Desafío Deducir cosas Simples Lograr que este ente pueda razonar básicamente, es decir deducir cosas lógicas, además de hacer cálculos matemáticos y lógicos, basados en evidencias directas obtenidas a partir del texto de consulta. A lo que apunto es que se le pregunte: ¿cuanto son un prodzik un gato y dos prodziks? y conteste simplemente esto: tres prodziks y un gato ¿que más? (ademas este 'ente', no tiene la más remota idea de lo que es un prodzik, pero infirió por la forma de pregunta que son enumerables) (adelanto: esto ya está funcionando... y no está pre-programando, lo deduce compilando la pregunta e introduciendola en el run-time cognitivo.) ver avances ![]() 6º Desafío Incorporar Conocimientos En esta etapa, lo importante es crear un sistema del tipo enciclopédico: con conocimiento de "base" como ciencias, química, historia, física, matemáticas, y demás. Para el caso de química y bioquímica, es interesante poder incorporar nombres de elementos y productos químicos industiales, médicos, farmacéuticos, nombres de enfermedades, patologías, diccionarios especializados, y toda la ciencia junta. Para ingeniería introduje todas las fórmulas de las unidades tanto internacionales como las demás, conformando un paquete importante con capacidad de hacer cálculo entre unidades y conversiones automáticas. Lo importante no es cuanto sin como hacerlo y crear un estándar para que alguien mas pueda agregar conocimiento usable por un ente inteligente como el que se está creando. avances ![]() 7º Desafío Dialogar con Humanos El desafío es lograr que este ente pueda interpretar texto libre y hacer algo con esto, contestando a un humano, luego de un análisis gramatical y semántico, tal vez entrar en un sistema de lógica de razonamiento simple, con reglas y usando información previamente obtenida o almacenada. (se lo suele llamar sistema experto) con la enorme diferencia que se le pude interrogar en lenguaje natural, pudiendo deducir datos basados en reglas a partir de datos de entrada "dichos" mediante texto. La principal motivación fue la de mejorar relaciones con los sistemas de información, tornándolos más humanos y amenos,. Sin duda es mas fácil preguntar a un 'personaje' inteligente del mismo modo que a una persona coloquialmente, sin tener que aprender compulsivamente mecanismos como ser sintaxis lógica para buscadores u otros lenguajes como SQL, etc.. ver avances
Conclusión En definitiva éste o sus partes constitutivas, serán mi granito de arena de aporte al conocimiento e inteligencia de la humanidad ¿o tal vez sea el nacimiento de una nueva forma de inteligencia? - Una que un día nos vea como nosotros vemos hoy a las amebas e insectos, (especies emparentadas de las que tenemos ancestros comunes y ADN).... El averiguar como hacerlo, ciertamente es apasionante y en eso estoy.. pavimentando el camino! ¿el resultado?... - no lo sé.. pero ciertamente el tiempo nos lo dirá.. - O tal vez un día este ente mismo abra la Caja de Pandora..
Nota: Todo lo comentado como avances, está cristalizado mediante sistemas, con librerías y utilitarios programados bajo .NET usando C#. El proyecto, comenzado en el 2005 ya en 2017 contaba cerca de 650 mil líneas de programación distribuidas entre decenas de módulos y bibliotecas funcionales. Construimos las necesarias utilidades para mantenimiento
y creación de los diccionarios flexivos. Tenemos lo necesari para construir sistemas de Diálogo muy superiores a los conocidos ChatBots. Poseemos los recursos lingüísticos para
procesar texto en forma robusta, incluyendo un corrector fonético-ortográfico, que entiende españól como si fuese un humano, "entendiendo neologismos parasintéticos que no están en diccionario alguno" que reconoce más de 300 millones de palabras, contando con 115k lemas soldados con 5 mil reglas morfológicas, para el español. También comprende inglés, con 56k
lemas y todas sus (muy pocas ~200) reglas morfológicas. Se recabaron a su vez 35.000 nombres propios entre español e
inglés, y aprox. 14.000 locuciones entre españolas,
argentinas y lunfardas, 970 nombres de unidades y monedas, 6 mil abreviaturas, 240 fórmulas químicas de los productos más comunes, entre otras muchas cosas.
Esta página fue vista por visitantes diferentes desde principios del año 2005 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||