ForHosting KIT · Developer Utilities

Rank a vocabulary list by word frequency for teaching priority

This vocabulary frequency ranker turns a proposed word list into a practical teaching order.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

Supply the words you are considering and a general frequency table from a corpus appropriate to your learners. The result places referenced words from highest to lowest frequency, keeps equal-frequency words in their original order, and moves words absent from the reference to the end. Each result shows whether it matched and the frequency used, so teachers, curriculum writers, and learning-product teams can review the ranking instead of treating it as an unexplained score.

Choose a frequency reference that fits the learners

A frequency ranking is only as relevant as its reference corpus. Start with a broad table drawn from the language and register your learners need: everyday conversation, general written English, school texts, or another clearly defined collection. Every table entry needs a word and a non-negative frequency value. The value may be a raw count, occurrences per million words, or another consistent rate, because the ranker compares magnitudes rather than assuming a particular unit. Do not mix counts from unrelated corpora in one table, since a raw count from a very large source will overwhelm a normalized rate from a smaller one. By default, matching ignores letter case and trims surrounding whitespace, so “Water” can match a reference entry for “water.” Enable case-sensitive matching only when capitalization distinguishes items important to your lesson. Reference keys must remain unique after this normalization; duplicate keys are rejected rather than combined silently. This makes the source of every returned frequency clear and keeps repeated or conflicting reference rows from producing an arbitrary teaching order.

Read the ranked list and unmatched entries

The response orders matched vocabulary from the largest reference frequency to the smallest. A common function word may therefore appear before a familiar content word, while a specialist term may fall much later. When two entries have exactly the same frequency, their order in your original word list is preserved, giving you a stable result that does not change between runs. Words missing from the reference table are placed after every matched word and also retain their original relative order. They receive a frequency of zero and found_in_reference is false, so they cannot be confused with successfully matched terms when you inspect the Boolean field. The summary counts show how many submitted entries matched and how many did not. The capability preserves repeated entries in the vocabulary list because each list position may represent a deliberate curriculum item; it does not deduplicate or rewrite spelling. Treat rank as a prioritization signal, not a statement of difficulty. Frequency says how often a form appears in the chosen corpus, but it does not measure conceptual complexity, pronunciation, learner need, or instructional prerequisites.

Turn corpus evidence into a teaching sequence

Use the ranking as the first pass in curriculum planning, then apply professional judgment. High-frequency words usually offer broad exposure and early payoff, so they are sensible candidates for introductory lessons, retrieval practice, or limited flashcard space. However, a lower-frequency word can be essential when it unlocks a current science unit, workplace task, exam objective, or safety instruction. Review unmatched items separately: absence may mean the term is rare, but it may also reveal a spelling variant, inflected form, multiword expression, or a gap in the corpus. For reproducible planning, record the corpus name, version, date, and frequency unit alongside the output even though those details are not needed by the calculation. The browser runner is useful for individual lists, while automated curriculum pipelines can call the same deterministic operation through the API for $0.002 per request. Because no network lookup occurs, you control the reference table and can rerun exactly the same comparison later. A strong workflow ranks the list, investigates unmatched words, overlays curricular importance and learner level, and then documents any intentional departures from frequency order.

Plan an introductory word set

Put broadly encountered words first when lesson time or flashcard space is limited.

Audit a curriculum vocabulary list

Compare proposed terms with a documented corpus and flag words the reference does not contain.

Prioritize language-learning content

Create a stable first-pass order before editors apply level, topic, and instructional judgments.

What kind of frequency values can I use?

Use counts, occurrences per million, or any other non-negative numeric measure, provided every row uses the same unit and corpus basis.

What happens to words missing from the table?

They appear after all matched words, with found_in_reference set to false and frequency set to zero, while preserving their submitted order.

How are ties resolved?

Words with the same match status and frequency keep their order from the original vocabulary list.

Is matching case-sensitive?

Not by default. Matching trims surrounding whitespace and ignores letter case unless case_sensitive is true.

What does an API request cost?

Each API request costs $0.002. The same deterministic ranking can also run in the browser.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/edu/vocabulary-list-frequency-rank

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/edu/vocabulary-list-frequency-rank \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"words":["photosynthesis","water","ecosystem","the"],"frequency_table":[{"word":"the","frequency":22038615},{"word":"water","frequency":31245},{"word":"ecosystem","frequency":2310}]}'
{
  "words": [
    "photosynthesis",
    "water",
    "ecosystem",
    "the"
  ],
  "frequency_table": [
    {
      "word": "the",
      "frequency": 22038615
    },
    {
      "word": "water",
      "frequency": 31245
    },
    {
      "word": "ecosystem",
      "frequency": 2310
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "edu.vocabulary_list_frequency_rank",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →