{
  "_id": "6a1b1b4b1d7bb097a0a0e411",
  "Package": "tmfast",
  "Title": "Fast Topic Models Using Varimax",
  "Version": "0.1.1",
  "Authors@R": "person(\"D.\", \"Hicks\", , \"hicks.daniel.j@gmail.com\", role = c(\"aut\", \"cre\", \"cph\"),\ncomment = c(ORCID = \"0000-0001-7945-4416\"))",
  "Description": "Fits topic models using varimax-rotated principal\ncomponent analysis (PCA), following the \"vintage factor\nanalysis\" approach of Rohe & Zheng (2020)\n<doi:10.48550/arXiv.2004.05387>. Leverages truncated PCA via\n'irlba' for sparse matrices, enabling fast model fitting on\nlarge corpora. Includes an information-theoretic approach to\nvocabulary selection, 'broom'-compatible tidiers for extracting\nword-topic and topic-document matrices into a tidy data\nworkflow, and samplers for constructing simulated corpora for\nbenchmarking and method evaluation.",
  "License": "GPL (>= 3)",
  "Encoding": "UTF-8",
  "RoxygenNote": "7.3.2",
  "Additional_repositories": "https://dhicks.github.io/drat/",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "URL": "https://dhicks.github.io/tmfast/, https://github.com/dhicks/tmfast",
  "BugReports": "https://github.com/dhicks/tmfast/issues",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-30 17:09:52 UTC",
    "User": "root"
  },
  "Author": "D. Hicks [aut, cre, cph] (ORCID:\n<https://orcid.org/0000-0001-7945-4416>)",
  "Maintainer": "D. Hicks <hicks.daniel.j@gmail.com>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-05-30 13:40:02 UTC",
  "RemoteUrl": "https://github.com/cran/tmfast",
  "RemoteRef": "HEAD",
  "RemoteSha": "1342f37e06e22d9c6cc3fa202ebd8eaefd2a246f",
  "MD5sum": "bc75d7300aca894f9202c6d27410c001",
  "_user": "cran",
  "_type": "src",
  "_file": "tmfast_0.1.1.tar.gz",
  "_fileid": "1a710c983e3c11a167a6c9fc02ed9e0957e58dc5d21404e72ef2e371b0a92d21",
  "_filesize": 2392761,
  "_sha256": "1a710c983e3c11a167a6c9fc02ed9e0957e58dc5d21404e72ef2e371b0a92d21",
  "_created": "2026-05-30T17:09:52.000Z",
  "_published": "2026-05-30T17:15:55.743Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 78664384809,
      "time": 297,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7309924596"
    },
    {
      "job": 78664384814,
      "time": 317,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7309926861"
    },
    {
      "job": 78663917039,
      "time": 479,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7309893428"
    },
    {
      "job": 78664384834,
      "time": 263,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7309921205"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/26689721493",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/cran/tmfast",
  "_commit": {
    "id": "1342f37e06e22d9c6cc3fa202ebd8eaefd2a246f",
    "author": "D. Hicks <hicks.daniel.j@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.1.1\n",
    "time": 1780148402
  },
  "_maintainer": {
    "name": "D. Hicks",
    "email": "hicks.daniel.j@gmail.com",
    "login": "dhicks",
    "description": "Mathematician turned philosopher of science turned science policy + bibliometrics researcher turned whatever the hell I am now",
    "uuid": 3300682,
    "orcid": "0000-0001-7945-4416"
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "assertthat",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "magrittr",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "stringr",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "tidyselect",
      "role": "Imports"
    },
    {
      "package": "irlba",
      "role": "Imports"
    },
    {
      "package": "tidytext",
      "role": "Imports"
    },
    {
      "package": "glue",
      "role": "Imports"
    },
    {
      "package": "Matrix",
      "role": "Imports"
    },
    {
      "package": "generics",
      "role": "Imports"
    },
    {
      "package": "psych",
      "role": "Imports"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "ggbeeswarm",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "Rtsne",
      "role": "Suggests"
    },
    {
      "package": "umap",
      "role": "Suggests"
    },
    {
      "package": "lpSolve",
      "role": "Suggests"
    },
    {
      "package": "janeaustenr",
      "role": "Suggests"
    },
    {
      "package": "stm",
      "role": "Suggests"
    },
    {
      "package": "tictoc",
      "role": "Suggests"
    },
    {
      "package": "furrr",
      "role": "Suggests"
    },
    {
      "package": "reshape2",
      "role": "Suggests"
    },
    {
      "package": "tmfast.realbooks",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-22",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.1.1",
      "date": "2026-05-30"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "dhicks",
      "count": 1,
      "uuid": 3300682
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/tmfast"
  },
  "_devurl": "https://github.com/dhicks/tmfast",
  "_pkgdown": "https://dhicks.github.io/tmfast/",
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/tmfast.html",
    "manual.pdf"
  ],
  "_cranurl": false,
  "_releases": [
    {
      "version": "0.1.1",
      "date": "2026-05-30"
    }
  ],
  "_exports": [
    "build_matrix",
    "compare_betas",
    "draw_corpus",
    "entropy",
    "expected_entropy",
    "fit_varimax",
    "hellinger",
    "insert_topics",
    "journal_specific",
    "loadings",
    "ndH",
    "ndR",
    "peak_alpha",
    "rdirichlet",
    "renorm",
    "rotation",
    "scores",
    "solve_power",
    "target_power",
    "tidy",
    "tidy_all",
    "tmfast",
    "tsne",
    "umap",
    "varimax_irlba"
  ],
  "_help": [
    {
      "page": "tmfast-package",
      "title": "Fitting \"topic models\" with PCA+varimax",
      "topics": [
        "tmfast-package"
      ]
    },
    {
      "page": "build_matrix",
      "title": "Convert a long dataframe to a wide (sparse) matrix",
      "topics": [
        "build_matrix"
      ]
    },
    {
      "page": "compare_betas",
      "title": "Compare topic-word distributions using Hellinger distance",
      "topics": [
        "compare_betas"
      ]
    },
    {
      "page": "draw_corpus",
      "title": "Draw a collection of documents",
      "concept": [
        "generators"
      ],
      "topics": [
        "draw_corpus"
      ]
    },
    {
      "page": "entropy",
      "title": "Entropy of a distribution",
      "topics": [
        "entropy"
      ]
    },
    {
      "page": "expected_entropy",
      "title": "Expected entropy for samples from a Dirichlet distribution",
      "topics": [
        "expected_entropy"
      ]
    },
    {
      "page": "fit_varimax",
      "title": "Given a (rank 'n') PCA fit, return a rank 'k < n' varimax fit",
      "topics": [
        "fit_varimax"
      ]
    },
    {
      "page": "hellinger",
      "title": "Hellinger distances",
      "topics": [
        "hellinger",
        "hellinger.data.frame",
        "hellinger.Matrix",
        "hellinger.matrix"
      ]
    },
    {
      "page": "insert_topics",
      "title": "Insert a topic model into a fitted 'tmfast'",
      "topics": [
        "insert_topics"
      ]
    },
    {
      "page": "journal_specific",
      "title": "\"Journal-specific\" simulation scenario",
      "concept": [
        "generators"
      ],
      "topics": [
        "journal_specific"
      ]
    },
    {
      "page": "loadings",
      "title": "Extract a PCA/varimax loadings matrix",
      "topics": [
        "loadings",
        "loadings.default"
      ]
    },
    {
      "page": "ndH",
      "title": "Information gain (uniform distribution)",
      "topics": [
        "ndH"
      ]
    },
    {
      "page": "ndR",
      "title": "Information gain (length-proportional distribution)",
      "topics": [
        "ndR"
      ]
    },
    {
      "page": "peak_alpha",
      "title": "Alpha parameter with a single peak",
      "concept": [
        "generators"
      ],
      "topics": [
        "peak_alpha"
      ]
    },
    {
      "page": "predict.varimaxes",
      "title": "Project new data into PCA score space",
      "topics": [
        "predict.varimaxes"
      ]
    },
    {
      "page": "rdirichlet",
      "title": "Sample from the Dirichlet distribution",
      "concept": [
        "generators"
      ],
      "topics": [
        "rdirichlet"
      ]
    },
    {
      "page": "renorm",
      "title": "Renormalize tidied distributions",
      "topics": [
        "renorm"
      ]
    },
    {
      "page": "rotation",
      "title": "Extract varimax rotation",
      "topics": [
        "rotation"
      ]
    },
    {
      "page": "scores",
      "title": "Extract item scores from a fitted PCA/varimax model",
      "topics": [
        "scores"
      ]
    },
    {
      "page": "solve_power",
      "title": "Solve the equation to find the desired exponent",
      "topics": [
        "solve_power"
      ]
    },
    {
      "page": "target_power",
      "title": "Find target power for renormalization",
      "topics": [
        "target_power"
      ]
    },
    {
      "page": "tidy_all",
      "title": "Extract gamma or beta matrices for all topics",
      "topics": [
        "tidy_all"
      ]
    },
    {
      "page": "tidy.tmfast",
      "title": "Extract beta and gamma matrices from 'tmfast' objects",
      "topics": [
        "tidy.tmfast"
      ]
    },
    {
      "page": "tmfast",
      "title": "Fit a topic model using PCA+varimax",
      "topics": [
        "tmfast"
      ]
    },
    {
      "page": "tsne",
      "title": "Discursive space using t-SNE",
      "topics": [
        "tsne",
        "tsne.data.frame",
        "tsne.STM",
        "tsne.tmfast"
      ]
    },
    {
      "page": "umap",
      "title": "Discursive space using UMAP",
      "topics": [
        "umap",
        "umap.matrix",
        "umap.STM",
        "umap.tmfast"
      ]
    },
    {
      "page": "varimax_irlba",
      "title": "Fit a varimax-rotated PCA using irlba",
      "topics": [
        "varimax_irlba"
      ]
    }
  ],
  "_readme": "https://github.com/cran/tmfast/raw/HEAD/README.md",
  "_rundeps": [
    "assertthat",
    "cli",
    "cpp11",
    "dplyr",
    "generics",
    "glue",
    "GPArotation",
    "irlba",
    "janeaustenr",
    "lattice",
    "lifecycle",
    "magrittr",
    "Matrix",
    "mnormt",
    "nlme",
    "pillar",
    "pkgconfig",
    "psych",
    "purrr",
    "R6",
    "Rcpp",
    "rlang",
    "SnowballC",
    "stringi",
    "stringr",
    "tibble",
    "tidyr",
    "tidyselect",
    "tidytext",
    "tokenizers",
    "utf8",
    "vctrs",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "realbooks.Rmd",
      "filename": "realbooks.html",
      "title": "Fast topic modeling with real books",
      "author": "Dan Hicks hicks.daniel.j@gmail.com",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Setup",
        "Corpus assembly",
        "Vocabulary selection",
        "Fit topic models",
        "Topic exploration"
      ],
      "created": "2026-05-30 13:40:02",
      "modified": "2026-05-30 13:40:02",
      "commits": 1
    },
    {
      "source": "simulated.Rmd",
      "filename": "simulated.html",
      "title": "Fitting topic models (and simulating text data) with tmfast",
      "author": "Dan Hicks hicks.daniel.j@gmail.com",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Simulated text data",
        "Simulation parameters",
        "Draw true topic distributions",
        "Draw true word distributions",
        "Document lengths",
        "Draw corpus",
        "Fit the topic model",
        "Fitting a conventional topic model (stm)",
        "Assessing accuracy",
        "Renormalizing fitted distributions",
        "Topic alignment",
        "Topic-document distributions",
        "Discursive space visualization using t-SNE and UMAP"
      ],
      "created": "2026-05-30 13:40:02",
      "modified": "2026-05-30 13:40:02",
      "commits": 1
    }
  ],
  "_score": 3,
  "_indexed": false,
  "_nocasepkg": "tmfast",
  "_universes": [
    "cran",
    "dhicks"
  ],
  "_indexurl": "https://dhicks.r-universe.dev/tmfast",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.1",
      "date": "2026-05-30T17:14:35.000Z",
      "distro": "noble",
      "commit": "1342f37e06e22d9c6cc3fa202ebd8eaefd2a246f",
      "fileid": "4527a564a61162a74e92adf045255c21d1e8de2ed6f9365aacf702fee478ced9",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/26689721493"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.1.1",
      "date": "2026-05-30T17:14:57.000Z",
      "distro": "noble",
      "commit": "1342f37e06e22d9c6cc3fa202ebd8eaefd2a246f",
      "fileid": "9ac7577136a2493e0ecd97d31e569300e4caa90746b7ea805cc6a2b068783fd3",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/26689721493"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.1",
      "date": "2026-05-30T17:14:41.000Z",
      "commit": "1342f37e06e22d9c6cc3fa202ebd8eaefd2a246f",
      "fileid": "d1ae30af8fa93ae2663e47d156c0143986715e61d2480c5fdf6c79fbd5ca9700",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/26689721493"
    }
  ]
}