Este documento describe la implementación de un teclado virtual con capacidades predictivas diseñado para personas con problemas de movilidad. El teclado utiliza algoritmos de predicción de palabra actual y palabra siguiente, y tiene la capacidad de aprender nuevas palabras y estilos de escritura. Los resultados muestran que el 21% de las palabras se pueden escribir con una sola pulsación, y el 37% con dos pulsaciones, reduciendo el número de pulsaciones necesarias para escribir un texto en hasta un 42%. Esto demuestra que las capacidades predictivas facilitan grandemente la escritura
More than Just Lines on a Map: Best Practices for U.S Bike Routes
Implementación de un teclado virtual con predicción
1. Implementación de un Teclado Virtual con
Capacidades Predictivas diseñado para personas
con problemas de movilidad
IV Congreso de la CiberSociedad 2009
Del 12 al 29 de Noviembre
Tomàs Pallejà, Daniel Val, Marcel Tresanchez, Mercè Teixidó,
Alicia Fernández del Viso, Carlos Rebate y Jordi Palacín
2. Índice
1. Objetivos
2. Introducción
1. ¿Qué es un teclado virtual?
2. ¿Cómo mover el cursor?
3. Problemas de velocidad
4. ¿Qué se propone?
3. Algoritmos de predicción
4. Implementación del sistema de predicción
5. Botones de predicción
6. Implementación del teclado virtual
7. Validación del sistema de predicción
8. Conclusiones
2
3. Objetivos
• Implementar un teclado virtual pensado para
personas con problemas de movilidad
– Dotar el teclado con capacidades predictivas
– Dotar el teclado con capacidades de aprendizaje
• Reducir el número de pulsaciones y el tiempo
necesarios para escribir un texto.
3
6. Introducción: Problemas de velocidad
• La velocidad de escritura se reduce en un 66%
• El tiempo necesario se incrementa en un 200%.
• Solución
– Disposición de las letras
– Capacidades predictivas
6
7. Introducción: ¿qué se propone?
• Implementar un teclado virtual pensado para personas con problemas de
movilidad
• Dotar el teclado con capacidades predictivas:
– Palabra actual
– Palabra siguiente
• Dotar el teclado con capacidades de aprendizaje:
– Nuevas palabras
– Estilo de escritura del usuario
7
8. Algoritmos de predicción
• Palabra actual (PA)
– Se basa en proponer un conjunto de palabras que comiencen con la
misma secuencia de letras tecleadas por el usuario
• Palabra siguiente (PS)
– Se basa en proponer un conjunto de palabras que históricamente se
han tecleado con posterioridad a la última palabra escrita
8
9. Fusión de los métodos
Predicción de palabra actual (PA)
Predicción de palabra siguiente (PS)
El objetivo final es que la acción combinada de los distintos
algoritmos de predicción incremente la capacidad de acierto
del sistema.
9
10. Implementación del sistema de predicción
• Se aplica predicción PS siempre y cuando no se disponga de
ninguna letra de la nueva palabra que se desea escribir.
• Una vez se disponga de alguna letra de la palabra que se
desea escribir se busca en la TPS las palabras que
comiencen con dichas letras. En caso de no disponer de
suficientes palabras se busca en la TPA las palabras que
comiencen con dichas letras.
• En cada etapa de predicción se descartan todas aquellas
palabras que ya han sido propuestas con anterioridad.
10
11. Ejemplo de Predicción
Un tractor
TPS
un gato 25
un tren 12
Palabras Propuestas
un pino 6
TPA
trineo 12
tractor 8
tren 7
11
12. Ejemplo de Predicción
Un tractor
TPS
un gato 25
un tren 12
Palabras Propuestas
un pino 6
gato
tren TPA
pino trineo 12
tractor 8
tren 7
12
13. Ejemplo de Predicción
Un tractor
TPS
un gato 25
un tren 12
Palabras Propuestas
un pino 6
tren
trineo TPA
tractor trineo 12
tractor 8
tren 7
13
14. Ejemplo de Predicción
Un tractor
TPS
un gato 25
un tren 12
Palabras Propuestas
un pino 6
tren
trineo TPA
tractor trineo 12
tractor 8
tren 7
14
15. Ejemplo de Predicción
Un tractor
TPS
un gato 25
un tren 12
Palabras Propuestas
2 pulsaciones
un pino 6
tren
Palabra 7 letras +
trineo TPA
espacio
tractor trineo 12
tractor 8
tren 7
15
16. Botones de predicción
Predicción de palabra siguiente
6 botones de predicción: 31%
10 botones el predicción: 36%.
Ganancia: 5%
Δ 5%
Predicción de palabra actual
Mayor incremento en el rango de 1 a 5
En el caso de utilizar 6 botones:
Un click….... 46% de acierto
Tres clicks….. 57% de acierto
16
17. Implementación del teclado virtual (I)
• Visual C++
• Base de datos
– Autocontenida
– Robusta
• Los ficheros .dic hacen referencia a una base de
datos o diccionario
– El usuario puede utilizar múltiples diccionarios, en función
del idioma o el argot a tratar.
– Los diccionarios se actualizan automáticamente sin
necesidad de guardar los cambios.
– Se pueden borrar palabras no deseadas o introducidas
por error.
17
18. Implementación del teclado virtual (II)
Distribución del teclado de
símbolos y números
4 5 6
1 2 3
Distribución del
teclado QWERTY
18
19. Validación del sistema de predicción
• Para realizar la validación del sistema se ha dotado al
teclado virtual de un agente con capacidad de:
– Simular la pulsación de las letras a partir de un fichero de texto.
– Capacidad de evaluar el acierto de los botones de predicción durante
la escritura, diferenciando el algoritmo responsable de dicho acierto.
• La validación del sistema se ha realizado simulando la
escritura de un texto literario de 20.000 palabras.
– Se ha seleccionado el estilo literario por tratarse del peor caso posible
debido a su gran riqueza de vocabulario.
– Se ha partido de un archivo de diccionario con la TPA y la TPS sin
ninguna palabra ni aprendizaje previo para poner a prueba la
capacidad de aprendizaje.
19
20. Validación del sistema de predicción
50
40
utilización (%)
30
20
10
0
no botón 1 2 3 5
4 5 6 2 3 4
1
botón de predicción bloque
20
21. Validación del sistema de predicción
50
Bloques de 1.000
40 palabras
Primer bloque:
utilización (%)
30
40% de palabras
no predichas
20
El nivel de acierto
10 aumenta en función
del número de
0 palabras escritas
no botón 1 2 3 5
4 5 6 2 3 4
1
botón de predicción bloque
Frecuencia de utilización de los botones de predicción en
función del número de palabras escritas.
21
22. Validación del sistema de predicción
Bloques de 1.000
palabras
Tendencia incremental
en el acierto
Porcentaje de acierto en función del número de palabras escritas.
22
23. Validación del sistema de predicción
Bloques de 1.000
palabras
Escritura primer bloque: 77%
Escritura último bloque: 58%
Reducción con/sin
predicción: 42%
Porcentaje de teclas pulsadas en función del número de palabras escritas
23
24. Validación del sistema de predicción
El 21% de las palabras se
escriben con una única
pulsación
El 37% de las palabras se
escriben con dos
pulsaciones
Número de letras a pulsar por palabra escrita.
24
25. Conclusiones
• En este trabajo se presenta la implementación de capacidades de
predicción en un teclado virtual diseñado específicamente para ser
utilizado por personas con algún tipo de discapacidad motriz que les
impida utilizar un teclado convencional.
• El sistema se basa en dos tipos de predicciones: palabra actual y palabra
siguiente.
• Los resultados obtenidos muestran que un 21% de las palabras se
pueden escribir con una única pulsación y que dos pulsaciones bastan
para escribir otro 37%, lo que permite ahorrar hasta un 42% de las
pulsaciones necesarias para escribir un texto en estilo literario con un
sistema predictivo sin entreno previo
• Estos resultados demuestran que la implementación de capacidades de
predicción facilita enormemente la labor de escritura de textos en un
teclado virtual y, por tanto, facilitaran su uso por parte de una persona
con algún tipo de discapacidad motriz que le impida utilizar un teclado
físico convencional.
25
26. Gracias por su atención
IV Congreso de la CiberSociedad 2009
Del 12 al 29 de Noviembre
Tomàs Pallejà, Daniel Val, Marcel Tresanchez, Mercè Teixidó,
Alicia Fernández del Viso, Carlos Rebate y Jordi Palacín