Gyakorlat – Szöveg hangulatelemzése a neurális hálózat használatával
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.
Í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 aload_data
függvény által létrehozott szótár szavaira hivatkozó egész számok listájává, végül meghívja modellpredict
függvényét a szöveg hangulatának értékeléséhez.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?
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.