46 lines
4.5 KiB
Markdown
46 lines
4.5 KiB
Markdown
# Моделиране на език
|
||
|
||
Семантичните вграждания, като Word2Vec и GloVe, всъщност са първа стъпка към **моделиране на език** - създаване на модели, които по някакъв начин *разбират* (или *представят*) природата на езика.
|
||
|
||
## [Тест преди лекцията](https://ff-quizzes.netlify.app/en/ai/quiz/29)
|
||
|
||
Основната идея зад моделирането на език е обучението им върху немаркирани набори от данни по неуправляем начин. Това е важно, защото разполагаме с огромни количества немаркиран текст, докато количеството маркиран текст винаги ще бъде ограничено от усилията, които можем да вложим в маркирането. Най-често можем да изградим езикови модели, които могат **да предсказват липсващи думи** в текста, защото е лесно да скрием случайна дума в текста и да я използваме като тренировъчен пример.
|
||
|
||
## Обучение на вграждания
|
||
|
||
В предишните примери използвахме предварително обучени семантични вграждания, но е интересно да видим как тези вграждания могат да бъдат обучени. Съществуват няколко възможни идеи, които могат да се използват:
|
||
|
||
* **Моделиране на език с N-грам**, когато предсказваме токен, като разглеждаме N предишни токена (N-грам).
|
||
* **Непрекъсната торба с думи** (CBoW), когато предсказваме средния токен $W_0$ в последователност от токени $W_{-N}$, ..., $W_N$.
|
||
* **Skip-gram**, където предсказваме набор от съседни токени {$W_{-N},\dots, W_{-1}, W_1,\dots, W_N$} от средния токен $W_0$.
|
||
|
||

|
||
|
||
> Изображение от [тази статия](https://arxiv.org/pdf/1301.3781.pdf)
|
||
|
||
## ✍️ Примерни тетрадки: Обучение на CBoW модел
|
||
|
||
Продължете обучението си с помощта на следните тетрадки:
|
||
|
||
* [Обучение на CBoW Word2Vec с TensorFlow](CBoW-TF.ipynb)
|
||
* [Обучение на CBoW Word2Vec с PyTorch](CBoW-PyTorch.ipynb)
|
||
|
||
## Заключение
|
||
|
||
В предишния урок видяхме, че вгражданията на думи работят като магия! Сега знаем, че обучението на вграждания на думи не е много сложна задача и трябва да можем да обучим свои собствени вграждания за текст, специфичен за дадена област, ако е необходимо.
|
||
|
||
## [Тест след лекцията](https://ff-quizzes.netlify.app/en/ai/quiz/30)
|
||
|
||
## Преглед и самостоятелно обучение
|
||
|
||
* [Официален PyTorch урок за моделиране на език](https://pytorch.org/tutorials/beginner/nlp/word_embeddings_tutorial.html).
|
||
* [Официален TensorFlow урок за обучение на Word2Vec модел](https://www.TensorFlow.org/tutorials/text/word2vec).
|
||
* Използването на **gensim** за обучение на най-често използваните вграждания с няколко реда код е описано [в тази документация](https://pytorch.org/tutorials/beginner/nlp/word_embeddings_tutorial.html).
|
||
|
||
## 🚀 [Задача: Обучение на Skip-Gram модел](lab/README.md)
|
||
|
||
В лабораторията ви предизвикваме да модифицирате кода от този урок, за да обучите Skip-Gram модел вместо CBoW. [Прочетете подробностите](lab/README.md)
|
||
|
||
---
|
||
|