Research

Joint idiomaticity and span annotation for seven languages

Standard idiom datasets do one of two things: decide whether a sentence is idiomatic, or locate the idiom. MultiIdiom does both for every occurrence, which is what a tool needs if it is going to mark up running text rather than classify it.

The problem

An idiom is non-compositional: its meaning cannot be derived from its parts. That single property defeats word-indexed lookup and literal translation alike, and it makes idioms a persistent failure case for both language learners and NLP systems.

It is also occurrence-dependent. Spilled the beans is idiomatic in one sentence and literal in the next, so a resource that labels phrases rather than usages cannot tell you which one you are reading. Detection has to happen per occurrence, in context, with the extent of the idiom marked — otherwise a downstream tool has nothing to highlight.

The dataset

Languages
7
Idioms
14,505
Senses
34,184
Examples
112,317

Each record carries the idiom, a sense number, one or more definitions, register and region tags, and usage examples. Every example is labelled idiomatic or literal and carries the character-level start and end offsets of the idiom within the sentence.

Roughly a fifth of the annotated senses are labelled literal. They are published deliberately: a model that only ever sees idiomatic usage cannot learn to tell the two apart, and the literal cases are what make the idiomaticity label meaningful rather than a constant.

How it was built

MultiIdiom was constructed with a six-stage LLM-assisted pipeline, seeded from Wiktionary idiom entries and validated against human judgements on a sample of each language.

Stage-by-stage description to be added from the paper draft.

Splits

English, Spanish, Hindi and Telugu are split 80/10/10 at the idiom-type level, so no idiom appears in more than one split. Indonesian, French and German are held out entirely as zero-shot test languages.

Number of annotated instances per language in each split
SplitENESHITEIDFRDETotal
Train2,0302,0345085065,078
Dev2522546261629
Test25125462623258008002,554
Total2,5332,5426326293258008008,261

Annotator agreement

Idiomaticity labels were checked against independent human judgements for two languages.

  • English91.86%203 of 221
  • Telugu88.24%90 of 102

Models

Three models, three different relationships to MultiIdiom and to what’s actually running. Not all of them are the same checkpoint they might look like at a glance.

IdiomBERT (System E) — jointBeta feature in the live extractor

Task
Joint idiomaticity classification + span start/end localization
Base
google-bert/bert-base-multilingual-cased
Trained on
MultiIdiom — EN, ES, HI, TE

One forward pass yields a literal/idiomatic label and the span indices. Task heads ship separately in task_heads.pt — see the model card for the exact loading procedure. Powers the extractor’s "Literal vs. idiomatic" method — the only one that judges sentences with no idiom at all, not just the ones with one.

Earlier prototype — BIO token classifierDefault in the live extractor

Task
BIO sequence labelling (O / B-IDIOM / I-IDIOM)
Base
google-bert/bert-base-multilingual-cased
Trained on
ID10M (Tedeschi et al., 2022)

A LoRA adapter over mBERT, fine-tuned on the public ID10M dataset — predates MultiIdiom and is not the model the research below evaluates. It is the default "Model" method in the extractor today because it is the only full BIO checkpoint that still exists as deployable weights. Structurally has no literal/idiomatic decision: it flags a span or it doesn’t.

System G — BIO token classifierNot currently deployed

Task
BIO sequence labelling (O / B-IDIOM / I-IDIOM)
Base
google-bert/bert-base-multilingual-cased
Trained on
MultiIdiom — EN, ES, HI, TE

Full fine-tune (not LoRA), trained and evaluated on MultiIdiom — this is the checkpoint the accuracy figures on this site and in the paper refer to. Not currently deployed: the trained weights exist only as saved predictions, not as a loadable checkpoint, so it cannot serve the live extractor until retrained or recovered.

Language coverage

Per-language dictionary size, test-set size and training status
LanguageCodeStatusDictionary idiomsTest instances
Englishentrained9,643251
Spanishestrained3,187254
Hindihitrained18362
Telugutetrained10362
Germandezero-shot1,018800
Frenchfrzero-shot332800
Indonesianidzero-shot46325

Earlier releases

Citation details and BibTeX are on the publications page. The tools built on this work are the extractor and the dictionary.