nlp Flashcards
Weizenbaum, creador de ELIZA
ELIZA fue una asistente online programada mediante detección de patrones (aka RegEx) en los años sesenta en el MIT.
Primer bot conversacional de la historia.
Corpora
Se entiende por corpus (o en plural “corpora”) a cualquier colección de texto o voz que puede ser leído por una computadora.
Tokenización
La tokenización consiste en dividir un fragmento de texto en partes más pequeñas. Ya sea dividir el párrafo en oraciones, oraciones en palabras o palabras en caracteres.
Byte-Pair encoding (BPE)
https://huggingface.co/learn/nlp-course/chapter6/5?fw=pt
Stemming y Lematización
https://web.stanford.edu/~jurafsky/slp3/2.pdf
Algoritmo de Porter
https://web.stanford.edu/~jurafsky/slp3/2.pdf
Minimum edit distance
https://web.stanford.edu/~jurafsky/slp3/2.pdf
Discriminative model
P(y|x), decision boundary
Generative model
Estimate P(x|y) to deduce P(y|x), probability distributions of the data
Naive Bayes (Multinomial NB)
https://web.stanford.edu/~jurafsky/slp3/4.pdf
https://web.stanford.edu/~jurafsky/slp3/slides/4_NB_Apr_4_2021.pdf
Regresión logística + multinomial
https://web.stanford.edu/~jurafsky/slp3/slides/5_LR_Apr_7_2021.pdf
https://web.stanford.edu/~jurafsky/slp3/5.pdf
TF-IDF
https://github.com/LCaravaggio/NLP/blob/main/02_b%C3%A1sicas/Un_primer_TFIDF.ipynb
https://web.stanford.edu/~jurafsky/slp3/6.pdf
One hot encoding
+ Hay relaciones entre las palabras que podemos perder si las modelamos por conteo de apariciones (i.e polisemia, homonimia, sinonimia, antonimia, etc)
Semántica distribucional
Entender el significado de las palabras de acuerdo a su contexto.
Usamos un largo conjunto de instancias donde aparezca una palabra para intentar ver con qué palabras se relaciona más
Es la solucion del one-hot-encoding
Microaverage
En el microaverage, reunimos las decisiones de todas las clases en una única matriz de confusión y, a continuación, calculamos la precision y la recall a partir de esa tabla.
Macroaveraging
En el macroaveraging, calculamos la performance para cada clase y, a continuación, calculamos la media de todas las clases.
Matriz de confusión
https://docs.google.com/presentation/d/1tqJ_LqQLmSWZFG1XCoSaZCCqHRNc4tfYvqRNvqPrsNY/edit#slide=id.g26018375f7b_0_68
F-Score
https://docs.google.com/presentation/d/1tqJ_LqQLmSWZFG1XCoSaZCCqHRNc4tfYvqRNvqPrsNY/edit#slide=id.g26018375f7b_0_68
Similitud coseno
https://web.stanford.edu/~jurafsky/slp3/6.pdf
cosine(v, w) = v · w / |v||w|
Pointwise Mutual Information
https://web.stanford.edu/~jurafsky/slp3/6.pdf (6.6)
CBOW y Skip-Gram
https://www.youtube.com/watch?v=ERibwqs9p38&list=PL3FW7Lu3i5Jsnh1rnUwq_TcylNr7EkRe6&index=2
https://arxiv.org/pdf/1301.3781.pdf
Word2Vec
https://web.stanford.edu/~jurafsky/slp3/6.pdf (6.8)
fastText
https://fasttext.cc/
GloVe
https://www.youtube.com/watch?v=ASn7ExxLZws&list=PL3FW7Lu3i5Jsnh1rnUwq_TcylNr7EkRe6&index=3
backpropagation
https://web.stanford.edu/~jurafsky/slp3/7.pdf
https://docs.google.com/presentation/d/1mlLOuUmNuMGRDf2r8QDFLxyAadfsfPdpFaA9lEcRCJ8/edit#slide=id.g2287ef4c2f3_1_7
Pooling
https://web.stanford.edu/~jurafsky/slp3/7.pdf
Padding
Padding es una función de Keras que me sirve para convertir los datos en una matriz: https://www.tensorflow.org/api_docs/python/tf/keras/utils/pad_sequences
Dropout
https://web.stanford.edu/~jurafsky/slp3/7.pdf
Stochastic Gradient Descent
Una vez que podemos calcular el gradiente de la pérdida, optimizamos nuestros parámetros con descenso del gradiente.
Stochastic Gradient Descent: en vez de calcular el gradiente sobre TODO el dataset, vamos a calcularlo de a lotes (batches) de pequeño tamaño, usualmente 16/32. Eso va a permitirnos hacer más optimizaciones y que tampoco sean tan inestables como con un único ejemplo.
Luego de procesar cada batch, actualizamos los parámetros (optimization step). Al proceso de recorrer todo el dataset se le llama época (epoch).
PyTorch entrega los lotes a nuestro modelo mediante DataLoaders