Exercício – Usar a rede neural para analisar o texto quanto ao sentimento

Concluído

O teste real é fornecido quando você insere o texto de sua preferência no modelo e vê como ele funciona, ou seja, o quão capaz ele é de quantificar o sentimento expresso nesse texto. Nesta unidade, você escreverá uma função de Python que aceita uma cadeia de caracteres de texto como entrada, passa-a para o modelo e retorna uma pontuação de sentimento. Em seguida, você usará a função para analisar o sentimento expresso em várias cadeias de caracteres de texto.

  1. Adicione o seguinte código a uma célula no final do notebook e execute a célula:

    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
    

    Essas instruções definem uma função chamada analyze que aceita uma cadeia de caracteres como entrada e retorna um número de 0,0 a 1,0 quantificando o sentimento expresso na cadeia de caracteres. Quanto maior o número, mais positivo o sentimento. A função limpa a cadeia de caracteres de entrada, converte-a em uma lista de inteiros referenciando palavras do dicionário criado pela função load_data e, finalmente, chama a função predict do modelo para pontuar o texto quanto ao sentimento.

  2. Use o notebook para executar a instrução a seguir:

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

    A saída é o sentimento expresso no texto de entrada como um número de 0,0 a 1,0. Você concordaria com a avaliação do modelo?

  3. Agora experimente esta instrução:

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

    Como o modelo quantifica o sentimento expresso neste texto?

Conclua testando o modelo com cadeias de caracteres de entrada de sua preferência. Os resultados não serão perfeitos, mas você deverá descobrir que o modelo é razoavelmente apto a quantificar o sentimento. Mesmo que o modelo seja treinado com revisões de filme, ele não está limitado a analisar revisões de filme. Isso faz sentido porque existem semelhanças inerentes entre a linguagem que expressa o gostar ou não de um filme e as palavras que expressam sentimentos sobre outros assuntos não relacionados.