---
title: Procesamiento de textos
description: Refuerza tus habilidades de codificación y mejora tu capacidad para resolver problemas con las katas que comparten los craftspeople de Codurance.
---

[Katas ](https://www.codurance.com/es/katas)

# [Procesamiento de textos](https://www.codurance.com/es/katas/procesamiento-de-texto)

 Escrito por [Matheus Marabesi and Emmanuel Valverde](https://www.codurance.com/es/katas/author/matheus-marabesi-and-emmanuel-valverde) | 14-abr-2023 8:52:47

## Introducción

Como un desarrollador que escribe blogs quiero una herramienta que me ayude a entender mejor el texto que estoy redactando. Para ello necesito una herramienta que me permita saber lo siguiente:

1. ¿Cuáles son las palabras más utilizadas en el texto?
2. ¿Cuántos caracteres tiene el texto?

```
interface Processor {   analyse(text: string);}
```

No es necesario utilizar esta interfaz.

## Primer reto

Dado el siguiente texto:

```
 
```

`Hello, this is an example for you to practice.``You should grab this text and make it as your test case.`

 

El output debería ser:

```
Those are the top 10 words used:1. you2. this3. your4. to5. text6. test7. should8. practice9. make10. itThe text has in total 21 words
```

### Algunas observaciones

- Como habrás notado, el ejemplo asume que 'You' y 'you' son lo mismo, es decir, no distingue entre mayúsculas y minúsculas.
- Las palabras que tienen el mismo número no aparecen en orden. Por ejemplo, 'this' y 'it', aparecen una vez, y no están ordenadas alfabéticamente.

A continuación, la kata empieza a ser un poco más compleja. Asegúrate de completar primero este reto antes de pasar al segundo.

## Segundo reto

Ahora me gustaría saber cuánto tiempo tardaría el usuario en leer mi post, para ello debería aplicar la siguiente fórmula:

(La velocidad media de lectura es de 238, según este estudio, pero 200 es un buen compromiso y es más fácil de recordar).

Esta es la fórmula:

- Obtén el número total de palabras (incluidos el titular y el subtítulo).
- Divide el número total de palabras por 200. El número antes del decimal son los minutos.
- Toma los decimales y multiplícalo por 0,60. Así obtendrás los segundos. 

Ejemplo:

`783 words ÷ 200 = 3.915 (3 = 3 minutes) .915 × .60 = .549 (a little over 54 seconds, so I'd bump it up to 60 seconds, or a full minute).`

` `

El tiempo de lectura de este artículo es de 4 minutos.

## Tercer reto

Además de las características anteriores, el procesamiento de texto también debe tener:

- Una forma de ignorar una parte determinada del texto para analizar (Por ejemplo, un fragmento de código - el fragmento de código se encuentra entre `javascript` cualquier cosa dentro debe ser ignorado).
- Una forma de ofrecer palabras clave y eliminarlas del análisis.

Dado el ejemplo de 1, este sería un texto con fragmentos de código:

`Hello, this is an example for you to practice. You should grab this text and make it as your test case:``if (true) { console.log('should should should') }`

 

La salida de procesamiento de texto debe ignorar el fragmento de código. Es decir, que el output salida debe ser:

```
Those are the top 10 words used:1. you2. this3. your4. to5. text6. test7. should8. practice9. make10. itThe text has in total 21 words
```

 

Observa que la palabra 'should' es la misma, y no sube en la lista ya que 'should' aparece cuatro veces (más que la palabra 'you').

[Ver post completo](https://www.codurance.com/es/katas/procesamiento-de-texto)

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Matheus Marabesi and Emmanuel Valverde"
  },
  "dateModified" : "2023-04-17T15:14:16.584Z",
  "datePublished" : "2023-04-14T08:52:47Z",
  "headline" : "Procesamiento de textos",
  "image" : {
    "@type" : "ImageObject",
    "height" : 630,
    "url" : "https://3042464.fs1.hubspotusercontent-na1.net/hubfs/3042464/Katalyst/Thumbnails/Katalyst_Thumbnail_String-Calculator.jpg",
    "width" : 1200
  },
  "mainEntityOfPage" : "https://www.codurance.com/es/katas/procesamiento-de-texto",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 60,
      "url" : "/hs/hsstatic/content_shared_assets/static-1.4092/img/default-amp-logo.png",
      "width" : 60
    },
    "name" : "Katas"
  }
}
```