# Quiz de final de capítulo

¡Vimos muchas cosas en este capítulo! No te preocupes si no te quedaron claros todos los detalles; los siguientes capítulos te ayudarán a entender cómo funcionan las cosas internamente.

Antes de seguir, probemos lo que aprendiste en este capítulo:

### 1. ¿Desde qué ubicaciones te permite cargar datasets la función `load_dataset()` en 🤗 Datasets?

data_files de load_dataset() para cargar datasets locales.",
			correct: true
		},
		{
			text: "El Hub de Hugging Face",
			explain: "¡Correcto! Puedes cargar datasets del Hub pasando el ID del dataset, e.g. load_dataset('emotion').",
			correct: true
		},
		{
			text: "Un servidor remoto",
			explain: "¡Correcto! Puedes pasar URL al argumento data_files de la función load_dataset() para cargar archivos remotos.",
			correct: true
		},
	]}
/>

### 2. Supón que cargas una de las tareas de GLUE así:

```py
from datasets import load_dataset

dataset = load_dataset("glue", "mrpc", split="train")
```

¿Cuál de los siguientes comandos a a producir una muestra aleatoria de 50 elementos de `dataset`?

dataset.sample(50)",
			explain: "Esto es incorrecto. No hay un método Dataset.sample()."
		},
		{
			text: "dataset.shuffle().select(range(50))",
			explain: "¡Correcto! Como viste en el capítulo, primero tienes que ordenar aleatoriamente el dataset y luego seleccionar las muestras.",
			correct: true
		},
		{
			text: "dataset.select(range(50)).shuffle()",
			explain: "Esto es incorrecto. Si bien el código se va a ejecutar, sólo va a ordenar aleatoriamente los primeros 50 elementos del dataset."
		}
	]}
/>

### 3. Supón que tienes un dataset sobre mascotas llamado `pets_dataset`, que tiene una columna `name` que contiene el nombre de cada mascota. ¿Cuál de los siguientes acercamientos te permitiría filtrar el dataset para todas las mascotas cuyos nombres comienzan con la letra "L"?

pets_dataset.filter(lambda x : x['name'].startswith('L'))",
			explain: "¡Correcto! Usar una función lambda de Python para este tipo de filtros es una gran idea. ¿Se te ocurre otra solución?",
			correct: true
		},
		{
			text: "pets_dataset.filter(lambda x['name'].startswith('L'))",
			explain: "Esto es incorrecto. Una función lambda toma la forma general lambda *arguments* : *expression*, así que tienes que definir los argumentos en este caso."
		},
		{
			text: "Crear una función como def filter_names(x): return x['name'].startswith('L') y ejecutar pets_dataset.filter(filter_names).",
			explain: "¡Correcto! Justo como con Dataset.map(), puedes pasar funciones explícitas a Dataset.filter(). Esto es útil cuando tienes una lógica compleja que no es adecuada para una función lambda. ¿Cuál de las otras soluciones podría funcionar?",
			correct: true
		}
	]}
/>

### 4. ¿Qué es la proyección en memoria (_memory mapping_)?

### 5. ¿Cuáles son los principales beneficios de la proyección en memoria?

### 6. ¿Por qué no funciona el siguiente código?

```py
from datasets import load_dataset

dataset = load_dataset("allocine", streaming=True, split="train")
dataset[0]
```

IterableDataset.",
			explain: "¡Correcto! Un IterableDataset es un generador, no un contenedor, así que deberías acceder a sus elementos usando next(iter(dataset)).",
			correct: true
		},
		{
			text: "El dataset allocine no tiene un conjunto train.",
			explain: "Incorrecto. Revisa la [tarjeta del dataset allocine](https://huggingface.co/datasets/allocine) en el Hub para ver qué conjuntos contiene."
		}
	]}
/>

### 7. ¿Cuáles son los principales beneficios de crear una tarjeta para un dataset?

### 8. ¿Qué es la búsqueda semántica?

### 9. Para la búsqueda semántica asimétrica, usualmente tienes:

### 10. ¿Puedo usar 🤗 Datasets para cargar datos y usarlos en otras áreas, como procesamiento de habla?

dataset MNIST en el Hub para un ejemplo de visión artificial."
		},
		{
			text: "Yes",
			explain: "¡Correcto! Revisa los desarrollos con habla y visión en la librería 🤗 Transformers para ver cómo se puede usar 🤗 Datasets en estas áreas.",
			correct : true
		},
	]}
/>

