Buenas!
Antes de nada decir que gracias por leer tooodo lo que voy a exponer!
El problema que se me plantea es que tengo que implementar un programa traductor. Es decir un traductor de toda la vida. Se proporciona un diccionario estadistico, un diccionario de bigramas y un texto traducir.
El diccionario estadistico tiene el siguiente formato:
palabra traduccion probabilidad
Se interpreta como palabra traduccion de esa palabra y probabilidad de que esa sea la traduccion.
El diccionario de Bigrama tiene el mismo esquema pero en vez de ser una traduccion , es una pareja de palabras y la probabilidad de que vayas seguidas, por ejemplo:
La casa 1,000
Significa que la probabilidad de que La vaya con casa es de 1,0.
Como hay varias posibles traducciones hay un algoritmo voraz que nos da que palabra hay que traducir.
He conseguido que el programa traduzca, lo que pasa es que es lentiiiiisimo.
El algoritmo que habia seguido yo para resolverlo es:
Creo dos tablas hash
Leo del primer diccionario y voy metiendo en la tabla hash la palabra con una lista de sus traducciones.
Hago lo mismo con el segundo.
Por ulitmo abro el archivo a traducir y voy palabra por palabra traducciendola con el algoritmo voraz.
Lo mas logico es hacerlo de esta manera, pero el tiempo se me dispara mucho.
Alguien tiene una idea mejor?Espero alguna respuesta!
Graciassss!!!!
Antes de nada decir que gracias por leer tooodo lo que voy a exponer!
El problema que se me plantea es que tengo que implementar un programa traductor. Es decir un traductor de toda la vida. Se proporciona un diccionario estadistico, un diccionario de bigramas y un texto traducir.
El diccionario estadistico tiene el siguiente formato:
palabra traduccion probabilidad
Se interpreta como palabra traduccion de esa palabra y probabilidad de que esa sea la traduccion.
El diccionario de Bigrama tiene el mismo esquema pero en vez de ser una traduccion , es una pareja de palabras y la probabilidad de que vayas seguidas, por ejemplo:
La casa 1,000
Significa que la probabilidad de que La vaya con casa es de 1,0.
Como hay varias posibles traducciones hay un algoritmo voraz que nos da que palabra hay que traducir.
He conseguido que el programa traduzca, lo que pasa es que es lentiiiiisimo.
El algoritmo que habia seguido yo para resolverlo es:
Creo dos tablas hash
Leo del primer diccionario y voy metiendo en la tabla hash la palabra con una lista de sus traducciones.
Hago lo mismo con el segundo.
Por ulitmo abro el archivo a traducir y voy palabra por palabra traducciendola con el algoritmo voraz.
Lo mas logico es hacerlo de esta manera, pero el tiempo se me dispara mucho.
Alguien tiene una idea mejor?Espero alguna respuesta!
Graciassss!!!!
