Exercício – Utilizar a Rede Neural para Analisar Texto em Termos de Sentimento

Concluído

O teste real é quando introduz o seu próprio texto no modelo e vê o desempenho, ou seja, a aptidão do mesmo para quantificar o sentimento expressado nesse texto. Nesta unidade, irá escrever uma função de Python que aceita uma cadeia de texto como entrada, passa-a para o modelo e devolve uma classificação de sentimento. Em seguida, utilizará a função para analisar o sentimento expressado em diversas cadeias de texto.

  1. Adicione o seguinte código a uma célula no final do bloco de notas 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
    

    Estas instruções definem uma função chamada analyze que aceita uma cadeia de carateres como entrada e devolve um número entre 0,0 e 1,0, avaliando o sentimento expressado nessa cadeia de caracteres. Quanto maior for o número, mais positivo é o sentimento. A função limpa a cadeia de entrada, converte-a numa lista de números inteiros que referenciam palavras no dicionário criadas pela função load_data e, por fim, chama a função predict do modelo para classificar o texto em termos de sentimento.

  2. Utilize o bloco de notas para executar a seguinte instrução:

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

    O resultado é o sentimento expressado no texto de entrada como um número entre 0,0 e 1,0. Concorda 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 é que o modelo quantifica o sentimento expressado neste texto?

Termine ao testar o modelo com as suas cadeias de carateres. Os resultados não serão perfeitos, mas deverá reparar que o modelo é razoavelmente apto para quantificar o sentimento. Embora o modelo tenha sido preparado com críticas de filmes, não é limitado à análise de críticas de filmes. Isso faz sentido porque existem semelhanças inerentes entre a linguagem que expressa o gosto ou não de um filme e palavras que expressam sentimentos sobre outros assuntos não relacionados.