El documento resume los avances realizados en un proyecto de traducción automática entre inglés y español. El equipo ha aprendido Python y Django para crear una página web con el traductor. También han estudiado técnicas como modelos basados en palabras y frases. Aún deben aprender más técnicas como modelos de lenguaje antes de programar el traductor.
2. RESUMEN
DEL PROYECTO:
Nuestro proyecto consiste en un pequeño
traductor (Machine translation) que permita
traducir pequeñas frases de un idioma a otro
(inglés – español).
Cambios:
El traductor lo crearemos para que funcione en
una página web.
3. AVANCES:
Lo primero fue aprender python porque no todos en el equipo
estamos familiarizados con ese lenguaje y conocer algunas
funciones de NTLK como
Tokenization, Stopwords, Stemming, Lemmatizing entre otras
que nos ayudaron a comprender mejor la Lingüística
Computacional.
Conocer el framework web Django para crear el traductor en
una página web. Además de conocer algunas técnicas que se
utilizan en los traductores como :
Word-Based Models.
Phrase-Based Models.
Decoding.
4. Hemos agregado a los recursos un libro y tutoriales acerca de
Machine Translation con los que hemos podido conocer mejor
el funcionamiento de un traductor.
Además de un pequeño libro acerca de Django un framework
que nos permitirá crear el traductor en una pagina web ya que
Django esta diseñado principalmente para hacer más fácil el
desarrollo de una aplicación web utilizando el patrón de
Modelo Vista Controlador (MVC).
5. Todavía nos falta conocer algunas técnicas mas que utilizan los
traductores como Language Models, Evaluation Discriminative
Training, Integrating Linguistic Information, Tree-Based Models
entre otras que son importantes para poder empezar a
programar y traducir pequeñas frases.
Hasta ahora nuestro principal problema a sido la falta de
información, no hemos podido encontrar información en
Español de Machine Translate, pero pudimos encontrar
información en ingles de un libro y tutoriales que nos dieron
mas información de como se construye un traductor.
6. Nombre de la Porcentaje Duración Comienzo Fin
tarea realizada: de trabajo:
Aprender 70% 6 días lun 27/08/12 lun 02/09/12
python
Investigación 80% 11 días lun 03/09/12 Vie 14/09/12
de como
funciona un
traductor
Diseño del 15% ? días Jue 13/09/12 ------
traductor
Aprender 15% 8 días Jue 13/09/12 Vie 21/09/12
Django(framew
ork web)
Aprender a usar 25% 20 días Mie 05/09/12 Mar 25/09/12
NLTK.
7. ALGUNAS INVESTIGACIONES:
Basado en modelos de Palabras
• Traducción Textual
En este tipo de traducciones, es la que se da cuando se traduce
literalmente una palabra, esto se puede comparar con la búsqueda
de palabras en un Diccionario, en donde uno busca una palabra en el
diccionario y este nos muestra una serie de significados para dicha
palabra.
Por ejemplo: Cuando buscamos el la traducción de la palabra
“House” este nos puede dar una serie de traducciones.
• House casa
• Domicilio
• hospedaje
8. • Reordenación
Así como tenemos lo que es la Alineación, en donde cada palabra
es traducida directamente desde el idioma original al deseado,
tenemos lo que es la Reorganización.
Este proceso consiste en tomar la frase original y en vez de darle
una traducción de palabra a palabra, acomodándoles en su orden
original, en esta ocasión las palabras son cambiadas de posición
para dar una traducción aceptable para dicha frase.
9. • Insertar Palabras
Entro otros métodos tenemos a lo que se puede llamar, Insertar
Palabras, en este método tenemos nuestra frase original la cual a
la hora de ser traducida tenemos como resultado una frase con
una mayor cantidad de palabras que la original.
• Modelo basado en frases
Ventajas:
1. Se pueden manejar frases no composicionales
2. Usa el contexto local en la traducción
3. Las frases más largas se pueden aprender
10. • Frases lingüísticas
El modelo no se limita a frases lingüísticas( frases verbales,
preposiciones, etc.)
El sustantivo ayuda con la traducción de la preposición
• El aprendizaje de una tabla de traducción de frases:
Su tarea es aprender el modelo en tres etapas
1. Alineación de palabras
2. Extracción de pares de frases
3. Anotar pares de frases
11. • Aprender Reordenamiento lexicalizado
Recopilar información de orientación durante la extracción de
frases parejas:
1. Si el punto de alineación palabra a la parte superior izquierda
existe = >monótono
2. Si un punto de alineación palabra a la parte superior derecha
existe => intercambiar
3. Si no un punto de alineación palabra a la parte superior
izquierda ni a la derecha superior existe
4. Ni monótono ni intercambio => discontinuo
12. RECURSOS Y HERRAMIENTAS:
• Tutoriales:
PROCESAMIENTO DEL LENGUAJE NATURAL
http://www.esp.uem.es/jmgomez/pln/index.html
http://cseweb.ucsd.edu/~dkauchak/mt-tutor
http://www.hutchinsweb.me.uk/IntroMT-TOC.htm
• Documentación:
http://www.python.org/
13. Libros:
1. How to Think Like a Computer Scientist by Allen
Downey, Jeffrey Elkner and Chris Meyers.
2. Dive into Python by Mark Pilgrim.
3. Code Like a Pythonista: Idiomatic Python by David Goodger.
4. The Python Programming Wikibook.
5. Learn python the hardway by Zed A. Shaw
http://learnpythonthehardway.org/book/
6. Natural Language Processing with Python by Steven
Bird, Ewan Klein, Edward Loper.
https://sites.google.com/site/naturallanguagetoolkit/book
14. 7. Statistical Machine Translation.
Autor: Philipp Koehn.
Editorial: Publisher: Cambridge University Press.
http://www.statmt.org/book/
8. The Django Book.
Autores: Jacob Kaplan-Moss y Adrian Holovaty.
http://www.djangobook.com/
16. De los recursos en donde buscamos información nos han sido
de utilidad principalmente los libros del lenguaje Python, el
libro de Django para poder tener un mejor diseño de la pagina
,el libro de la librería de python NLTK, los tutoriales y libros de
Static Machine Translation, en los libros y notas de NLP se
habla acerca de este tema pero solo un poco de Machine
Translation ya que es una rama de este campo.
17. DESARROLLO DEL PROGRAMA UTILIZANDO
EL PATRÓN MVC USANDO DJANGO:
Clase models.py: corresponde al modelo, esta parte que
conforma la lógica del traductor incluye la traducción,
normalización de los datos, análisis sintatico, decodificador
entre otras cosas.
Clase views.py: corresponde a la vista este presenta el
modelo en un formato adecuado para interactuar, usualmente
la interfaz de usuario, la pagina Web del traductor.
Clase urls.py: corresponde al controlador la información que
se envía atreves de la vista en este caso son el texto que se
desea traducir este las envía a la siguiente capa que es el
modelo para su procesamiento.