Rutas
/
SQLite
SQLite
/
Ejercicios
/
Recuento de palabras
Recuento de palabras

Recuento de palabras

Difícil

Introducción

Enseñas inglés como lengua extranjera a estudiantes de secundaria.

Has decidido basar todo tu plan de estudios en series de televisión. Necesitas analizar qué palabras se usan y con qué frecuencia se repiten.

Esto te permitirá elegir las series más sencillas para empezar y aumentar la dificultad poco a poco a medida que pase el tiempo.

Instrucciones

Tu tarea consiste en contar cuántas veces aparece cada palabra en el subtítulo de una serie dramática.

Los subtítulos de estas series dramáticas utilizan únicamente caracteres ASCII.

Los personajes suelen hablar en un inglés coloquial y usan contracciones como they're o it's. Aunque estas contracciones provienen de dos palabras (por ejemplo, we are), la contracción (we're) se considera una sola palabra.

Las palabras pueden separarse por cualquier tipo de puntuación (por ejemplo, «:», «!» o «?») o por espacios en blanco (por ejemplo, «\t», «\n» o « «). La única puntuación que no separa palabras es el apóstrofo de las contracciones.

Los números se consideran palabras. Si el subtítulo dice It costs 100 dollars., 100 será una palabra por sí misma.

Las palabras no distinguen entre mayúsculas y minúsculas. Por ejemplo, la palabra you aparece tres veces en la siguiente frase:

You come back, you hear me? DO YOU HEAR ME?

El orden de los recuentos de palabras en el resultado no importa.

Este ejemplo incluye varios de los elementos que hemos visto antes:

  • palabras simples
  • contracciones
  • números
  • palabras que no distinguen mayúsculas de minúsculas
  • puntuación (incluidos los apóstrofos) para separar palabras
  • distintas formas de espacio en blanco para separar palabras

"That's the password: 'PASSWORD 123'!", cried the Special Agent.\nSo I fled.

La correspondencia de este subtítulo sería la siguiente:

123: 1
agent: 1
cried: 1
fled: 1
i: 1
password: 2
so: 1
special: 1
that's: 1
the: 2

La columna result debe contener un objeto de objetos codificado en JSON, con cada palabra como clave y su recuento como número entero.

Por ejemplo, fíjate en la frase anterior: "That's the password: 'PASSWORD 123'!", cried the Special Agent.\nSo I fled. El valor de result para esta entrada debería ser:

{"123":1,"agent":1,"cried":1,"fled":1,"i":1,"password":2,"so":1,"special":1,"that's":1,"the":2}

Esquema de la tabla

CREATE TABLE "word-count" (
    sentence TEXT NOT NULL,
    result   TEXT               -- json object
);

Documentación de JSON

Funciones y operadores JSON


Fuente

Este es un problema de juguete clásico, pero nos lo recordó verlo en el Go Tour.
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
SQLite Exercism

¿Listo para empezar Recuento de palabras?

Regístrate en Exercism para aprender y dominar SQLite con 81 ejercicios y mentoría humana real, todo gratis.