Нейросети. Обработка естественного языка. Джейд Картер

Читать онлайн.
Название Нейросети. Обработка естественного языка
Автор произведения Джейд Картер
Жанр
Серия
Издательство
Год выпуска 2023
isbn



Скачать книгу

обучения модель оценивается на тестовом наборе данных для оценки ее производительности. Метрики, такие как точность, полнота и F1-мера, могут использоваться для измерения качества классификации.

      Применение модели:

      – После успешного обучения модель можно использовать для классификации новых текстовых документов на категории.

      Пример кода на Python с использованием библиотек TensorFlow и Keras для классификации текста с использованием CNN:

      import tensorflow as tf

      from tensorflow.keras.models import Sequential

      from tensorflow.keras.layers import Embedding, Conv1D, GlobalMaxPooling1D, Dense

      from tensorflow.keras.preprocessing.text import Tokenizer

      from tensorflow.keras.preprocessing.sequence import pad_sequences

      from sklearn.model_selection import train_test_split

      from sklearn.preprocessing import LabelEncoder

      from sklearn.metrics import accuracy_score

      # Подготовка размеченных данных (пример данных)

      texts = ["Политика: новости о выборах", "Спорт: результаты чемпионата", "Экономика: рост ВВП", "Наука: новое исследование"]

      labels = ["Политика", "Спорт", "Экономика", "Наука"]

      # Преобразование меток в числа

      label_encoder = LabelEncoder()

      y = label_encoder.fit_transform(labels)

      # Токенизация и векторизация текстов

      tokenizer = Tokenizer()

      tokenizer.fit_on_texts(texts)

      word_index = tokenizer.word_index

      sequences = tokenizer.texts_to_sequences(texts)

      # Подготовка последовательностей и паддинг

      max_sequence_length = max([len(seq) for seq in sequences])

      padded_sequences = pad_sequences(sequences, maxlen=max_sequence_length)

      # Разделение на обучающий и тестовый наборы

      x_train, x_test, y_train, y_test = train_test_split(padded_sequences, y, test_size=0.2, random_state=42)

      # Создание CNN модели

      model = Sequential()

      model.add(Embedding(input_dim=len(word_index) + 1, output_dim=100, input_length=max_sequence_length))

      model.add(Conv1D(128, 3, activation="relu")) # Изменено количество фильтров и размер свертки

      model.add(GlobalMaxPooling1D())

      model.add(Dense(len(set(y)), activation="softmax"))

      # Компиляция модели

      model.compile(loss="sparse_categorical_crossentropy", optimizer="adam", metrics=["accuracy"])

      # Обучение модели

      model.fit(x_train, y_train, epochs=10, validation_split=0.2)

      # Оценка модели

      y_pred = model.predict(x_test)

      y_pred = tf.argmax(y_pred, axis=1).numpy()

      accuracy = accuracy_score(y_test, y_pred)

      print(f"Точность: {accuracy:.4f}")

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

      ```python

      accuracy = accuracy_score(y_test, y_pred)

      ```

      `accuracy` – это значение точности, которое будет выведено на экран. Это число будет между 0 и 1 и показывает, какой процент текстов в тестовом наборе был правильно классифицирован моделью.

      Интерпретация результата:

      – Если точность равна 1.0, это означает, что модель идеально классифицировала все тексты в тестовом наборе и не допустила ни одной ошибки.

      – Если точность равна 0.0, это означает, что модель не смогла правильно классифицировать ни один текст.

      – Если точность находится между 0.0 и 1.0, это показывает процент правильно классифицированных текстов. Например, точность 0.8 означает, что модель правильно классифицировала 80% текстов.

      Важно помнить, что точность – это только одна из метрик, которые можно использовать для оценки модели. Для полного понимания производительности модели также рекомендуется рассмотреть другие метрики, такие как точность (precision), полнота (recall), F1-мера (F1-score) и матрица ошибок