Confidential, authorship-first academic support

Text Mining, Topic Modeling & Sentiment Analysis

When your corpus is too large to read closely, text mining can surface topics, sentiment and trends. The results are only as good as your preprocessing and validation. We help you build a transparent pipeline and check that the numbers match what the texts actually say.

  • Clear written scope before work starts
  • Explained so you can defend it yourself
  • Confidential, and you remain the author

Get a quote for this service

Three quick questions. No files, no obligation.

  • Confidential
  • You stay the author
  • Written scope first
On this page

Overview

Text mining covers a range of methods: word frequencies and keyness, n-grams and collocations, topic models, sentiment and emotion analysis, and supervised text classification. Researchers apply them to online reviews, social media, news archives, parliamentary speeches, open-ended survey responses, patents and scientific abstracts.

Each step involves choices that change results: how you tokenize, whether you remove stop words or lemmatize, how many topics you fit, which sentiment dictionary or model you use and whether it suits your domain and language. We make these choices explicit, test their influence and document them for your methods section.

Crucially, we validate. Topic models are checked by reading representative documents and, where appropriate, coherence measures; sentiment or classification outputs are compared with a human-coded sample. That turns an impressive visualization into evidence you can defend.

Who it’s for and the problems it solves

This is for you if you are…

  • Students and researchers in marketing, communication, political science, public health and information systems working with large text datasets
  • Researchers with open-ended survey responses too numerous to code manually
  • Doctoral candidates combining computational text analysis with qualitative reading
  • Authors whose reviewers asked how a topic model or sentiment classifier was validated

Common problems we help with

  • Your topics are a jumble of stop words or look different every time you run the model
  • You are unsure how to choose the number of topics
  • A sentiment lexicon rates sarcastic or domain-specific text wrongly
  • You want to use a transformer model but do not know how to fine-tune or validate it
  • You have no clear way to report accuracy against human judgement

What’s included — and what isn’t

Included

  • Corpus design and cleaning: deduplication, language detection, handling of emojis, URLs, hashtags and metadata
  • Preprocessing: tokenization, stop-word handling, lemmatization or stemming, n-grams and document-term matrices, with sensitivity checks
  • Descriptive text analysis: frequencies, TF-IDF, keyness, collocations and trends over time or across groups
  • Topic modeling: LDA, structural topic models (STM) with covariates, and BERTopic using embeddings and clustering
  • Sentiment and emotion analysis: lexicon-based (VADER, NRC, domain dictionaries) and transformer-based classifiers
  • Supervised text classification with fine-tuned transformer models (for example, BERT-family models) where you have labeled data
  • Validation: human-coded gold-standard samples, precision/recall/F1, agreement statistics and qualitative reading of representative texts
  • Visualizations and reproducible code in Python or R

Not included

  • Scraping data in breach of platform terms, copyright or your ethics approval
  • Presenting unvalidated sentiment scores or topic labels as findings
  • Writing the interpretation chapter of your thesis; we explain what the outputs mean

What you receive

Preprocessing log
A step-by-step record of cleaning and preprocessing decisions with the number of documents and tokens at each stage.
Model outputs
Topic-term tables, representative documents per topic, topic prevalence by group or time, or sentiment distributions.
Validation report
Comparison with a human-coded sample, including precision, recall, F1 and a confusion matrix, plus notes on systematic errors.
Reproducible code
Annotated Python notebook or R/Quarto document with package versions and random seeds.
Walkthrough
A session explaining how the models work, what the outputs show and their limits.

How it works

  1. Scope the corpus

    We define the research questions, text sources, time frame and units of analysis.

  2. Prepare and explore

    We clean the data, run descriptive analyses and agree preprocessing choices with you.

  3. Model

    We fit topic, sentiment or classification models and compare settings.

  4. Validate and report

    We check outputs against human judgment, refine where needed and deliver outputs with a walkthrough.

Techniques and libraries

LDA
Latent Dirichlet allocation for bag-of-words topic discovery; topic number chosen with coherence, held-out likelihood and interpretability.
Structural topic models
STM in R lets topic prevalence or content vary with document metadata such as date, outlet or respondent group.
BERTopic
Embeds documents with sentence transformers, reduces dimensions with UMAP, clusters with HDBSCAN and describes topics with class-based TF-IDF; well suited to short texts.
Lexicon sentiment
VADER for social media style text, NRC for emotions, and domain-specific dictionaries; fast and transparent but blind to context and sarcasm.
Transformer models
Pretrained or fine-tuned models via Hugging Face transformers for sentiment, stance or custom categories; stronger with context but need labeled validation data.
Software
Python (spaCy, scikit-learn, gensim, BERTopic, transformers) and R (quanteda, tidytext, stm, topicmodels).

Choosing the number of topics

There is no correct number of topics. Coherence scores and held-out likelihood help narrow the range, but the final choice should rest on whether topics are distinct, interpretable and useful for your question. We fit several solutions, read representative documents for each and document why the chosen solution was preferred. In BERTopic, the equivalent decisions concern embedding models, clustering parameters and outlier handling.

Validating sentiment and classification

Off-the-shelf sentiment tools are trained on particular kinds of text. Product reviews, political tweets and patient comments express sentiment differently. We draw a random sample, have it coded by you or a second coder using clear rules, and report how well the automated method matches.

  • Report precision, recall and F1 per class, not only overall accuracy
  • Inspect misclassified examples to understand systematic errors
  • Check performance across subgroups or time periods if you will compare them
  • Keep human-coded validation data separate from any fine-tuning data

Combining computation with close reading

Computational methods are strongest when paired with qualitative interpretation. A topic model can map a large corpus; close reading of representative texts explains what each topic means. We help you design this mixed approach and describe it clearly, especially when examiners come from qualitative traditions.

What the work can look like

Illustrative example — fictional data

Illustrative topic model and sentiment validation

A fictional public health project analyzed 25,000 online comments about a vaccination campaign. All figures and topics are invented for illustration.

Topic model

BERTopic identified 18 topics after merging near-duplicates; 22% of comments were outliers. The largest topics concerned side effects, access and trust in authorities. Each topic was labeled after reading 20 representative comments.

Sentiment validation

VADER compared with 400 human-coded comments gave macro-F1 of 0.58, failing on sarcasm. A fine-tuned transformer reached macro-F1 of 0.79 on a held-out set, so it was used for the main analysis.

Illustrative only; the dataset, topics and scores are fictional and show reporting style, not a real client project.

See more illustrative examples

What you’ll need to provide

  • Research questions and how text results will feed into your argument
  • The corpus in a structured format (CSV, JSON, text files) with metadata
  • Confirmation that data collection complied with platform terms and ethics approval
  • Any existing labeled data or willingness to code a validation sample
  • Languages involved and preferred software

You don’t need everything ready to ask for a quote — tell us what you have and we’ll say what’s missing.

What affects price and turnaround

Price depends on

  • Corpus size, format and cleaning needs
  • Number of methods (for example, topic model plus sentiment plus classification)
  • Whether fine-tuning a transformer model is required
  • Languages involved
  • Size of the validation sample and whether we help design the coding scheme

Turnaround depends on

  • Data access and format
  • Compute time for embedding or fine-tuning large corpora
  • Time needed for you to code the validation sample

Every project is quoted individually. How we price our work.

Questions people ask before starting

Can you collect the data from social media for me?

We can advise on legitimate data sources, official APIs and ethics considerations. Data collection must comply with platform terms, copyright and your ethics approval, and access to some platforms' data has become more restricted, so check options early.

Is BERTopic better than LDA?

Not always. BERTopic often works better for short texts and captures semantic similarity, while LDA and STM are well established, easier to relate to word counts and allow covariates in STM. We choose based on your data and question, and sometimes compare both.

Do I need labeled data for sentiment analysis?

For lexicon methods, no, but you still need a labeled sample to validate. For fine-tuning a transformer model, yes; the amount depends on the task. We help you plan a feasible labeling effort.

Can you work with languages other than English?

Many tools support other languages, with varying quality. Tell us the languages at the start and we will recommend suitable models and validation.

Can I use a large language model to label my texts?

LLM-assisted labeling is possible, but it must be validated against human coding, documented and permitted by your data-sharing rules. We help you decide whether it is appropriate.

Plan your text analysis

Tell us about your corpus, research question and deadline, and we will suggest a validated approach.

Get a free quote
WhatsApp us