Создаем последовательность из 0 и 1 длиной в 40 символов. 1
стоит на месте гласной буквы, на которую падает ударение.
Производим лемматизацию тренировочных данных для приведения слов к их начальной форме.
Токенизируем слова, преобразуя их в последовательности чисел.
Создаем датасет, в который входят:
- Слово (без ударения)
- Лемма слова Для тренировочного набора данных также добавляем target.
Структура модели StressModel
:
StressModel(
(lstm_layer_1): Sequential(
(0): Embedding(658, 70)
(1): LSTM(70, 110, num_layers=2, batch_first=True, bidirectional=True)
),
(lstm_layer_2): Sequential(
(0): Embedding(658, 70)
(1): LSTM(70, 110, num_layers=2, batch_first=True, bidirectional=True)
),
(fc): Linear(in_features=440, out_features=1, bias=True),
(dropout): Dropout(p=0.05, inplace=False)
)
6. Количество параметров:
Всего параметров в модели: 997201
Качество на наборах данных:
Train: 99.4%
Validation: 97.84%
Public Test: 97.79%
Private Test: 97.85%
Заключение:
Наши эксперименты показали высокую эффективность предложенного подхода.