Week 8: Clustering and Text Mining Flashcards
What are other types of embeddings in R, after word2vec?
GloVe, fastText
What type of Gaussian model mixture is k-means?
all prior class proportions 1/K, EII model, all posteriors are either 0 or 1
What are embeddings?
Short, dense vectors that can be used to represent words?
What is the intuition of skip-gram/ word2vec?
- Treat the target word and a neighbouring context word as positive examples
- Randomly sample other words in the lexicon to get negative samples
- Use logistic regression to train a classifier to distinguish those two cases
- Use the learned weights as the embeddings
What is case folding?
a kind of normalisation that is mapping everything to lowercase
What is the purpose of tf-idf?
Raw frequency is not the best measure of association between words because words like “the” and “good” occur frequently and aren’t informative. tf-idf gives weight to words that appear in fewer documents
What are some popular lexicons for sentiment analysis? (3)
AFINN, NRC, bing
Code to turn a document term matrix into a dataframe in R?
tidy()
How do you calculate tf, idf and tf-idf?
term frequency: the frequency of the word t in document d / the total number of terms in the document
tf(t,d)= count(t,d)/total number of terms in the document
inverse document frequency: number of documents / number of documents the term occurs in
idf = log10(N/df(t))
tf-idf = tf*idf
How do you create a vocabulary of words in R?
it = itoken(wordvector) #create index tokens full\_vocab = create\_vocabulary(it) #create full vocabulary
What is stemming?
naive version of morphological analysis that consists of chopping of word-final affixes
What is a term-document matrix?
- each row represents a word in the vocabulary
- each column represents a document
- each cell represents the number of times a particular word occurs in a particular document
What assumption does skip-gram make?
all context words are independent
How do you create a token co-occurrence matrix in R?
create_tcm(it, vectorizer, skip_grams_window = 5)
How does the skip-gram algorithm adjust during training?
adjust initial embeddings to maximise the similarity (dot product) of the (w, cpos) pairs drawn from the positive examples and minimise the similarity (dot product) of the (w, cneg) pairs from the negative examples
What are other names for LCA and LPA
LCA = binomial mixture model LPA = gaussian mixture model
What does the likelihood tell us?
How well the model fits the data
Code to create a corpus in R?
Corpus(textsource)
How do you use grep to match and count matches from data? (3 ways)
grep(“expression”, data) #returns indices of all matching expressions from data
grep(“expression”, data, value = TRUE) #returns all the actual matching expressions from data. gives whole string, not just matching part
length(grep(“expression”, data)) #returns number of matches of expression in data
What is the assumption of gaussian mixture modelling?
The data within each cluster is normally distributed
What are vector semantics for words?
represent a word as a point in multidimensional semantic space that is derived from the distributions of word neighbours
What are the 2 things that ^ represents in RE
Caret ^ matches the start of a line
or negates the contents of [] if it is [^…]
How do you use regexpr and gregexpr and regmatches to match data?
r = regexpr(“expression”, data) #gives index of each match and length of each match (only for first match of each index)
r = gregexpr(“expression”, data) #gives index of each match and length of each match (all matches)
regmatches(data, r) #returns the actual matches obtained from regexpr or gregexpr
What is lemmatisation?
the task of determining that two words have the same root, despite their surface differences
What are the terms of tf-idf
tf = term frequency idf = inverse document frequency
What are some forms of text representation? (4)
- Bag-of-words: word count or word proportion for each word
- Time-series: label each token and put in order
- Tf-idf, embeddings
What is a document-term matrix (DTM)?
Each row is a document, each column is a word
What are 3 types of text normalisation?
- tokenising (segmenting) words
- normalising word formats
- segmenting sentences
What is the distributional hypothesis?
words that occur in similar contexts tend to have similar meanings
What is the kleene * and knleene + in RE?
* zero or more occurrences of the immediately previous character or regular expression
+ one or more occurrences of the immediately previous character or regular expression
Code to create a document term matrix in R?
DocumentTermMatrix(corpus)
What is a clitic?
A clitic is a part of a word that can’t stand on its own, can only occur attached to another word. E.g. we’re
What is gaussian mixture modelling trying to find?
Hidden groups within the data that are not recorded
What is Zipf’s law?
the frequency that a word appears is inversely proportional to its rank
What is information retrieval?
the task of finding the document d from the D documents in some collection that best matches a query q
What does the value of the cosine metric represent?
The cosine value ranges from 1 for vectors pointing in the same direction, through 0 for orthogonal vectors, to -1 for opposite vectors
How do you specify a range in RE?
”-“ e.g. [2-5]
Code for implementing mclust in R?
Mclust(data, G=2, modelNames = “E”)
What is a regular expression?
an algebraic notion for characterising a set of strings
What type of vector representations come from a term-term matrix?
Sparse because most are 0
What is word normalisation?
the task of putting words/tokens in a standard format
How do you calculate the cosine similarity in R?
sin2(matrix1, matrix2, method=“cosine”, norm=“l2”)
What are \b and \B in RE?
\b matches word boundary
\B matches non-word boundary
What is the precedence hierarchy in RE?
- Parenthesis ()
- Counters * + ? {}
- Sequences and anchors ^ $
- Disjunction |
What do {n} and {m,n} mean in RE?
n occurrences of the previous char or expression
from n to m occurrences of the previous char or expression
What is the classifier to train for skip-grams?
train a classifier such that a given tuple (w,c) of a target word w paired with a candidate/context word c, it will return the probability that c is a real context word P(+|w,c)
What is a token learner and a token segmenter?
- A token learner takes a raw training corpus and induces a vocabulary, a set of tokens
- A token segmenter takes a raw test sentence and segments it into the tokens in the vocabulary
What does Penn Treebank tokenisation do?
It separates out clitics (doesn’t becomes does n’t), keeps hyphenated words together, separates out all punctuatio
What are two properties of word embeddings?
- analogies: look at the analogies in vector space el.g. King - man + woman = queen
- Bias: semantics derived automatically from language corps contain human-like biases
In multivariate model based clustering with 2 observed features, what do the mean and standard deviation become?
Mean becomes a vector of 2 means
Standard deviation becomes a 2x2 variance covariance matrix determining the shape of the cluster
What is the likelihood, defined by the statistical model and the assumption?
p(data|paramaters) = p(y|theta)
When you have fitted an Mclust model to fit_mclust in R, what information can you obtain from the result?
fit_mclust$paramaters #gives means, variances, proportions, modelName
fit_mclust$bic #gives the bic for each option and shows which models have the lowest. These are negative in the mclust package, take absolute value
fit_mclust$loglik #gives log likelihood used to calculate bic manually
fit_mclust$classification #gives the cluster classification vector
fit_mclust$uncertainty #gives uncertainty of each point
plot(fit_mclust, “density”) #gives density plot
What is ? in RE?
the preceding character or nothing
e.g. colou?r
What is inflectional stemming and stemming to root?
- Inflectional stemming: remove plurals, normalise verb tenses, remove other affixes
- Stemming to root: reduce word to most basic element
How can you tokenise text in R?
library(tidytext)
unnest_tokens(data, outputcolumn, inputcolumn) #takes one term per row and automatically removes punctuation
What is an advantage of word2vec/skip grams?
Self-supervised learning. Don’t need labels
What is the most sophisticated way of lemmatisation?
complete morphological parsing of the word
ie. takes cats and parses it into the two morphemes cat and s
What is the period . in RE?
A wildcard expression that matches any single character
What is the basis of information criteria (BIC) formula?
BIC = -2.log(l) + m.log(n)
l = likelihood = p(data|theta) -2.log(l) = deviance = reconstruction loss = fit m = number of parameters n = number of observations/examples m.log(n) = file size = complexity
What are the stringr options for matching strings?
str_view(“string”, “expression”) #only matches the first expression
str_detect(“string”, “expression”) #returns true/false depending on whether the string matches the expression
str_extract(“string”, “expression”) #extracts the first match
str_extract_all(“string”, “expression”) #extracts all matches into a vector
str_match_all(“string”, “expression”) #similar to str_extract_all except output is matrix with column for each
What are the problems with sentiment analysis? (4)
- Not great with longer tasks
- negation
- context-dependency
- You need partly labelled data
What do LCA and LPA stand for? what are they types of?
latent class analysis latent profile analysis types of model based clustering
What is morphology?
Morphology is how words are build up from stems, the central morpheme of the word and affixes
What is a corpus and a lexicon?
Corpus = a collection of documents (our whole dataset)
Lexicon: set of all unique words in a corpus
How does the byte-pair encoding algorithm work for tokenisation?
- it is a token learner
- starts with vocabulary of all characters
- chooses the two symbols that are most frequently adjacent, adds a new merged symbol to the vocabulary and replaces every adjacent pair in the corpus with the new merged symbol
- continues to count and merge, creating new longer and longer character strings, until k merges have been done creating k novel tokens
What are the steps of the expectation maximisation (EM) algorithm?
- Guess the parameters
- Work out the posterior probability of being M/F assuming normality (E step)
- Update the parameters (M step)
* repeat steps 1 and 2 until parameters stop changing
What are \d and \D in RE?
\d is any digit
\D is any non-digit
What is the probability that c is a context word P(+|w,c)?
P(+|w,c) = c.w = 1/1+exp(-c.w)
where . is the dot product
What is $ in RE?
matches the end of a line
What is the overall sentiment in sentiment analysis?
Sentiment = total positive words - total negative words
What is the basic workflow for text analysis? (5 steps)
- Get some text
- Organise text into corpus
- Pre-process
- Create representation
- Perform analysis as usual
What is sentiment analysis?
task of classifying the polarity of a given text (ie is it a good/bad review)
When will two column vectors be similar in a term-document matrix?
When the documents contain similar words
What is tokenisation?
Tokenisation is the task of segmenting running text into words
What are some typical steps in text pre-processing? (8)
- Stemming (running -> run)
- Lemmatisation (were -> is)
- lower casing
- Stop word removal
- Punctuation removal
- Number removal
- Spell correction
- Tokenisation
What is the formula for the cosine similarity measure?
cosine(v,w) = (v.w)/(|v||w|) (where . is dot product)
How can you remove stop words in R?
anti_join(data, stop_words) #removes stop words on an unnest_tokens object
Where does Zipf’s law often deviate?
There are often deviations at high ranks, as a corpus often contains fewer rare words than predicted by a single power law
What are \n and \t in RE?
\n is newline
\t is tab
What does [] mean in RE?
anything within the brackets can be included e.g. colo[ou]r means colour or color
When will two row vectors be similar in a term-document matrix?
Similar rows mean that the words are similar because they occur in similar documents
How does mclust select a model in R?
mclust fits all the models with up to specified number of clusters, computes the BIC of each model and chooses the model with the best BIC
what does data %>% pull(variable) do in R?
same as data$variable
How does latent class analysis work?
LCA lets the variables follow any distribution, as long as they are unrelated to each other (independent) within classes.
How do you get the dot product of 2 vectors?
v.w = v1w1 + v2w2 + … + vNwN
What are the number of parameters in a multivariate Gaussian mixture model:
pi(k,X): number of classes -1 : K-1
mu(k): K*p (p is number of features)
var: K*p (or just p when variances are equal over classes)
covariances: K*p*(p-1)/2 (or p*(p-1)/2 when covariances are equal over classes) (or 0 when variables are uncorrelated, spherical clusters)
m = (K-1) + Kp + Kp + Kp(p-1)/2
What do sub and gsub do?
replace matching expression with replacement
sub(“expression”, “replacement” data) (only first match of each index)
gsub(“expression”, “replacement” data) (all matches)
What is the overall probability curve made up of?
The weighted sum of two normal curves
How do you map words to indices in R? ie create a vectorizer
vectorizer = vocab_vectorizer(small_vocab)
What is sentence segmentation?
segmenting a text into sentences
What is a term-term matrix or word co-occurrance matrix?
Columns and rows both represent words
- each cell records the number of times the row (target) word and the column (context) word co-occur in some context in some training corpus
- the context could be a document or smaller such as a window around the word
What are all the parameters learned in skip-gram?
two matrices W and C each containing an embedding for every one of the |V| words in the vocabulary V
How do you do an escape in R?
\
How do you get the tf-idf in R?
bind_tf_idf(tidytext dataset, tokens, documents, counts) #takes a tidytext dataset as input with one row per token per document
What are 3 alternatives to the BIC?
AIC: Akaike information criterion - same as BIC but penalty is m
AIC3: same as AIC but penalty is 3m/2
ICL: Integrated information criterion - same as BIC but reconstruction loss includes the assigned clusters
How can you say or in RE?
pipe |
What is the gaussian mixture model formula?
p(x) = pi(1,x) Normal(mean1, var1) + (1-pi(1,x)) Normal(mean2, var2) where pi(1,x) is the probability that variable x takes on value 1 (e.g. probability that person is man) ie proportion of values expected in each cluster
What are the identifiers for each parameterisation of a GMM and what to they measure?
E for equal, V for variable, I for identity matrix
- Volume (size of clusters in data space)
- Shape (circle or ellipse)
- Orientation (the angle of the ellipse)
E.g. VVE model has variable volume, variable shape, equal orientation
What does reducing the error rate of an RE involve?
- Increasing precision: minimising false positives (strings that were incorrectly matched)
- Increasing recall: minimising false negatives (strings that were incorrectly missed)
How do you get part of a string and reference back to that part in an RE?
Use capture group to store the expression in memory
the (.*)er they were, the \1er they will be
How can you identify clusters that are not ellipses using the GMM?
start with the usual Gaussian mixture solution, merge similar components to create non-Gaussian clusters
How is the posterior probability calculated based on the current estimates of mean and sd?
pi(man,x) = point on male curve/point on total curve
What is the aim of the BIC?
tradeoff between complexity and file size
the lower the better
What is the code for merging components of clusters in R?
clustCombi(data=x)