4 usuarios conectados

Calcular complejidad léxica simple. Ejercicio en Python

Comparte esto

 
Escribe una función en Python llamada calcular_complejidad_lexica_simple que tome una cadena de texto en español como entrada y devuelva el número de palabras únicas que contiene el texto, ignorando la capitalización y la puntuación básica.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  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:

  1. import re:

    • Importa el módulo re para trabajar con expresiones regulares.
  2. def calcular_complejidad_lexica_simple(texto)::

    • Define una función llamada calcular_complejidad_lexica_simple que toma una cadena de texto (texto) como entrada.
  3. 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.
  4. palabras = texto_limpio.split():

    • Divide el texto_limpio en una lista de palabras utilizando el espacio en blanco como delimitador.
  5. 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.
  6. 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.