Blogia
Sailor Worlds

La Máquina parlante

La Máquina parlante

Cuando hace unos años me propuse hacer un programa que conversara no era con la idea de inventar algo si no con la misma que me mueve a trastear con la música, el video y casi cualquier cosa. De hecho hoy en día prácticamente todo está hecho y la sabiduría reside en las págs de las webs para que los más sabios las encuentren a pocos clicks. Evidentemente esta perspectiva tiene sus puntos buenos pero también no tanto en el sentido en que el conocimiento desde abajo se va perdiendo. La rapidez y lo pragmático se impone al conocimiento a que se llegaba cuando se planteaba y resolvía desde abajo, pues es en el camino y en sus cruces donde ponemos a prueba y reafirmamos el conocimiento. Tan importante es a veces saber cómo, como el saber cómo no. Es verdad que no aprovechar las ventajas que ofrece esta era sería aún más de género bobo (que diría mi madre).

La idea como digo merecía la pena en sí. El reto que me planteaba era bastante grande para mis escasos conocimientos de programación y de la lengua española en cualquier caso inabarcable por la cantidad de matices que tiene. Después de unos años y comentando con mi colega Oscar, con quien disfruto a veces este lujo de conversaciones, se prodigaron un par de días intensos en los que hablamos seriamente del tema, tratando de concretar algo más. Digo hablamos seriamente porque el lápiz y papel estuvieron presentes y activos, con lo que se avanza bastante más que charlando.

Después de este par de sesiones tuvimos la oportunidad de juntarnos con el Pillo, para el que habría que empezar un escalón más arriba y ver qué había hecho ya (que sabio es mi amigo Pillo al que una vez más le abrumé con preguntas sobre la teoría de la relatividad y del caos..). A la vez que buscábamos algo parecido en la red salió el tema de las redes neuronales, en las cuales hay varios centros de procesamiento que evalúan y ponderan los resultados independientemente y entre ellas para llegar a un resultado final a veces sorprendente. El ejemplo que siempre sale cuando rozamos el tema es el de un programa que se hizo para diseñar circuitos. Se plantearon las reglas básicas para que el programa fuera capaz a través de la experiencia y probando millones de combinaciones de ir observando los resultados  e incluso de corregir sus reglas básicas. El programa diseñó algunos circuitos sorprendentes que los ingenieros no comprendían pero que funcionaban increíblemente bien.

Ese día no encontramos nada parecido en internet (otro día Oscar consiguió echar un vistazo a un par de ellos sacando una impresión regular). Yo he encontrado un par de ellos: El “IntelEnte” (que no conseguí descargar) y el “EnTLk” que se puede probar por 30 días y que merece la pena probar, al menos para situarnos. Después de probarlo creo que está muy bien, aunque supongo que aún nos queda mucho para superar el temido “Test de Turing”. Alan Turing es considerado padre de la AI (Inteligencia artificial) y allá por los cincuenta definió una prueba que medíría el grado de inteligencia de un ordenador(ya que en este proceso del habla se dan muchos aspectos que la pueden definir como veremos). Consistía básicamente en un juez, un ordenador, y otra persona. Se separaba en una habitación distinta al juez y éste formulaba preguntas. Al evaluar las respuestas escritas de ambos se definiría el grado de inteligencia de un ordenador. Me da la impresión que aún seguimos lejos para conseguirlo aunque un poquito más cerca. Las utilidades o el fin de un programa, si bien implican limitaciones en el mismo, reducen las posibilidades y complejidad exponencialmente. Aún así pensemos hoy en los traductores de idiomas que aún hoy no han conseguido suplantar al hombre. “Eliza” era el nombre de un programa con la función de simular a un psicoanalista. El  resultado, aunque admirable dista mucho de acercarse también al grado de inteligencia que tendría que tener para engañar a un hombre o simularlo.

   He visto algunos planteamientos en el  “EnTLk” que no había contemplado como la necesidad de traducir a su punto de vista que en un primer escalón evitaría de alguna manera. Segurísimo que hay ya muchos programas mas que resuelven la idea del conversador pero a qué nivel ?. Estamos habituados a utilidades relacionadas como los identificadores de voz (algo que es otro programa distinto que se podría añadir a posteriori), la corrección de palabras en procesamiento de textos o los reconocedores de palabras en los móviles, pero sin duda un programa que afronte una conversación tiene que ser algo más complejo.

Todos los elementos para que se haya una comunicación los tenemos en principio salvo el interés por tenerla/mantenerla. Imaginemos que alguien escribe “la casa es roja”. ¿Qué debería hacer el programa? ¿Contestar en relación al comentario, o bien no contestar, o bien cambiar de conversación? .También hace evidente la necesidad de que entienda (codifique) de alguna manera el mensaje recibido. ¿Qué es para él una “casa”? ¿Y “roja”? ¿Y “ser”?.

 

Para empezar debería analizar la información que recibe procesándola en dos grandes bloques, el sintáctico y el semántico ( si es que está ya todo inventado! )

Dentro del campo de las reglas para formular una oración o procesarla tendría incorporadas ya las conjugaciones por ejemplo, la necesidad de búsqueda de los distintos elementos de la frase y varios conceptos básicos que simularían la experiencia en un adulto o el ADN quizás. Dentro de este bloque estarían también las operaciones matemáticas por ejemplo. Convendremos también a que es una cuestión de palabras y relaciones entre ellas. Estas funciones ayudarían a identificar datos necesarios para la comprensión del mensaje, por lo que estará relacionado con el bloque de lo semántico. Son como las dos partes del cerebro con las distintas neuronas voy a aventurar la primera aproximación y voy a dividir las palabras en bloques según una idea:

 
Nombres (Pronombres),Sustantivos   El concepto,sujeto. La parte con más peso
 Verbos  Indican la acción a evaluar
 Adjetivos y adverbios  Dan colorido y determinación a veces
 Preposiciones,artículos determinativos,cojunciones  Juntan palabras. Dan información - peso
  

Aparte de las excepciones y reglas de cada grupo es interesante señalar dos cosas. La primera sería que las relaciones entre los distintos bloques expuestos tiene una dirección (el adjetivo añade al sustantivo en cuanto a significado quizás una determinación aunque en otros casos añade “sólo” (¡) matices). Podríamos definir esas flechas como las relaciones entre conceptos para ayudar con la parte del significado aunque habría que definir el significado en sí como la codificación de cada concepto en distintas variables que permitieran conseguir el entendimiento en sí. Esto nos lleva en primer lugar a las palabras en sí.

Cada una de ellas tiene significado propio y en unión con los demás elementos. Sólo habría que codificar todas las palabras en tantas variables como fueran necesarias para conseguir soluciones que serían procesadas a varios niveles o neuronas por seguir con el hilo. Para ello primeramente debemos tener un listado mínimo de palabras. Cuando empezamos a divagar sobre ello se ocurrieron varias líneas con respecto a las palabras y formación que no me resistiré a contar aunque se salgan algo de la línea principal.

Se nos ocurrieron varias formas de afrontar la creación de palabras, e incluso imaginamos un lenguaje de palabras posibles en plan Borges que no eran utilizadas mezclado todo en un sinfín de normas y conjeturas que resumiré en:

 
  • Junta todas las letras y las mezcla en todas las combinaciones posibles para formar palabra de hasta un total de 9 letras por ejemplo.

Realmente este problema se me planteó cuando hice un programa para desbloquear las claves de los archivos excel y curiosamente el otro día un amigo (juanma) me preguntó por algo así. No es más que una rutina que va probando combinaciones de letras a ver si cuela y si no la siguiente hasta tener éxito en el empeño. Pero, cuántas combinaciones de letras hay?. Depende en el caso del excel del número de variables que entren en juego. Es curioso comprobar como crecen exponencialmente hasta el hecho que un elemento de más o de menos puede significar mucho. En el caso del desprotector haríamos así las cuentas:

 COMBINACIONES POSIBLES
N LetrasMinúsculas+Mayúsculas
          1                                     27                                   54  
          2                                   729                              2.916  
          3                              19.683                           157.464  
          4                             531.441                        8.503.056   
          5                        14.348.907                     459.165.024  
          6                      387.420.489                24.794.911.296  
          7                  10.460.353.203            1.338.925.209.984  
          8                282.429.536.481          72.301.961.339.136  
          9             7.625.597.484.987     3.904.305.912.313.340  

COMBINACIONES POSIBLES
+Números+Acentos
                                  64                                     74  
                             4.096                                5.476  
                          262.144                             405.224  
                     16.777.216                        29.986.576  
                 1.073.741.824                    2.219.006.624  
               68.719.476.736                164.206.490.176  
          4.398.046.511.104            12.151.280.273.024  
       281.474.976.710.656          899.194.740.203.776  
  18.014.398.509.482.000     66.540.410.775.079.400  

En otras palabras una burrada de combinaciones, que dependiendo de la velocidad a que se procese daría un resultado siempre muy alto. En mi P3 según mis cálculos estaríamos hablando de varios años en casos de 6 letras creo recordar. Siempre está la posibilidad de fragmentar la búsqueda en varios ordenadores, pero aún así. Nos podemos hacer una idea de la importancia reañadir un número a una clave o un carácter raro.

  • Junta grupos de palabras posibles, monemas o sílabas lo que hace disminuir las combinaciones frente a las palabras. Nos pareció que la mejor opción de las dos  sería la de las sílabas en cuanto a juntar combinaciones, definibles mediante la pura observación. Así definimos reglas para sílabas de hasta 4 letras , planteando los distintos escenarios de una, dos, tres, cuatro letras; vocal + vocal+consonante. Aunque bastantes opciones se puede acabar reduciendo bastante. Cuando corrimos el programa nos quedamos con un total de 1849 sílabas posibles según nuestras reglas, si bien se podía hacer una criba que intuitivamente debería rondar las 1200 sílabas, ya que se podían quitar bastantes más. Un problema añadido era que para algunas combinaciones de palabras como “OC”, si bien te me ocurren “Octeto” u “Octavo” y 50 más añadirán muchísimas más combinaciones absurdas que válidas, lo cual hace inmanejable la propia base de datos aparte de su inutilidad para nuestro propósito. Se puede ver las diferencias entre las combinaciones que saldrían de sólo palabras con las de sílabas:
N SílabasN combinacionesComparación letras (9)%
          1                                1.200     
          2                          1.440.000     
          3                        38.880.000     
          4                    1.049.760.000     
          5                  28.343.520.000   -        7.597.253.964.987    - 99,63 % menos
  • Para la cuestión de los monemas (tb sílabas) pero también para las palabras en sí sería un programa que a partir de págs de internet o bien documentos que se le faciliten pudiera sacar y descomponer las palabras. Con esto tendríamos bastantes menos seguro y desde luego es lo que más sentido tiene. Buscando información pudimos leer sobre un programa que habían utilizado para hacer un diccionario de castellano en todo el mundo. Había estado durante 10 años alimentándose de págs de internet, TV , conferencias, anuncios y folletos y en fin de casi cualquier fuente de palabras. La edición que publicaban era de creo recordar 3.000.000 habiendo resgintrido términos de poca aparición en esos años. Como cosa curiosa advertía el hecho que una palabra que hace 10 años no tenía uso prácticamente, ahora estaría quizás incluida en dicho diccionario y al revés. El ejemplo que se citaba era el término “talibán”.

Una vez resuelta la fuente de las palabras deberíamos de retomar el tema del significado de un concepto en sí.  Cada palabra debe tener varias clasificaciones y dentro de cada una varias variables que ayuden a ponderar decisiones pero cuántas. Ya hemos hecho alguna clasificación general y ahora se trataría de acercarse un poco más al fondo. Cada ”neurona” luego actuaría con los valores de cada término. Podríamos decir que una palabra que tuviera toda la información en las variables debería estar definida y tener un sentido. Después y según la experiencia adquirida se irían afinando los parámetros. Esto establecería palabras de varios niveles según la información contenida o el sentido que se le pudiera dar por la información de que dispone, y es la búsqueda de esta información una de las razones que debe seguir el programa para intentar mejorar, o para en otras palabras tener un primer interés en que la comunicación se produzca. Por seguir razonando en este sentido, pudiéramos decir que el programa debe tener una especie de memoria de sinsentidos sobre la que puede volver y con objeto de clarificar conceptos y relaciones o conflictos entre ellos. Pero sigamos matizando en los conceptos y las variables que deberían componer un significado claro de por sí. Podríamos coger por ejemplo los sustantivos y empezar la clasificación a ver qué tal:

Sustantivos   
 Contador 
NombreReferenteUsoFrecuencia 
Para mí   
Colectivo   
Para otro   
   

 Nivel emocional/Connotación 
 Interesante  Práctico  Bonito  Abstracto/Incontable 
LugarPosesiónReflexivo Grande 
 Valor económico  Número  Slang  significado propio 
 Acción  Reacción  Sinónimo  Antónimo 
 Esfuerzo  Movimiento  Contenible  Género 

Una parte importante podría ser el referente, o bien para quién tiene sentido una información. No significa lo mismo para mí que para ti y seguramente cuando sea así podamos hablar de matices dentro del concepto. Así cada palabra tendría tres niveles de significado y uno sólo según la ponderación que se haga. Por otra parte ayudaría a sopesar y comparar el concepto lo cual siempre viene bien. Del contador nos ocuparemos en seguida, pero baste por ahora decir que tiene mucho que ver con la memoria. En cuanto al nivel emocional y de significado decir que se pueden encontrar varios más y que muchos vendrán dados por la necesidad a la hora de ir codificando las distintas palabras y posibilidades. Sería la hora de ir viendo las posibilidades y que implican cada una.

El tema de la memoria merece ser tratado también aparte ya que mediante ella vamos a dotar de relaciones a los conceptos. Ya hemos hablado en el principio de las relaciones entre conceptos y como tenían una dirección. Este vector resultante de unir varios conceptos iría quedando en un rango de memoria con objeto de no perder la pista. Así hablaríamos de relaciones con distintas ponderaciones según se ha procesado en el momento con ellas y por tanto un posible significado con una fecha concreta que podría formar parte de la inconsciencia, del prejuicio a veces o estereotipos mal formados. La  estructura del vector de memoria sería un registro que almacenaría la id de concepto, la fecha, la dirección de la frase almacenada (otra porción de memoria en otro rango en el que permanecería hasta haber despejado todas las dudas  –mencionado tb anteriormente-) y las distintas direcciones (relaciones ) a conceptos con su signo correspondiente de dirección y referidas a las variables que hayamos definido de cada concepto. Debería ser capaz también en cada una de las valoraciones de modificar los parámetros de medición por medio de la experiencia, con lo que aparte de las preguntas dirigidas a esclarecer hechos o relaciones, estableceríamos también un proceso paralelo que  fuera capaz de actualizar datos en la memoria aunque fuera mínimamente y matizando los casos.

Otra de las partes importantes a considerar sería con quién se está hablando. No es lo mismo hablar con un humano, que sea a través de págs de internet o con otro humano distinto. Hace pensar sobre la necesidad de crear distintos usuarios que podrían estar codificados también en variables tales como fiabilidad, contesta, nivel de ayuda…

Faltan como escollos bastantes temas más. Fenómenos como la Polisemia / Homonimia (palabras con más de un significado –cabo; de ejército o de vela- y palabras que suenan igual con diferente significado –vino; de venir o de beber- respectivamente). La metáfora (es una joya ; vale mucho) y la metonimia (quiero otra copa-más bebida) por no hablar de otras muchas figuras literarias o bien de las frases hechas, para las cuales habría que tener alguna codificación y almacenaje.

Por último hablar de alguna utilidad curiosa que estaría bien que pudiera hacer un programa de este tipo:

  • Dándole a procesar un libro podría hacer resúmenes, o al ser preguntado podría haber entendido algo…(capacidad relacional de un nivel impensable)
  • Podría almacenar los datos importantes de una historia y responder a preguntas con objeto de intentar averiwar la historia que esconde, como el juego de los chavales en campamentos.
  • Uno de los que más me gustaría hacer sería uno que hiciera versos…
 

En fin, mi impresión es que nos queda un montón de detalles que plantear pero por algo se empieza siempre. Igual estas líneas sirven para plantear más cuestiones.

10 comentarios

oscar -

Varias veces en la historia se dijo, desde la Iglesia hasta la propia ciencia, esa frase: "esto es imposible, no puede hacerse o no puede ser". Y sin embargo, frente a todos esos pronósticos, hoy los aviones vuelan, la Tierra no es plana, tiene más de 6000 años, etc.
"¿Podrán las máquinas pensar algún día?" es una pregunta parecida a "¿Puede volar un objeto más pesado que el aire?". A la segunda respondieron muchos que no con vehemencia hace cerca de un siglo, creo. Y ya ves ahora el Airbus...
La ley de Moore dice que la electrónica nos va a sorprender cada año a un ritmo creciente, y volviendo la vista atrás, es atrevido decir que algo que dependa de ella sea imposible en un futuro más o menos cercano.
Da la casualidad que volví a ver hace poco la película Blade Runner, que escenifica ese mundo futuro en el que una máquina se pregunta "¿quién soy?", y de forma entrevelada pregunta al espectador (justo al final) si acaso nosotros mismos no somos máquinas biológicas (¡la he visto otras veces y no me había dado cuenta, mira que soy buuurro!) (perdón, Platero ). Los mecanismos que hacen que lata el corazón son eléctromecánicos (todas las contracciones musculares), la calidad del pensamiento se ve afectada por los niveles de dopamina, la captación de luz por los conos y bastoncillos de los ojos son procesos también físicos... aunque va quedando menos sitio para el alma, tampoco hay que negarla. Confío en que la electrónica y la mecánica nos sorprenderán algún día porque nosotros mismos funcionamos así, aunque nos duela reconocerlo.
Aún así, tu duda me hace dudar a mí también, Marta...
Pero dudar es bueno, así que ¡ea!: A seguir dudando.

macarro -

Desde luego sería pretencioso que te emocionara aunque hablo más bien de la curiosidad de que las generara según patrones de rimas y estructuras a ver que salía de ello.

marta -

No es demasiado pretencioso hacer poesía con una maquina parlante? podrás
conseguir juntar palabras e incluso hacer rimas perfectas, pero no creo que
de ellas brote ningun ritmo ni sentimiento y lo que sobre todo dudo es que
puedan emocionarme.

xguardi -

Muchachos, conoceis el proyecto AliceBot y sus secuelas?
http://www.alicebot.org/
Incluso tiene un lenguage (AIML) para generar los bancos de conocimento. Igual puede ser de ayuda.
Ta luego...

X.

pillo -

Hola,
ayer me contaron una anecdota que viene al caso. La hermana de una amiga habia vuelto de UK con su hijo de 9 o 10 años donde habia estado desde que nacio el hijo. O sea que el niño esta aprendiendo español ahora, sobre todo los tacos. El otro dia, en el parque, vino a su madre y le pregunta: “ese niño me ha dicho que soy estupido, ¿eso es bueno o malo?” .Pobrecillo!

Con esto quiero decir que debemos observar, pensar e imitar el aprendizaje del lenguaje de los niños. Al principio el vocabulario es muy reducido, asi como sus reglas y las relaciones entre conceptos y palabras (anecdota). Estas relaciones se van estableciendo sobre la marcha (redes neuronales) y a base de preguntas. Tras la respuesta de la madre el niño cataloga “estupido” como malo pero el resto de matices los ira adquiriendo. Es decir, el resto de las coordenadas asociadas a la palabra “estupido” valen 0 excepto en el eje “bueno-malo”. Poco a poco podria ir preguntando otras preguntas para afinar el concepto y finalmente el vector “estupido” tendria coordenadas muy similares a “tonto”, “idiota”, etc..

Paralelo a esta clasificacion estaria lo que llamas relaciones conceptos-palabras y memoria. Entiendo que lo que quieres es asociar a cada palabra nueva un vector que contenga el concepto, la fecha, la dirección de la frase almacenada, etc...Este tipo de vector (lo llamare relacional) es diferente del del anterior ejemplo. En el caso de “estupido” cada coordenada es mas bien numerica y da un valor cuantitativo (¿estupido es mas malo que tonto?) pero en este vector relacional cada “eje” de ese vector no necesariamente es numerico (la fecha o la frase donde esta englobado por ejemplo). De forma que a esta segunda asignacion de vector, mas relacional que clasificatoria, la haria con una base de datos relacional.

Resumiendo, mi idea de la cosa es mas bien hacer un nucleo muy sencillo de palabras y de relaciones junto a unas reglas que permitan a la maquina preguntar de forma que la respuesta que demos le sirva para mejorar sus bases de datos progresivamente. Es decir que aprenda, externamente, igual que los niños. Internamente, es otro cantar y no tiene pq ser igual, solo que funcione. Los elementos que yo concretaria para empezar a discutirlo son; una primera lista o clasificacion sintatica en nombres, verbos, adjetivos,....Una segunda calsificacion semantica o cuantitativa por propiedades o cualidades (estupido=malo al 90%, pero que utilizamos para clasificar malo?) aunque no tengo muy claro si puede hacerse. Ademas tenemos un conjunto de reglas muy simples de sintaxis. Y por ultimo una base de datos relacional que ayuda a afinar el sentido de la palabra. Esta base de datos seguramente toma prestada parte de sus coordenadas de la segunda clasificacion semantica o pueden refundirse.

Ahora bien con estos elementos tan rigidos es dificil hacer versos donde los significados pierden su sentido y saltan de unos ejes a otros por arte de magia. Las asociaciones palabras-conceptos son etereas y elasticas. Pero ya lo pensaremos...

macarro -

Hola Pillo;

Pues en cuanto a la línea de la formación de palabras y sílabas que en el artíclo ya digo que me apartaba de la línea principal e importante unos instantes para comentar cosas a ese respecto a las que no podía resistirme. Tienes razón en que no son importantes en nuestro propósito y el principio de esto pasaría por ese listado de palabras o incluso un primer programita (que es muy facilito de hacer) que se ocupe de leer las págs de la red y analizar palabras con que engorde la base de datos.
Me gustaría que valoraras la parte de las relaciones entre conceptos y palabras como intento explicar cuando hablo de la memoria,es decir, esa parte en que se van creando direcciones de relación con distintos pesos que se van almacenando.
De la clasificación de adjetivos en varios ejes me parece bastante importante.
El problema que sigo viendo es que parece bastante denso de estructurar aunque finito y siempre me ha gustado más la parte de las conexiones "neuronales" que interpretan y comparten resultados, valoran y afinan según el resultado. Esto último parece estar en un segundo o quinto nivel al que no sé si llegaríamos. Oscar tenía en proyecto otro programa que experimentaría en otro sentido distinto y que cuanto menos parece muy curioso. Espero que lo publique, ya que me dijo que antes quería hacerlo y ver qué resultaba...

pillo -

Perdon por el grito...es que perdi parte de lo que habia escrito. A ver si esta es la buena..prosigo
(de orden;el 1 es menor que el 2, el 2 menor que 3, etc.., de formacion de otros numeros, nadie nos ha enseñado a contar hasta el 2347 pero sabemos como llegar a el) y por ultimo una serie de opraciones entre ellos. Partiendo de la primera clasificacion en un nivel sintactico, hay que clasificarlas mas en base a su significado y definir las relaciones entre las palabras. La segunda clasificacion, que es la que mas compleja me parece, seria algo asi como imaginar que los adjetivos solo tuvieran matices de tamaño, color y forma; o sea tres ejes. Y cada adjetivo corresponderia a un punto en esos ejes. Para los adjetivos muy similares habria un apelotonamiento de puntos y adjetivos contrarios estarian opuestos.

Espero haber captado el espiritu de la idea y haber dado ideas para encauzar los proximos pasos

pillo -

A VER SI AUMENTAMOS EL TAMAÑO DE LOS COMENTARIOS!!
prosigo:
(de orden;el 1 es menor que el 2, el 2

pillo -

Hola a todos. Efectivamente es un rollo muy denso y quisiera antes de seguir que se aclarasen algunos temas. Por ejemplo me surge una duda razonable que mas que duda es comentario; creo que hay dos grandes lineas diferentes en el discurso inicial que habria que separar (segun mi criterio) o por lo menos que Bern aclarase.
Una es la formacion de un banco de datos con las silabas, cuyo objetivo no tengo nada claro y que discutire despues. Y otra mucho mas jugosa; partiendo de un diccionario de palabras en un idioma (que de hecho podria ser inventado y esto enlaza con la primera linea anterior que decia) hacer una clasificacion segun un numero de parametros de froma que sistematice su uso desde el punto de vista de la maquina. Ademas de esta clasificacion se requieren unas reglas relacionales entre ellas.
Para no liar mucho la discusion mi primera objeccion sobre lo de las silabas esta tanto en el metodo como en la utilidad. Si se va a utilizar un idioma real y conocido (para nosotros es una ventaja pq no tenemos que aprender otro PERO no para la maquina que es como un niño pequeño y le da igual aprender español o chino) el paso de formacion de silabas es innecesario. ¿No tenemos las palabras ya hechas tras siglos de evolucion? (como inicio propongo utilizar las que hay en un fichero de texto que te paso luego). En cuanto al metodo de combinar todas las letras en grupos de n y deshechar aquellas combinaciones con las que no hay ninguna o pocas palabras tampoco me mola pq estas presuponiendo que el idioma ya existe. En resumen, si se utiliza un idioma real (y supongo que sera el castellano) ¿para que el lio de las silabas si ya tenemos las palabras? y si se inventa un idioma nuevo (espero que no) ¿que criterio utilizas para deshechar silabas?

Respecto a la segunda linea, y unica util y con futuro, para concretar y avanzar resumire como he entendido el tema. Partimos de una lista inicial de palabras. Las mas basicas y utilizadas en el dia a dia no creo que sean mas de 1000 o 2000. El segundo paso es clasificarlas desde un punto de vista sintactico. Como sustantivos, adjetivos, verbos, adverbios, etc...y dentro de cada una de estas cajas grandes otra clasificacion atendiendo a su semantica. El nivel morfologico no lo veo importante de la misma forma que puedes hacerte entender en un ingles rudimentario en plan indio. Se pierden matices pero se consigue expresar lo importante. Los detalles como el tiempo verbal, el genero o numero, o el grado de precision del adjetivo usado se pueden ir mejorando con el aprendizaje. Pq la maquina debe aprender y cada error cometido se le debe corregir y esas correcciones internamente deben actuar de una forma exactamente igual a como actuan en nosotros. Van afinando la precision de las expresiones. Por ultimo, aunque en realidad es en paralelo, hay que definir de alguna manera que nosotros ya tenemos completamente asimilada, las relaciones entre esos objetos que hemos llamado palabras.
Y para ser constructivo contare como haria yo todo esto. En el fondo es muy parecido a la matematicas. Se definen primero los elementos de la teoria (los numeros por ejemplo, que entendemos todos) , a continuacion sus propiedades o relaciones (de orden;el 1 es menor que el 2, el 2

macarro -

Después de releerlo (lo cual admito no haber hecho antes) me parece un rollo tremendo