Periodic Table of NLP Tasks in R
  • Workforce Futures
  • Teaching & Tools
  • GitHub
Skip to main content

Natural language processing in R, one idea at a time

A map of natural language processing tasks, with lessons written for readers who are new to the field.

Computers work with human language constantly and mostly out of sight: a search box, a spam filter, a translation, a reply that arrives too fast to have been typed. The field that studies how they do it is called natural language processing, usually shortened to NLP. It covers dozens of connected tasks, from reading a file without corrupting it to generating a paragraph. Each tile below is one of them.

The tasks

Related tasks share a column, and the columns run roughly from getting text in, on the left, through cutting it into usable pieces, to models, generation, systems, and visual explanation. The arrangement is editorial: position tells you what a task is filed near and nothing else about it. Laying the field out at once means a lesson can be found by where it sits rather than by remembering its name. Sixty-two of the eighty-one lessons are written. The rest are planned, and their tiles stay visible so you can see what is coming.

TipStart here

For a course, read in number order because the R code builds on earlier lessons. For a specific problem, open any available lesson; each page introduces its own NLP idea and points out the assumptions it needs.

Read lessonLesson planned
Source and training dataLanguage structureModels and analysisLanguage generationLanguage systemsVisualization

Select a solid-bordered tile to open its lesson. Dashed tiles are planned. If the map is wider than the window, use the buttons, arrow keys, or horizontal scrolling.

Source and training dataSource data loading

  1. 1conceptBitBits to character encodingRead lesson
  2. 2practiceTypManual examples and pattern matchingRead lesson
  3. 3practiceStrLoading a structured data fileRead lesson
  4. 4practiceCorGenerating a corpusRead lesson
  5. 5practiceApiLoading from an APIRead lesson
  6. 6practiceScrCollecting text from a web pageRead lesson
  7. 7taskExtExtracting text from an imageRead lesson

Source and training dataTraining data generation

  1. 8practiceManTurning decisions into labelsRead lesson
  2. 9practiceActChoosing what to label nextRead lesson
  3. 10serviceProInspecting provider schemas and provenanceRead lesson
  4. 11serviceCroWorking with several annotatorsRead lesson
  5. 12practiceAugCreating additional training examplesRead lesson
  6. 13practiceRulLabeling text with written rulesRead lesson

Language structureWord parsing

  1. 14methodTokTokenizationRead lesson
  2. 15practiceVocVocabulary buildingRead lesson
  3. 16methodMorMorphological analysisRead lesson
  4. 17methodPosPart-of-speech taggingRead lesson
  5. 18methodDepDependency parsingRead lesson

Language structureWord processing

  1. 19methodSteStemmingRead lesson
  2. 20methodLemLemmatizationRead lesson
  3. 21practiceNrmNormalizationRead lesson
  4. 22taskSplSpell checkingRead lesson
  5. 23taskNegNegation recognitionRead lesson

Language structurePhrases and entities

  1. 24methodNgrN-gramsRead lesson
  2. 25methodPhrRule-based phrase matchingRead lesson
  3. 26methodChuDependency noun chunksRead lesson
  4. 27taskNerNamed entity recognitionRead lesson
  5. 28taskAbrAbbreviation findingRead lesson

Language structureEntity enrichment

  1. 29taskPriPrice parsingRead lesson
  2. 30taskGeoGeocodingRead lesson
  3. 31taskTmpTemporal parsingRead lesson
  4. 32taskNelNamed entity linkingRead lesson
  5. 33taskCrfCoreference resolutionRead lesson
  6. 34taskAnmText de-identificationRead lesson

Language structureSentences and paragraphs

  1. 35practiceSenSentence segmentationRead lesson
  2. 36practiceParParagraph segmentationRead lesson
  3. 37taskGrmGrammar checkingRead lesson
  4. 38methodReaReadability scoringRead lesson

Language structureDocuments

  1. 39practiceDedDeduplicationRead lesson
  2. 40practiceRawRaw text cleaningRead lesson
  3. 41taskMetMetadata extractionRead lesson
  4. 42taskLngLanguage identificationRead lesson

Models and analysisModel development

  1. 43lifecycleTrnTraining modelsRead lesson
  2. 44lifecycleTstEvaluating modelsRead lesson
  3. 45lifecycleExpExplaining modelsRead lesson
  4. 46lifecycleDplDeploying modelsRead lesson
  5. 47lifecycleMonMonitoring modelsRead lesson

Models and analysisClassification

  1. 48taskSpaSpam detectionRead lesson
  2. 49taskSedSentiment and emotion analysisRead lesson
  3. 50taskIntIntent classificationRead lesson
  4. 51taskClsText classificationRead lesson
  5. 52taskMlcMulti-label and multi-class classificationRead lesson

Models and analysisSignals and discovery

  1. 53taskKeyKeyword extractionRead lesson
  2. 54taskEsuExtractive summarizationRead lesson
  3. 55methodTopTopic modelingRead lesson
  4. 56taskTreTrend detectionRead lesson
  5. 57taskOutOutlier detectionRead lesson

Models and analysisSimilarity

  1. 58resourceSynWordNet synsetsRead lesson
  2. 59methodDstDistance measuresRead lesson
  3. 60taskSimDocument similarityRead lesson
  4. 61conceptDisDistributed word representationsRead lesson
  5. 62conceptConContextualized word representationsRead lesson

Language generationNatural language generation

  1. 63objectiveNexNext-token predictionPlanned
  2. 64applicationRepReport writingPlanned
  3. 65taskTraMachine translationPlanned
  4. 66taskAsuAbstractive summarizationPlanned
  5. 67taskPrpParaphrasingPlanned
  6. 68taskLonLong-text generationPlanned

Language systemsSystems

  1. 69taskRelRelation extractionPlanned
  2. 70taskQanQuestion answeringPlanned
  3. 71applicationChaChatbot dialoguePlanned
  4. 72applicationSemSemantic search indexingPlanned
  5. 73taskKnoKnowledge base populationPlanned
  6. 74applicationEdiE-discovery and media monitoringPlanned

VisualizationInformation visualization

  1. 75applicationAppInteractive app creationPlanned
  2. 76applicationAnnAnnotated text visualizationPlanned
  3. 77applicationWclWord cloudsPlanned
  4. 78applicationEmbWord embedding visualizationPlanned
  5. 79applicationTimEvents on a timelinePlanned
  6. 80applicationMapLocations on a mapPlanned
  7. 81applicationGraKnowledge graph visualizationPlanned
Start with task 1, or enter an available group: source data loading; training data generation; word parsing; word processing; phrases and entities; entity enrichment; sentences and paragraphs; documents; model development; classification; signals and discovery; similarity.
NoteWhat this map is

This is a teaching aid, not a scientific taxonomy or a complete account of the field. It mixes tasks, methods, objectives, resources, services, applications, and work done across a model’s life. Each tile names its item type so those differences stay visible. Some inherited group names are broad or imperfect, and where that happens the lesson says so.

Why these lessons exist

Your director asks how many of last quarter’s 40,000 customer comments are complaints, because next quarter’s support budget depends on the answer. You hand the comments to an AI assistant. It answers in seconds: 22 percent.

The number might be right. The question is how anyone would know.

Start with the word. Before anything can be counted, someone has to say what a complaint is. Is a blunt question a complaint? A compliment with one sharp clause? A report of a broken link? Some answer gets applied to all 40,000 comments, in every run, whether or not a person chose it. A more capable model does not settle this, because the difficulty is not what the model can do. It is what you meant.

Then the margin around it. “About 22 percent” needs the “about” to come from somewhere. One way to investigate how often an automatic answer is wrong is to compare it with a hand-checked sample drawn from the same material. What that comparison supports depends on how the sample was drawn and what the checking rules mean. Some methods instead estimate error from agreement among automatic labellers, but those estimates depend on assumptions about how their errors relate. Checking those assumptions can still require hand-reviewed examples.

Underneath both is the text itself. Every number about a body of writing is really a number about the version of that writing which arrived. Characters get mangled between systems. Rows split at a stray comma. A scanned page reads a digit as a letter. Sometimes that raises an error. Often it does not, and the answer changes while continuing to look reasonable. Lessons 1, 3 and 7 each produce one of these failures on purpose, so you can see what one looks like from the inside.

Whatever a tool absorbs, something is left over. Here what is left over is deciding what to measure, on which material, and when to disbelieve the result. That part has not moved, because it is where the tool gets its instructions and where its output is accepted or rejected.

You can still buy the work. Labelled data is for sale, annotation vendors are easy to hire, and a model will label almost anything you give it, while refusing a few things. Each of those arrives with a number describing how much its labels agree. Reading that number and knowing what it conceals are different skills, and in my experience the second comes from having produced such a number yourself, on your own untidy text, and having watched it flatter you.

None of this says you must do the work by hand. A tool may be useful for drafting, summarising, or exploring unfamiliar text while still needing checks that match the decision. What the parts named here describe is not a fixed capability gap but the shape of a measurement: the definition, the comparison, and the text that actually arrived. The useful amount of checking depends on your text and on the cost of a wrong answer; this page cannot set it for you.

The first thirteen lessons cover getting text out of files, web pages, and scans without damaging it, then building labels you can defend. Lessons 14 through 42 follow the text through tokens and vocabularies, word forms and grammar links, phrases and entities, sentence and paragraph boundaries, and whole-document cleaning, comparison, metadata, and language identification. Together they show where each transformation helps and what information it can lose.

About this site

Available means a lesson source exists and its project-recorded automated checks passed. Those passed values are project assertions, not independent certification. Manual accessibility and final human sign-off remain pending, and the separate review fields are kept in data/lesson_reviews.csv. Practice in this field moves quickly, so where a lesson describes current methods rather than settled ground, it says so and gives a date. The rules a lesson has to meet before it appears here are written down in CONTRIBUTING.md and RESEARCH_STANDARDS.md.

This repository builds and checks the source but does not deploy it. The canonical published location is workforcefutures.net/learn/nlp/. A successful repository build establishes a rendered artifact, not that the canonical host is current or that pending manual reviews have passed.

The task names and groupings are adapted from Rob van Zoest’s Periodic Table of NLP Tasks. That page states no licence and invites reuse. The task names themselves are standard terms in the field; the grouping, wording, interface, and lessons here are separate work, and any error in them belongs to this project. If the original author prefers different terms, this site will follow them.

How computers store text

© 2026 Workforce Futures. Built by Alex Farach.

Plain-language NLP lessons with examples that run.

  • View source
  • Report an issue
  • Accessibility

  • Source

  • Workforce Futures