Oefening: het neurale netwerk gebruiken om het gevoel van tekst te analyseren

Voltooid

De echte test komt wanneer u uw eigen tekst in het model invoert en ziet hoe het model presteert; dat wil zeggen, hoe bekwaam het model is in het kwantificeren van het gevoel dat wordt uitgedrukt in die tekst. In deze les schrijft u een Python-functie die een teksttekenreeks als invoer accepteert, deze doorgeeft aan het model en een gevoelsscore retourneert. Vervolgens gebruikt u de functie voor het analyseren van het gevoel dat wordt uitgedrukt in verschillende teksttekenreeksen.

  1. Voeg de volgende code toe aan een cel aan het einde van het notebook en voer de cel uit:

    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
    

    Met deze instructies wordt een functie met de naam analyze gedefinieerd die een tekenreeks als invoer accepteert en een getal van 0,0 tot 1,0 retourneert om het gevoel te kwantificeren dat wordt uitgedrukt in die tekenreeks. Hoe hoger het getal, hoe positiever het gevoel. Met de functie wordt de invoertekenreeks opgeschoond en geconverteerd naar een lijst met gehele getallen die verwijzen naar woorden in de woordenlijst die is gemaakt met de functie load_data. Vervolgens wordt de functie predict van het model aangeroepen om de gevoelsscore voor de tekst te bepalen.

  2. Gebruik het notebook om de volgende instructie uit te voeren:

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

    De uitvoer is het gevoel in de invoertekst uitgedrukt in een getal tussen 0,0 en 1,0. Bent u het eens met de evaluatie van het model?

  3. Probeer nu deze instructie:

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

    Hoe kwantificeert het model het gevoel dat in deze tekst wordt uitgedrukt?

Voltooi het model door het te testen met uw eigen invoertekenreeksen. De resultaten zijn niet perfect, maar u zult waarschijnlijk wel zien dat het model is redelijk bekwaam is in het kwantificeren van gevoel. Hoewel het model is getraind met filmrecensies, blijft het niet beperkt tot het analyseren van filmrecensies. En dat is logisch, want er zijn inherente overeenkomsten zijn tussen de taal die de voorkeur of afkeer van een film uitdrukt en woorden die gevoelens over andere, niet-verwante onderwerpen uitdrukken.