Como Hacer Un Script En Python Donde Encuentre Palabras Repetidas

4 min read

Aprender cómo hacer un script en Python donde encuentre palabras repetidas es una habilidad útil para cualquiera que trabaje con análisis de texto, procesamiento de datos o simplemente quiera mejorar la calidad de sus documentos. En este artículo encontrarás una guía paso a paso, la explicación detrás del algoritmo y respuestas a las dudas más comunes, todo diseñado para que puedas copiar, adaptar y ejecutar el código en tu propio entorno sin necesidad de buscar información adicional.

Introducción

Detectar palabras duplicadas en un texto permite identificar errores de redacción, optimizar el SEO de un contenido o realizar análisis lingüísticos básicos. Python, gracias a su sintaxis clara y a bibliotecas potentes como collections y re, facilita la creación de un script que recorra una cadena, cuente la frecuencia de cada token y devuelva aquellas que aparecen más de una vez. A continuación, describiremos el proceso completo, desde la instalación de los requisitos hasta la personalización del resultado para distintos tipos de entrada (archivos de texto, entrada estándar o variables internas).

Paso a paso para crear el script

1. Preparar el entorno

Antes de escribir cualquier línea de código, verifica que tengas Python instalado (versión 3.7 o superior es recomendable). Puedes comprobarlo ejecutando en la terminal:

python --version

No se requieren paquetes externos para el ejemplo básico, pero si planeas trabajar con archivos PDF o documentos Word, podrías instalar bibliotecas como PyPDF2 o python-docx. Para este tutorial nos enfocaremos en texto plano, lo que mantiene el script ligero y portable Still holds up..

2. Definir la función de conteo

El núcleo del script consiste en dividir el texto en palabras, normalizarlas (por ejemplo, convirtiéndolas a minúsculas y eliminando signos de puntuación) y luego usar un contador para registrar cuántas veces aparece cada una. La clase Counter del módulo collections es ideal para esta tarea.

import re
from collections import Counter

def encontrar_palabras_repetidas(texto):
    # 1. Normalizar: pasar a minúsculas y quedarnos solo con letras y números
    palabras = re.findall(r'\b\w+\b', texto.lower())
    # 2. Now, contar frecuencias
    frecuencias = Counter(palabras)
    # 3. Filtrar solo aquellas con más de una aparición
    repetidas = {palabra: cuenta for palabra, cuenta in frecuencias.

**Explicación breve de cada línea**:
- `re.findall(r'\b\w+\b', texto.lower())` extrae todos los tokens alfanuméricos, ignorando puntuación y convirtiendo todo a minúsculas para que “Python” y “python” se traten como la misma palabra.
- `Counter(palabras)` crea un diccionario donde la clave es la palabra y el valor es su número de ocurrencias.
- La comprensión de diccionario `{palabra: cuenta for palabra, cuenta in frecuencias.items() if cuenta > 1}` se queda solo con los elementos cuyo conteo supera 1.

### 3. Lectura de entrada

El script puede recibir el texto de distintas formas. Aquí mostramos tres opciones comunes: desde una variable interna, desde un archivo de texto y desde la entrada estándar (por ejemplo, redirigiendo un archivo o usando `input()`).

```python
def leer_desde_variable():
    ejemplo = """
    Python es un lenguaje de programación versátil. Muchos desarrolladores eligen Python
    porque su sintaxis es clara y su comunidad es muy activa. Aprender Python ayuda a
    automatizar tareas y a analizar datos de forma eficiente.
    """
    return ejemplo

def leer_desde_archivo(ruta):
    with open(ruta, 'r', encoding='utf-8') as f:
        return f.read()

def leer_desde_stdin():
    import sys
    return sys.stdin.read()

4. Orquestar la ejecución

Finalmente, un bloque if __name__ == "__main__": permite que el script sea ejecutado directamente o importado como módulo sin que se ejecute el código de prueba.

def main():
    # Selecciona la fuente de datos; comenta o descomenta según necesites
    texto = leer_desde_variable()          # Opción 1: variable interna
    # texto = leer_desde_archivo('mi_documento.txt')  # Opción 2: archivo
    # texto = leer_desde_stdin()           # Opción 3: entrada estándar

    repetidas = encontrar_palabras_repetidas(texto)

    if repetidas:
        print("Palabras repetidas encontradas:")
        for palabra, cuenta in sorted(repetidas.items(), key=lambda x: x[1], reverse=True):
            print(f"- {palabra}: {cuenta} veces")
    else:
        print("No se encontraron palabras repetidas.")

if __name__ == "__main__":
    main()

Con este bloque, al ejecutar python script.py obtendrás una lista ordenada de mayor a menor frecuencia, mostrando únicamente las palabras que aparecen más de una vez Surprisingly effective..

5. Mejoras opcionales

  • Excluir palabras vacías (stopwords): Si deseas ignorar artículos, preposiciones o conjunciones muy comunes, carga una lista de stopwords (por ejemplo, de nltk.corpus) y filtralas antes de contar.
  • Soporte para Unicode: La expresión regular \w+ ya incluye letras acentuadas en modo Unicode, pero si trabajas con textos en otros alfabetos (cirílico, griego, etc.) asegúrate de que el archivo esté guardado en UTF‑8.
  • Salida en formato JSON: Para integrar el script en pipelines de datos, puedes cambiar el print por json.dump(repetidas, indent=2, ensure_ascii=False).

Explicación técnica

El algoritmo utilizado tiene una complejidad temporal de O(n), donde n es el número de tokens en el texto, porque cada palabra se procesa exactamente una vez durante la extracción y una vez más durante el conteo (ambas operaciones son lineales). La complejidad espacial es O(m), con m siendo el número de palabras únicas, ya que el Counter almacena una entrada por cada token distinto Worth keeping that in mind..

Short version: it depends. Long version — keep reading.

El uso de expresiones regulares garantiza que signos de puntuación como comas, puntos, punto y coma o comillas no se consideren parte de la palabra, evitando falsos positivos como “hola,” y “hola

Just Came Out

New Picks

Others Went Here Next

A Natural Next Step

Thank you for reading about Como Hacer Un Script En Python Donde Encuentre Palabras Repetidas. We hope the information has been useful. Feel free to contact us if you have any questions. See you next time — don't forget to bookmark!
⌂ Back to Home