Ejercicio: Uso de la red neuronal para realizar un análisis de sentimiento del texto

Completado

La prueba real llega cuando introduce texto de su elección en el modelo y ve cómo funciona, es decir, lo experto que es para cuantificar el sentimiento expresado en ese texto. En esta unidad, escribirá una función de Python que acepta una cadena de texto como entrada, la pasa al modelo y devuelve una puntuación de sentimientos. Después, usará la función para analizar el sentimiento expresado en varias cadenas de texto.

  1. Agregue el código siguiente en una celda al final del cuaderno y ejecute la celda:

    import string
    import numpy as np
    
    def analyze(text):
        # Prepare the input by removing punctuation characters, converting
        # characters to lower case, and removing words containing numbers
        translator = str.maketrans('', '', string.punctuation)
        text = text.translate(translator)
        text = text.lower().split(' ')
        text = [word for word in text if word.isalpha()]
    
        # Generate an input tensor
        input = [1]
        for word in text:
            if word in word_dict and word_dict[word] < top_words:
                input.append(word_dict[word])
            else:
                input.append(2)
        padded_input = sequence.pad_sequences([input], maxlen=max_review_length)
    
        # Invoke the model and return the result
        result = model.predict(np.array([padded_input][0]))[0][0]
        return result
    

    Estas instrucciones definen una función denominada analyze que acepta una cadena como entrada y devuelve un número comprendido entre 0,0 y 1,0 que cuantifica las opiniones expresadas en esa cadena. Cuanto mayor sea el número, más positiva es la opinión. La función limpia la cadena de entrada, la convierte en una lista de enteros que hacen referencia a las palabras en el diccionario creado por la función load_data y finalmente llama a la función predict del modelo para puntuar el sentimiento del texto.

  2. Use el cuaderno para ejecutar la siguiente instrucción:

    analyze('Easily the most stellar experience I have ever had.')
    

    El resultado es el sentimiento expresado en el texto de entrada como un número entre 0,0 y 1,0. ¿Está de acuerdo con la evaluación del modelo?

  3. Ahora pruebe esta instrucción:

    analyze('The long lines and poor customer service really turned me off.')
    

    ¿Cómo cuantifica el modelo el sentimiento expresado en este texto?

Por último, compruebe el modelo con cadenas de entrada de su elección. Los resultados no serán perfectos, pero debería encontrar que el modelo es razonablemente experto en la cuantificación del sentimiento. Aunque el modelo se ha entrenado con reseñas de películas, no se limita a analizar las reseñas de películas. Eso tiene sentido porque existen similitudes inherentes entre un lenguaje que expresa un me gusta o no me gusta de una película, y palabras que expresan sentimientos sobre otros temas no relacionados.