Gyakorlat – Szöveg hangulatelemzése a neurális hálózat használatával

Befejeződött

A valódi teszt akkor következik, amikor saját szöveget ad meg a modellnek, és meglátja, hogyan teljesít – tehát milyen jól értékeli ki a szövegben kinyilvánított érzelmeket. Ebben az egységben olyan Python-függvényt fog megírni, amely szöveges sztringet fogad el bemenetként, azt átadja a modellnek, majd visszaadja a hangulati értékelést. Ez után a függvény használatával fog különböző szöveges sztringekben kifejezett érzelmeket elemezni.

  1. Írja be az alábbi kódot egy cellába a jegyzetfüzet végén, és futtassa a cellát:

    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
    

    Az utasítás egy analyze nevű függvényt definiál, amely sztringet fogad el bemeneteként, és egy 0 és 1 közötti számot ad vissza, amely a sztringben kifejezett érzelmet pontozza. Minél magasabb a szám, annál pozitívabb az érzelem. A függvény megtisztítja a bemenő sztringet, átkonvertálja a load_data függvény által létrehozott szótár szavaira hivatkozó egész számok listájává, végül meghívja modell predict függvényét a szöveg hangulatának értékeléséhez.

  2. Hajtsa végre a következő utasítást a jegyzetfüzet használatával:

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

    A kimenet a bemenetként megadott szöveg hangulata, egy 0 és 1 közötti számmal kifejezve. Egyetért a modell értékelésével?

  3. Most próbálja ki a következőt:

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

    Hogyan értékeli a modell az ebben a szövegben kifejezett érzelmet?

Végezetül tesztelje a modellt saját készítésű bemenő sztringekkel. Az eredmények nem lesznek tökéletesek, de bizonyára tapasztalni fogja, hogy a modell viszonylag jól ítéli meg a szövegek hangvételét. Bár a modell filmkritikákkal lett betanítva, képességei nem korlátozódnak filmkritikák elemzésére. Ez azért érthető, mert a nyelv, amelyen egy film iránt nyilvánítunk tetszést vagy nemtetszést, eredendően hasonló a más témákkal kapcsolatos érzéseket kifejező szavakhoz.