Sunteți pe pagina 1din 10

Electrónica y ciencia: Convertir palabras en números (I) http://electronicayciencia.blogspot.com.es/2010/05/convertir-palabras-e...

Electrónica y ciencia
Blog técnico sobre proyectos caseros de electrónica, informática y física.

Índice de artículos Página principal

Convertir palabras en números (I)


Tenemos herramientas muy potentes para machacar números, calcular medidas
estadísticas, gráficos, distancias, etc. Hoy os propongo jugar con algunas de esas
herramientas pero aplicadas a las palabras, al lenguaje. Claro que las letras no
son números, hemos de buscar una función que asigne un número a cada Translate
combinación de letras. Hemos de buscar una aplicación del conjunto de las
palabras a los números. Entradas populares

Nos interesa que las palabras parecidas tengan resultados parecidos, y las Receptor coche RC de
diferentes se distancien en el resultado, digamos que de alguna manera nos dos canales
interesa que sea lineal. Sin duda también buscaremos que mantenga un orden, a Alguien anónimo me
dejó un comentario en
ser posible que conserve el mismo orden alfabético al que ya estamos esta entrada pidiendo
acostumbrados. que, ya que había analizado el
transmisor, describiera también el
receptor. ...

Queremos que de cada palabra se obtenga un número distinto. Porque imaginad

1 de 10 19/09/16 03:42
Electrónica y ciencia: Convertir palabras en números (I) http://electronicayciencia.blogspot.com.es/2010/05/convertir-palabras-e...

que dos palabras dan el mismo número. Si tenemos que decir a qué palabra Utilizar un micrófono
corresponde tal número no podríamos decidirnos por una u otra. O sea que no electret
podríamos volver hacia atrás. Ese tipo de funciones en que un resultado sólo Habíamos publicado
proviene de un origen se llaman inyectivas. en esta entrada los
pasos a la hora de
registrar una señal, concretamente
Y hacia atrás, nos gustaría que cualquier número que pongamos se pueda traducir una señal sonora. Habíamos
en una combinación de letras -que tenga sentido no importa ahora-. Si no hay planteado más o men...
huecos en la imagen, los resultados estarán mejor distribuidos. Una función en la
Matamoscas
que todos los resultados posibles se corresponden con un origen y no hay ningún
eléctrónico: flyback
resultado "suelto" se llama suprayectiva o sobreyectiva. Hace unas semanas
pedí por correo un
Las funciones que cumplen las dos propiedades de antes: cada origen tiene un aparato poco común
en España, o por lo menos yo no lo
resultado y sólo uno, y cada resultado proviene de un origen y sólo de uno, se
he visto nunca. El caso es que lo
llaman biyectivas. Pues eso es lo que nos interesa, para convertir las palabras en pedí por curios...
números y poder luego volver hacia atrás. Tenéis unas ilustraciones a modo de
resumen en la Wikipedia. Cómo funcionan las
etiquetas magneto-
acústicas (o
acustomagnéticas)
Para los que pasen del álgebra, la función que queremos: En esta entrada quiero
hablaros de un sistema anti hurtos
Puede transformar cualquier palabra en un número. que casi todos habréis visto. Se
Puede volver hacia atrás (tiene inversa). utiliza desde hace unos años en
muchos establecim...
En abc la letra más importante es la primera, después la segunda, etc.
(para mantener el orden alfabético). El circuito RLC serie:
Funciona con palabras de cualquier longitud. oscilaciones
amortiguadas
Antes de nada, os
quiero pedir disculpas
Bases de numeración por el parón que ha sufrido el blog
lo que va de año. Todos
necesitamos un respiro de vez en
La idea para transformar una palabra en un número y que cumpla todas las cuando...

2 de 10 19/09/16 03:42
Electrónica y ciencia: Convertir palabras en números (I) http://electronicayciencia.blogspot.com.es/2010/05/convertir-palabras-e...

propiedades anteriores es simple: voy a tomar cada letra como un símbolo en una La Distorsión
base de numeración arbitraria. Armónica Total (THD)
Cualquier aficionado a
Ejemplos de bases tenemos la base 10, cuyo conjunto de símbolos todos la música o a la
electrónica conoce lo
conocemos: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. O la base binaria, que sólo usa {0, 1}. O el
que es la distorsión. En este
sistema hexadecimal, que usa un conjunto ampliado de 16 símbolos: {0, 1, 2, 3, 4, artículo hablaremos de la
5, 6, 7, 8, 9, A, B, C, D, E, F} importancia de la no l...

Reutilizar el motor de
Yo voy a usar el siguiente conjunto: {@, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r,
un lector CDROM
s, t, u, v, w, x, y, z} y voy a considerar que cada palabra es un número en Hoy tenemos un lector
base 27. ¿Por qué la @ al principio si no es una letra? Porque no quiero que la 'a' de CDROM para
sea mi cero, si lo fuera palabras como 'Tomas' y 'Tomasa' tendrían el mismo valor desguazar. Es un tanto
antiguo, pero eso nos favorece.
numérico. Más adelante esto nos llevará a perder la suprayectividad, pero
Como ya os podéis imaginar
compensa. mientras más moderno e...

Ahora bien, en 123 el 1 es el más importante, y el 3 el menos. Sin embargo en abc Multivibrador astable
a transistores:
queremos justamente lo contrario, que 'a' sea la letra más importante y 'c' la
explicación
menos. Eso pasa justamente en los números decimales, por ejemplo en 0.123. El astable con dos
transistores NPN es de
Vamos primero a qué significa un número decimal. Recordemos que 0.125 los primeros circuitos que se
significa: estudian cuando se habla de
transistores en conmutación. Como
0.125 = 0 + 1x0.1 + 2x0.01 + 5x0.001 su esq...
= 0x10 + 1x10-1 + 2x10-2 + 5x10-3
0

Reparación de un
cd-radio-casete
Es decir, vamos dividiendo la base a cada paso. En el caso de 'abc' eso sería:
He pensado que
@.abc = 0 + 1x0.037 + 2x0.00137 + 3x0.000051
podría empezar este
= 0x27 + 1x27-1
0 + 2x27-2 + 3x27-3 año publicando una
= 0.039933 entrada en el blog, que lo tengo algo
olvidado desde el verano. Así que
Por que dentro de nuestro conjunto de símbolos, la @ ocupa la posición 0, a = 1, b
feliz año nuev...
= 2, etc. Llama la atención cómo la base va disminuyendo rápidamente, así que si

3 de 10 19/09/16 03:42
Electrónica y ciencia: Convertir palabras en números (I) http://electronicayciencia.blogspot.com.es/2010/05/convertir-palabras-e...

queremos representar palabras muy largas necesitamos mucha precisión decimal. Preamplificador
micrófono electret:
Tal como hacemos la conversión, operacional
'zzzzzz...' = 0.99999999... Viendo las estadísticas
del blog me sorprende
pero 'aaaaa...' no es 0.00000..., eso sería @@@@@@. En realidad
la cantidad de gente que busca un
'aaaaa...' = 0.03846153... preamplificador para micrófono.
Creo que sería bueno publica...
El haber introducido el símbolo extra '@' nos impide llegar a 0 y suma una unidad
a la base (haciendo que disminuya más rápidamente), pero a cambio tiene este
Otros artículos
efecto:
tom = 0.761978 Utilizar un micrófono
toma = 0.7619793 electret

como hemos dicho esto no ocurriría si la 'a' valiese 0. Al igual que los ceros a la
derecha de un decimal no valen nada, la 'a' tampoco valdría nada.
Contraseña dinámica
Posiciones decimales para acceder al PC de
casa
Una pregunta que surge inmediatamente es ¿cuántos caracteres en base 10
(números) necesito para representar N caracteres en base 27 (palabras)?
Medir distancias con
un ratón de bola
Si los números no son decimales la respuesta es más facil de ver. Por ejemplo
¿cuantos números en base 2 (cuántos bits) necesito para representar el número
200? Pensemos que cada bit puede representar dos valores (su conjunto sólo
tiene dos símbolos). Con N bits prodremos representar 2 N combinaciones. Como Preamplificador para
quiero llegar hasta mínimo 200, que es el número que me piden, exigiré que micrófono multimedia

2N = 200
y despejaré N. Por la definición de logaritmo N es el logaritmo en base 2 de 200.
log2(200) = 7.64 Convertir palabras en
necesitaríamos 7 bits y pico, pero como no existe medio dígito (a veces se dice que números (II)
la precisión de un instrumento es de "tres dígitos y medio", pero eso es otra cosa),

4 de 10 19/09/16 03:42
Electrónica y ciencia: Convertir palabras en números (I) http://electronicayciencia.blogspot.com.es/2010/05/convertir-palabras-e...

nos quedamos con el entero superior. Ocho bits nos dan para representar 256 Curva de respuesta del
combinaciones, o sea valores de 0 a 255. Dimmer IR

Con decimales es más complejo. Podemos aplicar la misma técnica, y es válida.


Para representar 1 sóla letra necesitamos 1.43 símbolos en base 10.
Reparación de un
log27(10) = 1.43136
cd-radio-casete
pero al pasar un número decimal a otra base puede ocurrir que salga periódico un
número que no lo era (y al revés también). De hecho, nuestra base 27 no tiene
divisores comunes con 10, y cualquier numero decimal en base 27 que
expresemos en base 10 va a tener infinitos decimales. Aquí entra en juego otra Receptor coche RC de
dos canales
facilidad que nos da la '@'. Si prohibimos que '@' forme parte de una palabra
podemos terminar la conversión en cuanto nos aparezca, aunque aún quede resto.
Eso nos permite redondear los resultados sin perder presición.
Receptor con PIC para
La técnica que redondeo que utilizo en pal2num.pl consiste en multiplicar por mandos infrarrojos
1.43 la longitud de la palabra, y quedarme con esa precisión, redondeando tipo NEC
siempre al alza el resultado. Por ejemplo:

Análisis de las
f = 0.222222...
distribuciones de voto
= 0.23 en Filmaffinity

hola = 0.3174839728...
= 0.3174840 Propósitos para el
2011

Precisión numérica
Escáner nuevo y
Pero el mayor problema no está ahí sino en la precisión de los cálculos en coma difracción
flotante. Vamos a hacer una prueba, sabemos que 'zzzzzzzzzz...' = '0.99999999...'.

$echo zzzzzzzzzzzzzzzzzzzzzzzzz | pal2num

5 de 10 19/09/16 03:42
Electrónica y ciencia: Convertir palabras en números (I) http://electronicayciencia.blogspot.com.es/2010/05/convertir-palabras-e...

Es una z, valor 26, base 3.703704E-02, contribucion 0.96296296296296296295894739936116480 Comparar matrices en


Perl
Es una z, valor 26, base 1.371742E-03, contribucion 0.03566529492455418381266691631170662

Es una z, valor 26, base 5.080526E-05, contribucion 0.00132093684905756236352230133463195

Es una z, valor 26, base 1.881676E-06, contribucion 0.00004892358700213193939008250007343

Es una z, valor 26, base 6.969172E-08, contribucion 0.00000181198470378266442184724833038 Cómo funcionan las
Es una z, valor 26, base 2.581175E-09, contribucion 0.00000006711054458454312673364719404 etiquetas magneto-
acústicas (o
Es una z, valor 26, base 9.559907E-11, contribucion 0.00000000248557572535344913843282081
acustomagnéticas)
Es una z, valor 26, base 3.540706E-12, contribucion 0.00000000009205836019827589401462798

Es una z, valor 26, base 1.311373E-13, contribucion 0.00000000000340956889623244051906030


Electrocardiograma y
Es una z, valor 26, base 4.856936E-15, contribucion 0.00000000000012628032949009038958935 electrorretinograma.
Es una z, valor 26, base 1.798865E-16, contribucion 0.00000000000000467704924037371813310

Es una z, valor 26, base 6.662463E-18, contribucion 0.00000000000000017322404593976733826

Es una z, valor 26, base 2.467579E-19, contribucion 0.00000000000000000641570540517656808

Es una z, valor 26, base 9.139181E-21, contribucion 0.00000000000000000023761871871024326

Es una z, valor 26, base 3.384882E-22, contribucion 0.00000000000000000000880069328556457 Suscribirse a

Es una z, valor 26, base 1.253660E-23, contribucion 0.00000000000000000000032595160316906


Entradas
Es una z, valor 26, base 4.643185E-25, contribucion 0.00000000000000000000001207228159885

Es una z, valor 26, base 1.719698E-26, contribucion 0.00000000000000000000000044712154070 Comentarios


Es una z, valor 26, base 6.369253E-28, contribucion 0.00000000000000000000000001656005706

Es una z, valor 26, base 2.358982E-29, contribucion 0.00000000000000000000000000061333545


Etiquetas
Es una z, valor 26, base 8.736972E-31, contribucion 0.00000000000000000000000000002271613

Es una z, valor 26, base 3.235916E-32, contribucion 0.00000000000000000000000000000084134


amplificadores (11)
Es una z, valor 26, base 1.198487E-33, contribucion 0.00000000000000000000000000000003116 biología (2)
Es una z, valor 26, base 4.438842E-35, contribucion 0.00000000000000000000000000000000115 circuitos (24)
Es una z, valor 26, base 1.644015E-36, contribucion 0.00000000000000000000000000000000004 DimmerIR (6)
0.999999999999999999837369674127 estadística (9)
física (15)
Observad cómo a partir del 19º dígito significativo lo que queda es ruido de gnuplot (8)
redondeo. Lo vemos ya en la primera conversión en lo que debería ser z = 0.962
linux (5)
periódico. Y eso se refleja en el resultado final, lo que debería ser 0.9 periódico
microcontroladores (10)
sólo lo es hasta cierto punto. Como nuestro alfabeto es de 26+1 elementos (26

6 de 10 19/09/16 03:42
Electrónica y ciencia: Convertir palabras en números (I) http://electronicayciencia.blogspot.com.es/2010/05/convertir-palabras-e...

letras más la @), necesitamos 1.431 dígitos por carácter. Con los 18 dígitos óptica (6)
decimales que nos da la precisión double podemos representar 19/1.431 = 12.57 osciladores (8)
caracteres. Una muestra: PC (15)
Perl (17)
$echo aaaaaaaaaaaaa | pal2num
programacion (16)
Es una a, valor 1, base 3.703704E-02, contribucion 0.037037037037037037
química (2)
Es una a, valor 1, base 1.371742E-03, contribucion 0.001371742112482853
reciclado (8)
Es una a, valor 1, base 5.080526E-05, contribucion 0.000050805263425291

Es una a, valor 1, base 1.881676E-06, contribucion 0.000001881676423159 reparaciones (1)


Es una a, valor 1, base 6.969172E-08, contribucion 0.000000069691719376 sonido (12)
Es una a, valor 1, base 2.581175E-09, contribucion 0.000000002581174792 telemandos (6)
Es una a, valor 1, base 9.559907E-11, contribucion 0.000000000095599066

Es una a, valor 1, base 3.540706E-12, contribucion 0.000000000003540706 Buscar en este blog


Es una a, valor 1, base 1.311373E-13, contribucion 0.000000000000131137

Es una a, valor 1, base 4.856936E-15, contribucion 0.000000000000004857 Buscar


Es una a, valor 1, base 1.798865E-16, contribucion 0.000000000000000180

Es una a, valor 1, base 6.662463E-18, contribucion 0.000000000000000007


Archivo del blog
Es una a, valor 1, base 2.467579E-19, contribucion 0.000000000000000000 No contribuye

0.038461538461538462 ► 2015 (3)


► 2013 (4)
El 13er carácter no aparecerá a menos que sea muy alto, porque son 12.57
► 2012 (2)
caracteres, no 12 exactos. De nuevo el haber incluido un carácter extra en el
conjunto nos ayuda a mitigar el efecto del error acumulado en las operaciones. ► 2011 (11)
Como la aplicación deja de ser suprayectiva, ese hueco en el dominio imagen ▼ 2010 (50)
introduce un rango de valores que no provienen de una palabra válida, son los que ► diciembre (2)
van desde '@a' a '@zzzzz...'.
► noviembre (3)
► octubre (4)
► septiembre (6)
Esta entrada es de por sí muy abstracta. Así que para no hacerme pesado prefiero ► agosto (4)
continuar con una segunda parte. Os dejo los archivos por si alguno quiere hacer

7 de 10 19/09/16 03:42
Electrónica y ciencia: Convertir palabras en números (I) http://electronicayciencia.blogspot.com.es/2010/05/convertir-palabras-e...

pruebas. Están en este enlace y podéis encontrar: ► julio (4)


► junio (6)
pal2num.pl: Es el archivo en Perl que sirve para hacer el estudio. ▼ mayo (7)
Admite datos por la entrada estándar. Si se le pasa una palabra Preamplificador micrófono
devuelve su correspondiente número decimal (con la precisión electret: operacional
adaptada y el redondeo adecuado a la longitud como he explicado
Convertir palabras en números
antes). Si se le pasa un número devuelve la palabra origen, si existe. (II)
pal2num.c: Versión simplificada del anterior. Optimizada para hacer Convertir palabras en números
conversiones masivas rápidamente. (I)
pal2num: Binario compilado de pal2num.c. Transmisor protocolo NEC con
dominio_espectral.pl: Dado un texto separa sus palabras, y dibuja PIC
un gráfico con el espectro de frecuencias. Lo usaremos en la siguiente Criptoanálisis del cifrado XOR
entrada. simple

Directorio textos: Varios textos para probar. Versiones de El Quijote Receptor con PIC para mandos
infrarrojos tipo NEC
en español, francés e inglés. Y diccionarios de inglés y español
obtenidos de OpenOffice. Mando de un coche teledirigido
Directorio imágenes: Algunos gráficos generados por ► abril (10)
dominio_espectral.pl.
► marzo (4)

Etiquetas: programacion
Blogs que me gusta leer

2 comentarios: El tao de la física


Tres deliciosas y científicas etapas
en la fuente de chocolate, ¡Yomi!
Anónimo 3 de septiembre de 2012, 14:06
Electrónica: teoría y
Hola, al parecer compartimos las mismas inquietudes respecto a los números. práctica
Llevo algún tiempo (discontinuo) reflexionando sobre este tema y desarrollando Como programar
microcontroladores PIC
funciones matemáticas para el cálculo de números a palabras y viceversa. Si
deseas compartir experiencias al respecto dirección de correo es Enchufa2

8 de 10 19/09/16 03:42
Electrónica y ciencia: Convertir palabras en números (I) http://electronicayciencia.blogspot.com.es/2010/05/convertir-palabras-e...

joaquinalartegonzalez@hotmail.com #LDOnda: Cajas de resonancia


P.D. Me encanta encontrar con personas (aunque sean pocas) que muestran este
Gaussianos
tipo de inquietudes. Buen artículo muy útil. “La circunferencia de Feuerbach”,
Responder nuevo artículo en “El Aleph”

Ikkaro
Finalistas del Google Science Fair
electronicayciencia 4 de septiembre de 2012, 0:17 2015

Hola Joaquín. Me alegra que te haya gustado el artículo. ¿Has leído la segunda MedTempus
parte en la entrada siguiente? Ya a la venta la revista Naukas #3

Pentester.es
Para cualquier cosa mi correo lo tienes en el perfil,
Inyección de comodines SQL en
electronicayciencia@gmail.com. Y, por supuesto, los comentarios del blog están a búsquedas de tipo LIKE
tu disposición.
Per Ardua ad Astra
Responder Cuando la Medicina se toca con la
ciencia ficción: bolsas de la compra
e infartos (revista Naukas nº3)

Introduce tu comentario... Security By Default


Regalamos 5 entradas para
#Dragonjarcon 2016

Tall & Cute


Comentar como: Seleccionar perfil... La ciencia también es actualidad:
Carta abierta a Ana Pastor.

Wardog y el Mundo
Publicar Vista previa
Los caminos del BOFH son infinitos

Por favor, usa mayúsculas, minúsculas, puntos, comas, interrogaciones y todo eso.
Muchas gracias.

9 de 10 19/09/16 03:42
Electrónica y ciencia: Convertir palabras en números (I) http://electronicayciencia.blogspot.com.es/2010/05/convertir-palabras-e...

Enlaces a esta entrada


Crear un enlace

Entrada más reciente Página principal Entrada antigua

Plantilla Simple. Imágenes de plantillas de Dizzo. Con la tecnología de Blogger.

To the extent possible under law, Reinoso Guzmán has waived all copyright and related or neighboring rights to Electronicayciencia.

10 de 10 19/09/16 03:42