Übung: Einsetzen des neuronalen Netzes für die Analyse der Stimmung eines Texts

Abgeschlossen

Wie gut Ihr Modell seine Funktion erfüllt, können Sie nur feststellen, indem Sie eigene Texte in das Modell eingeben. So können Sie ermitteln, wie zuverlässig Ihr Modell die Stimmung im Text bewertet. In dieser Lerneinheit schreiben Sie eine Python-Funktion, die eine Textzeichenfolge als Eingabe akzeptiert, diese an das Modell übergibt und eine Stimmungsbewertung zurückgibt. Sie verwenden die Funktion anschließend zur Analyse der Stimmung in den Textzeichenfolgen.

  1. Fügen Sie folgenden Code in eine Zelle am Ende des Notebooks ein, und führen Sie diese Zelle aus:

    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
    

    Diese Anweisungen definieren eine Funktion namens analyze, die eine Zeichenfolge als Eingabe akzeptiert und einen Wert von 0.0 bis 1.0 zurückgibt, der die Stimmung in dieser Zeichenfolge bewertet. Je höher die Zahl, desto positiver die Stimmung. Die Funktion bereinigt die Eingabezeichenfolge, konvertiert sie in eine Liste aus ganzzahligen Werten, die für Wörter im von der load_data-Funktion erstellten Wörterbuch stehen, und ruft zuletzt die predict-Funktion des Modells auf, um die Stimmung des Texts zu bewerten.

  2. Verwenden Sie das Notebook, um folgende Anweisung auszuführen:

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

    Die Ausgabe entspricht der Stimmung im Eingabetext, die vom einem Wert zwischen 0.0 und 1.0 dargestellt wird. Stimmen Sie der Bewertung des Modells zu?

  3. Testen Sie nun diese Anweisung:

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

    Wie bewertet das Modell die Stimmung im Text?

Testen Sie das Modell zum Schluss mit eigenen Eingabezeichenfolgen. Die Ergebnisse werden nicht perfekt sein, aber Sie werden feststellen, dass das Modell bei der Bewertung von Stimmungen schon relativ zuverlässig ist. Obwohl das Modell mit Filmkritiken trainiert wurde, ist es nicht auf die Analyse von Filmkritiken beschränkt. Das liegt daran, dass es eine positive oder negative Bewertung eines Films sprachlich ähnlich ausgedrückt werden kann wie eine Bewertung zu einem damit nicht in Verbindung stehenden Thema.