es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Contar las ocurrencias de una lista de palabras dentro de una observación de texto.

Tengo una lista de las 10 palabras más frecuentes en el resumen de un artículo académico. Quiero contar cuántas veces ocurren esas palabras en las observaciones de mi conjunto de datos.

Las 10 palabras son:

top10 = ['modelo','lenguaje','modelos','tarea', 'datos', 'documento', 'resultados', 'información', 'texto','rendimiento']

Un ejemplo de las primeras 3 observaciones es:

columna[0:3] = ['Los modelos están mostrando un gran rendimiento.',
'La información y, por lo tanto, los datos en el texto son lo suficientemente buenos para cumplir con la tarea.',
'Los datos de esta forma resultan en la mejor información y, por lo tanto, en un buen rendimiento.']

El código proporcionado debe devolver una lista de las ocurrencias totales de todas las palabras en la observación específica. He intentado el siguiente código pero me dio un error: count() toma como máximo 3 argumentos (se dieron 10).

Mi código:

count = 0
for oración in columna:
    for palabra in oración.split():
        count += palabra.lower().count('modelo','lenguaje','modelos','tarea', 'datos', 'documento', 'resultados', 'información', 'texto','rendimiento')

También quiero convertir todas las palabras en minúsculas y eliminar la puntuación. Por lo tanto, el resultado debería ser así:

resultado = (2, 4, 4)

La primera observación cuenta 2 palabras de la lista top10, es decir, “modelos” y “rendimiento”.

La segunda observación cuenta 4 palabras de la lista top10, es decir, “información”, “datos”, “texto” y “tarea”.

La tercera observación cuenta 4 palabras de la lista top10, es decir, “datos”, “resultados”, “datos”, “información” y “rendimiento”.

¡Espero que puedas ayudarme!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para contar el total de apariciones de las 10 palabras principales en las observaciones del conjunto de datos, podemos utilizar el siguiente código:

    import string
    
    top10 = ['modelo','idioma','modelos','tarea', 'datos', 'documento', 'resultados', 'información', 'texto','rendimiento']
    
    # ejemplos de observaciones
    columna = ['Los modelos están mostrando un gran rendimiento.', 
              'La información y, por lo tanto, los datos en el texto son lo suficientemente buenos para cumplir con la tarea.', 
              'Los datos de esta manera resultan en la mejor información y, por lo tanto, en el mejor rendimiento.']
    
    # inicializar una lista para almacenar los conteos de cada observación
    conteos = []
    
    for frase in columna:
        # eliminar puntuación de la frase utilizando translate y str.maketrans
        frase = frase.translate(str.maketrans('', '', string.punctuation))
    
        # convertir la frase a minúsculas y dividir en palabras
        palabras = frase.lower().split()
    
        # inicializar un conteo para la observación actual
        conteo = 0
    
        # iterar sobre la lista top10 y contar las apariciones en la frase
        for palabra in top10:
            conteo += palabras.count(palabra)
    
        # agregar el conteo para la observación actual a la lista de conteos
        conteos.append(conteo)
    
    # imprimir la lista de conteos
    print(conteos)
    

    Este código primero elimina la puntuación de cada frase utilizando el método translate y str.maketrans, convierte la frase a minúsculas y la divide en palabras. Luego itera sobre la lista top10, cuenta las apariciones de cada palabra en la frase utilizando el método count de la lista y suma los conteos. Finalmente, agrega el conteo de la observación actual a la lista conteos.

    La salida de este código es [2, 4, 4], que coincide con el ejemplo de salida proporcionado.

Comments are closed.