Ćwiczenie — używanie sieci neuronowej do analizowania tekstu pod kątem tonacji

Ukończone

Prawdziwym testem będzie wprowadzenie do modelu własnego tekstu i zaobserwowanie, jaka jest jego wydajność, czyli jaka będzie elastyczność modelu podczas kwantyfikacji tonacji wyrażonej w tekście. Na tej lekcji napiszesz funkcję języka Python, która będzie akceptować ciąg tekstowy jako dane wejściowe, przekazywać go do modelu i zwracać wygenerowany wynik tonacji. Następnie użyjesz tej funkcji do przeanalizowania tonacji wyrażonej w różnych ciągach tekstowych.

  1. Dodaj następujący kod w komórce na końcu notesu i uruchom komórkę:

    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
    

    Te instrukcje definiują funkcję o nazwie analyze, która akceptuje ciąg jako dane wejściowe i zwraca liczbę z przedziału od 0,0 do 1,0 będącą kwantyfikacją tonacji wyrażonej w tym ciągu. Im większa liczba, tym bardziej pozytywna tonacja. Funkcja czyści ciąg wejściowy, konwertuje go na listę liczb całkowitych, które odwołują się do słów w słowniku utworzonym za pomocą funkcji load_data, a na koniec wywołuje funkcję predict modelu, aby wygenerować wyniki tekstu na potrzeby tonacji.

  2. W notesie wykonaj następującą instrukcję:

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

    Dane wyjściowe stanowi tonacja wyrażona w tekście wejściowym w postaci liczby z przedziału od 0,0 do 1,0. Czy zgadzasz się z oceną modelu?

  3. Teraz wypróbuj taką instrukcję:

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

    Jak model kwantyfikuje tonację wyrażoną w tym tekście?

Na koniec przetestuj model za pomocą własnych ciągów wejściowych. Wyniki nie będą doskonałe, ale powinno się okazać, że model jest względnie elastyczny podczas kwantyfikacji tonacji. Mimo że model został wytrenowany za pomocą recenzji filmów, nie jest ograniczony tylko do analizowania recenzji filmów. Jest to zrozumiałe, ponieważ istnieją swoiste podobieństwa między językowym wyrażaniem aprobaty i dezaprobaty dla filmu oraz słów wyrażających odczucia dotyczące innych niepowiązanych tematów.