github.com
Compromise is a JavaScript natural-language processing library that turns text into data, offering tokenization of words, sentences and punctuation along with part-of-speech tagging, matching, and transformations such as verb conjugation and number handling. It runs on the client side, is about 250kb minified, and includes plugins, with multilingual support listed for French, German, Italian and Spanish.