Tutorial NLP
nlp-tutorial es un tutorial para quién estudia PNL (procesamiento del lenguaje natural) utilizando Pytorch . La mayoría de los modelos en PNL se implementaron con menos de 100 líneas de código (excepto comentarios o líneas en blanco)
- [14-14-2020] El código V1 TensorFlow antiguo se archiva en la carpeta de archivo. Para la legibilidad para principiantes, solo es compatible con Pytorch versión 1.0 o superior.
Plan de estudios - (propósito de ejemplo)
1. Modelo de incrustación básica
- 1-1. NNLM (modelo de lenguaje de red neuronal) - Predecir la siguiente palabra
- Documento - Un modelo de lenguaje probabilístico neural (2003)
- Colab - nnlm.ipynb
- 1-2. Word2vec (skip -gram) - incrustar palabras y mostrar gráfico
- Documento: representaciones distribuidas de palabras y frases y su composicionalidad (2013)
- Colab - word2vec.ipynb
- 1-3. FastText (Nivel de aplicación) - Clasificación de oraciones
- Papel - Bolsa de trucos para una clasificación de texto eficiente (2016)
- Colab - FastText.ipynb
2. CNN (red neuronal convolucional)
- 2-1. TextCnn - Clasificación de sentimientos binarios
- Documento - Redes neuronales convolucionales para la clasificación de oraciones (2014)
- Textcnn.ipynb
3. RNN (red neuronal recurrente)
- 3-1. Textrnn - Predecir el siguiente paso
- Documento - Encontrar estructura en el tiempo (1990)
- Colab - Textrnn.ipynb
- 3-2. TextLSTM - Autocompletar
- Papel - Memoria a largo plazo (1997)
- Colab - Textlstm.ipynb
- 3-3. BI -LSTM - Predecir la siguiente palabra en oración larga
4. Mecanismo de atención
- 4-1. SEQ2SEQ - Cambiar Word
- Documento - Representaciones de frases de aprendizaje utilizando el codificador RNN - Decoder para la traducción al máquina estadística (2014)
- Colab - Seq2seq.ipynb
- 4-2. SEQ2SEQ con atención - Traducir
- Documento - Traducción de la máquina neuronal mediante el aprendizaje conjunta a alinear y traducir (2014)
- Colab - SEQ2SEQ (Atención) .ipynb
- 4-3. Bi -LSTM con atención - Clasificación de sentimientos binarios
- Colab - bi_lstm (atención) .ipynb
5. Modelo basado en Transformer
- 5-1. El transformador - Traducir
- Papel - Atención es todo lo que necesitas (2017)
- Colab - transformer.ipynb, transformer (greedy_decoder) .ipynb
- 5-2. BERT - Clasificación Siguiente oración y predecir tokens enmascarados
- Documento - Bert: prioridad de transformadores bidireccionales profundos para la comprensión del lenguaje (2018)
- Colab - bert.ipynb
Dependencias
- Python 3.5+
- Pytorch 1.0.0+
Autor
- Tae Hwan Jung (Jeff Jung) @graykode
- Correo electrónico del autor: [email protected]
- Agradecimientos a Mojitok como pasantía de investigación de la PNL.