Learn R Programming

textmineR (version 3.0.4)

FitLsaModel: Fit a topic model using Latent Semantic Analysis

Description

A wrapper for RSpectra::svds that returns a nicely-formatted latent semantic analysis topic model.

Usage

FitLsaModel(dtm, k, calc_coherence = TRUE, return_all = FALSE, ...)

Arguments

dtm

A document term matrix of class Matrix::dgCMatrix

k

Number of topics

calc_coherence

Do you want to calculate probabilistic coherence of topics after the model is trained? Defaults to TRUE.

return_all

Should all objects returned from RSpectra::svds be returned here? Defaults to FALSE

...

Other arguments to pass to svds through its opts parameter.

Value

Returns a list with a minimum of three objects: phi, theta, and sv. The rows of phi index topics and the columns index tokens. The rows of theta index documents and the columns index topics. sv is a vector of singular values.

Details

Latent semantic analysis, LSA, uses single value decomposition to factor the document term matrix. In many LSA applications, TF-IDF weights are applied to the DTM before model fitting. However, this is not strictly necessary.

Examples

Run this code
# NOT RUN {
# Load a pre-formatted dtm 
data(nih_sample_dtm) 

# Convert raw word counts to TF-IDF frequency weights
idf <- log(nrow(nih_sample_dtm) / Matrix::colSums(nih_sample_dtm > 0))

dtm_tfidf <- Matrix::t(nih_sample_dtm) * idf

dtm_tfidf <- Matrix::t(dtm_tfidf)

# Fit an LSA model
model <- FitLsaModel(dtm = dtm_tfidf, k = 5)

str(model)

# }

Run the code above in your browser using DataLab