El móvil que adivina tu siguiente palabra
La inteligencia artificial, o IA, es un programa que encuentra patrones en ejemplos y los usa para adivinar. Tu móvil lo hace cuando te propone la siguiente palabra de un mensaje.
La IA está en apps que usas cada día. Saber qué es, y qué no es, te ayuda a usarla bien.
Al terminar esta lección
Nota
Puedo explicar qué es la IA y qué no es.
Palabras clave
| Palabra | Qué significa |
|---|---|
| IA | un programa que adivina a partir de patrones en ejemplos |
| Patrón | algo que se repite una y otra vez |
| Ejemplo | un dato del que aprende el programa |
| Entrenamiento | enseñar muchos ejemplos a un programa |
| Suposición | una respuesta que puede ser correcta o no |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
La IA encuentra patrones y adivina
Un programa normal sigue reglas que escribió una persona. A un programa de IA, en cambio, se le enseñan miles de ejemplos. Eso es el entrenamiento. El programa encuentra los patrones y luego los usa para adivinar.
Un filtro de spam es un ejemplo. Ha visto muchos mensajes marcados como spam o no. Adivina de qué tipo es un mensaje nuevo.
Un pequeño buscador de patrones para ejecutar
El programa de abajo tiene cuatro mensajes que una persona ya ordenó. Para un mensaje nuevo, cuenta las palabras que comparte con cada uno. Gana el lado con más palabras en común.
Pulsa Ejecutar. Después cambia el último mensaje por uno tuyo y vuelve a ejecutarlo.
Los nombres del código están en inglés, como en casi todos los programas. Los comentarios y los textos están en español.
Adivina: spam o no
# Mensajes que una persona ya ordenó.
examples = [
["gana un móvil gratis ahora", "spam"],
["premio gratis pulsa ahora", "spam"],
["vienes al fútbol esta tarde", "ok"],
["nos vemos en la parada del bus", "ok"],
]
def guess(message):
spam = 0
ok = 0
for example in examples:
for word in message.split():
if word in example[0].split():
if example[1] == "spam":
spam = spam + 1
else:
ok = ok + 1
if spam > ok:
return "spam"
if ok > spam:
return "ok"
return "no sé"
print(guess("móvil gratis"))
print(guess("fútbol esta tarde"))
print(guess("hola a todos"))
Un ejemplo nuevo cambia la suposición
Un buscador de patrones solo conoce sus ejemplos. Si le das uno nuevo, sus suposiciones pueden cambiar.
Abajo se ha añadido un mensaje ok que habla de un móvil. Pulsa Ejecutar. En el primer programa, un mensaje sobre un móvil salía como spam.
Añade un ejemplo más
examples = [
["gana un móvil gratis ahora", "spam"],
["premio gratis pulsa ahora", "spam"],
["vienes al fútbol esta tarde", "ok"],
["nos vemos en la parada del bus", "ok"],
# El ejemplo nuevo.
["mi móvil nuevo es genial", "ok"],
]
def guess(message):
spam = 0
ok = 0
for example in examples:
for word in message.split():
if word in example[0].split():
if example[1] == "spam":
spam = spam + 1
else:
ok = ok + 1
if spam > ok:
return "spam"
if ok > spam:
return "ok"
return "no sé"
print(guess("móvil nuevo"))
Lo que la IA no es
La IA no es una persona. No tiene sentimientos ni opiniones, y no sabe qué es verdad. No entiende un mensaje como lo entiendes tú.
Solo es tan buena como sus ejemplos. Con ejemplos falsos, adivina mal. Con ejemplos de un solo lado, adivina hacia ese lado.
Ejemplo resuelto: dónde te encuentras la IA
| Dónde | Qué adivina |
|---|---|
| El teclado del móvil | La siguiente palabra que vas a escribir |
| Una app de música | Una canción que te puede gustar |
| Una app de mapas | Cuánto tardará el autobús |
| Un filtro de spam | Si un mensaje es spam |
| Un chatbot | Las palabras de una respuesta |
| La web de una tienda | Lo que quizá quieras comprar después |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Un error frecuente
Advertencia
Mucha gente cree que la IA la entiende como una persona. No es así. Relaciona patrones de sus ejemplos, así que puede parecer muy lista y aun así fallar en cosas sencillas.
Para ir más lejos: ejemplos parciales
En el programa, los dos ejemplos de spam hablan de premios y de móviles. Así que un mensaje real sobre un móvil nuevo podría salir como spam.
Añade dos ejemplos más a la lista, uno spam y uno ok. ¿Qué mensajes nuevos adivina mejor ahora el programa?