Skip to content

nkov/nlp_compromise

 
 

Repository files navigation

CodacyBadge npm version downloads

nlp_compromise does NLP in the browser.

nlp.text('She sells seashells').to_past()
// She sold seashells

Yup,

  • 100k js file
  • 86% on the Penn treebank
  • keypress speed, constant-time.
  • caniuse, uhuh. IE9+
  • no dependencies, training, configuration, or prolog.

It's a handy, and not overly-fancy tool for understanding, changing, and playing with english.

Off you go,

npm install nlp_compromise

<script src="https://npmcdn.com/nlp_compromise@latest/builds/nlp_compromise.min.js"></script>

let nlp = require("nlp_compromise"); // or nlp = window.nlp_compromise

nlp.noun("dinosaur").pluralize();
// "dinosaurs"

nlp.verb("speak").conjugate();
// { past: 'spoke',
//   infinitive: 'speak',
//   gerund: 'speaking',
//   actor: 'speaker',
//   present: 'speaks',
//   future: 'will speak',
//   perfect: 'have spoken',
//   pluperfect: 'had spoken',
//   future_perfect: 'will have spoken'
// }

nlp.statement('She sells seashells').negate().text()
// She doesn't sell seashells

nlp.sentence('I fed the dog').replace('the [Noun]', 'the cat').text()
// I fed the cat

nlp.text("Tony Hawk did a kickflip").people();
// [ Person { text: 'Tony Hawk' ..} ]

nlp.noun("vacuum").article();
// "a"

nlp.person("Tony Hawk").pronoun();
// "he"

nlp.value("five hundred and sixty").number;
// 560

nlp.text(require('nlp-corpus').text.friends()).topics()//11 seasons of friends
// [ { count: 2523, text: 'ross' },
//   { count: 1922, text: 'joey' },
//   { count: 1876, text: 'god' },
//   { count: 1411, text: 'rachel' },
//   ....

#Plugin/Mixins we've also got a modest, though ambitious plugin ecosystem:

//US-UK localization
nlp.plugin(require("nlp-locale"))
nlp.term("favourite").toAmerican()
// favorite

//syllable hyphenization
nlp.plugin(require("nlp-syllables"));
var t2 = nlp.term('houston texas');
t2.syllables()
//[ [ 'hous', 'ton' ], [ 'tex', 'as' ] ]

//semantic n-gram
nlp.plugin(require("nlp-ngram"));
var t4 = nlp.text(`Tony Hawk played Tony Hawk's pro skater`);
t4.ngram({min_count: 2});
// [{word:'tony hawk', count:2, size:1}]

Development

Issue Stats Issue Stats

Useful NLP is a problem only solved with many hands. Contributing in any form is valued.

Join our slack group or our infrequent announcement email-list.

Or just pick up an open issue

We're moving fast

MIT license

About

a cool way to use natural language in javascript

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 99.9%
  • HTML 0.1%