Читать книгу 120 практических задач онлайн
6. Создание LSTM сети для обработки текстовых данных
Для анализа настроений в текстах с использованием LSTM сети можно использовать библиотеку TensorFlow и её высокоуровневый интерфейс Keras. В этом примере мы рассмотрим, как создать и обучить модель LSTM для анализа настроений на основе текстовых данных.
Шаги
1. Импорт библиотек и модулей.
2. Подготовка данных.
3. Построение модели LSTM.
4. Компиляция и обучение модели.
5. Оценка и тестирование модели.
Пример кода:
```python
import numpy as np
import pandas as pd
import tensorflow as tf
from tensorflow.keras import layers, models
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
# Шаг 1: Импорт библиотек
import tensorflow as tf
from tensorflow.keras import layers, models
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from sklearn.model_selection import train_test_split
# Шаг 2: Подготовка данных
# Загрузка данных. Предположим, что у нас есть CSV файл с текстами и метками настроений (0 – негативное, 1 – позитивное).
data = pd.read_csv('sentiment_data.csv')
# Пример структуры данных:
# text sentiment
# 0 This movie was great! 1
# 1 I did not like this movie. 0
# …
# Тексты и метки
texts = data['text'].values
labels = data['sentiment'].values
# Токенизация текстов
tokenizer = Tokenizer(num_words=10000) # Используем только 10,000 наиболее частотных слов
tokenizer.fit_on_texts(texts)
sequences = tokenizer.texts_to_sequences(texts)
# Ограничение длины последовательностей (padding)
maxlen = 100 # Максимальная длина последовательности
X = pad_sequences(sequences, maxlen=maxlen)
# Разделение данных на обучающую и тестовую выборки
X_train, X_test, y_train, y_test = train_test_split(X, labels, test_size=0.2, random_state=42)
# Шаг 3: Построение модели LSTM
model = models.Sequential()