Solución al Ejercicio: Calcular complejidad léxica simple
📋 Copiar código
import re
def calcular_complejidad_lexica_simple(texto):
"""
Calcula la complejidad léxica de un texto contando el número de palabras únicas
(ignorando capitalización y puntuación básica).
Args:
texto: La cadena de texto en español de entrada.
Returns:
El número de palabras únicas en el texto.
"""
texto_limpio = re.sub(r'[^\w\s]', '', texto).lower()
palabras = texto_limpio.split()
palabras_unicas = set(palabras)
return len(palabras_unicas)
# Ejemplos de uso
texto1 = "Hola mundo hola."
resultado1 = calcular_complejidad_lexica_simple(texto1)
print(f"Complejidad léxica de '{texto1}': {resultado1}")
texto2 = "El perro ladra. El perro corre."
resultado2 = calcular_complejidad_lexica_simple(texto2)
print(f"Complejidad léxica de '{texto2}': {resultado2}")
texto3 = "Una frase con varias palabras únicas."
resultado3 = calcular_complejidad_lexica_simple(texto3)
print(f"Complejidad léxica de '{texto3}': {resultado3}")
texto4 = "Palabra palabra palabra palabra."
resultado4 = calcular_complejidad_lexica_simple(texto4)
print(f"Complejidad léxica de '{texto4}': {resultado4}")
texto5 = ""
resultado5 = calcular_complejidad_lexica_simple(texto5)
print(f"Complejidad léxica de '': {resultado5}")
texto6 = "El veloz murciélago hindú comía feliz cardillo y kiwi."
resultado6 = calcular_complejidad_lexica_simple(texto6)
print(f"Complejidad léxica de '{texto6}': {resultado6}")
Explicación del Código:
-
import re
:
- Importa el módulo
re
para
trabajar con expresiones regulares.
-
def
calcular_complejidad_lexica_simple(texto):
:
- Define una función llamada
calcular_complejidad_lexica_simple
que toma una cadena de texto (texto
)
como entrada.
-
texto_limpio = re.sub(r'[^\w\s]',
'', texto).lower()
:
- Limpia el texto:
re.sub(r'[^\w\s]', '',
texto)
: Utiliza una expresión regular para eliminar cualquier
carácter que no sea una letra, un número o un espacio en blanco.
Esto elimina la puntuación básica.
.lower()
: Convierte
todo el texto a minúsculas para que las palabras con diferente
capitalización se consideren iguales.
-
palabras = texto_limpio.split()
:
- Divide el
texto_limpio
en
una lista de palabras utilizando el espacio en blanco como delimitador.
-
palabras_unicas = set(palabras)
:
- Crea un conjunto (
set
)
llamado palabras_unicas
a partir de la lista de
palabras
. Los conjuntos solo almacenan elementos únicos, por lo
que cualquier palabra repetida aparecerá solo una vez en el conjunto.
-
return len(palabras_unicas)
:
- Devuelve el número de elementos (palabras
únicas) en el conjunto
palabras_unicas
, que representa una
medida muy simple de la complejidad léxica del texto.
Ejemplos de Uso:
Los ejemplos muestran cómo la función cuenta el
número de palabras únicas en diferentes frases, ignorando la capitalización y la
puntuación básica.