Language is complicated and there's a gazillion words. Compromise is a javascript library that interprets and pre-parses text and makes some reasonable decisions so things are way easier. Compromise tries its best to parse text. it is small, quick, and often good-enough. It is not as smart as you'd think. Conjugate and negate verbs in any tense. Play between plural, singular and possessive forms. Interpret plain-text numbers. Handle implicit terms. Use it on the client-side or as an es-module. compromise is 180kb (minified). It's pretty fast. It can run on keypress. It works mainly by conjugating all forms of a basic word list. Decide how words get interpreted or make heavier changes with a compromise-plugin. Parse text without running POS-tagging. Pre-parse any match statements for faster lookups. It is not the most accurate, or clever nlp library, but found its niche as an easy, small library that can run everywhere.