Упражнение. Использование нейронных сетей для анализа текста с целью определения тональности

Завершено

Реальная проверка происходит тогда, когда вы вводите свой текст в модель и смотрите на результаты, то есть насколько точно модель определяет тональность в тексте. В этом модуле вы напишете функцию Python, которая принимает текстовую строку в качестве входных данных, передает ее в модель и возвращает оценку тональности. Затем вы используете эту функцию, чтобы проанализировать тональность в различных текстовых строках.

  1. Выполните следующий код в ячейке в конце записной книжки:

    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
    

    Эти инструкции определяют функцию analyze, которая принимает строку в качестве входных данных и возвращает число от 0,0 до 1,0 для обозначения тональности в этой строке. Чем выше число, тем позитивнее тональность. Функция очищает входную строку, преобразует ее в список целых чисел, ссылающихся на слова в словаре, созданном функцией load_data, и, наконец, вызывает функцию модели predict для оценки тональности текста.

  2. В записной книжке выполните следующее выражение:

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

    Результатом является тональность входного текста, выраженная числом от 0,0 до 1,0. Вы согласны с оценкой модели?

  3. Теперь попробуйте это выражение:

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

    Как модель оценивает тональность в этом тексте?

Закончите тестирование модели своими строками. Результаты будут неидеальными, но вы увидите, что модель неплохо справляется с определением тональности. Хотя модель обучена на обзорах фильмов, она может анализировать не только их. Это логично, ведь восторги и недовольства по поводу фильмов выражаются теми же словами, что аналогичные чувства к чему-то еще.