From 6ef8c8ce5b9f288c9cfb751bffe3a56761554530 Mon Sep 17 00:00:00 2001 From: moos Date: Thu, 3 May 2012 01:40:25 -0700 Subject: [PATCH] updated README. --- README.md | 165 +++++++++++++++++++++++++++--------------------------- 1 file changed, 83 insertions(+), 82 deletions(-) diff --git a/README.md b/README.md index 19f907c..963b3ad 100644 --- a/README.md +++ b/README.md @@ -1,48 +1,47 @@ wordpos ======= -wordpos is a set of part-of-speech utilities for Node.js using [natural's](http://github.com/NaturalNode/natural) WordNet module. +wordpos is a set of part-of-speech utilities for Node.js using [natural's] http://github.com/NaturalNode/natural) WordNet module. There is no lexigraphical intelligence here. Only dictionary lookup. +Usage +------- + +```js +var WordPOS = require('./wordpos'), + wordpos = new WordPOS('dict'); + +wordpos.getAdjectives('The angry bear chased the frightened little squirrel.', function(result){ + console.log(result); +}); +// [ 'little', 'angry', 'frightened' ] + +wordpos.isAdjective('awesome', function(result){ + console.log(result); +}); +// true +``` + +See `wordpos_spec.js` for full usage. + Installation ------------ Get the script `wordpos.js` and use it. (npm module may be coming.) -You may also want to manually download WordNet files from [here](http://wordnet.princeton.edu/wordnet/download/current-version/). -Unpack into folder (say `dict`, see below). [natrual](http://github.com/NaturalNode/natural) will auto-download WordNet files -- +You may also want to manually download WordNet files from [here](http://wordnet.princeton.edu/wordnet/download/current-version/). Unpack into folder (say `dict`, see below). [natrual](http://github.com/NaturalNode/natural) will auto-download WordNet files -- but I've found this to be unreliable as some of the files get truncated and the core program hangs. Note: `wordpos-bench` requires a customized [uubench](https://github.com/moos/uubench) module (forthcoming). -Usage -------- - -```js - var WordPOS = require('./wordpos'), - wordpos = new WordPOS('dict'); - - wordpos.getAdjectives('The angry bear chased the frightened little squirrel.', function(result){ - console.log(result); - }); - // [ 'little', 'angry', 'frightened' ] - - wordpos.isAdjective('awesome', function(result){ - console.log(result); - }); - // true -``` -See `wordpos_spec.js` for full usage. - API ------- Please note: all API are async since the underlying WordNet library is async. -WordPOS is a subclass of natural's [WordNet](https://github.com/NaturalNode/natural#wordnet) class -and inherits call it's methods. +WordPOS is a subclass of natural's [WordNet class](https://github.com/NaturalNode/natural#wordnet) and inherits call its methods. ### getX() @@ -50,24 +49,24 @@ and inherits call it's methods. Get POS from text. ```js - wordpos.getPOS(str, callback) -- callback receives a result object: - { - nouns:[], Array of str words that are nouns - verbs:[], Array of str words that are verbs - adjectives:[], Array of str words that are adjectives - adverbs:[], Array of str words that are adverbs - rest:[] Array of str words that are not in dict - } - - Note: a word may appear in multiple POS (eg, 'great' is both a noun and an adjective) +wordpos.getPOS(str, callback) -- callback receives a result object: + { + nouns:[], Array of str words that are nouns + verbs:[], Array of str words that are verbs + adjectives:[], Array of str words that are adjectives + adverbs:[], Array of str words that are adverbs + rest:[] Array of str words that are not in dict + } - wordpos.getNouns(str, callback) -- callback receives an array of nouns in str + Note: a word may appear in multiple POS (eg, 'great' is both a noun and an adjective) + +wordpos.getNouns(str, callback) -- callback receives an array of nouns in str - wordpos.getVerbs(str, callback) -- callback receives an array of verbs in str - - wordpos.getAdjectives(str, callback) -- callback receives an array of adjectives in str - - wordpos.getAdverbs(str, callback) -- callback receives an array of adverbs in str +wordpos.getVerbs(str, callback) -- callback receives an array of verbs in str + +wordpos.getAdjectives(str, callback) -- callback receives an array of adjectives in str + +wordpos.getAdverbs(str, callback) -- callback receives an array of adverbs in str ``` NB: If you're only interested in a certain POS (say, adjectives), using the particular getX() is faster @@ -79,8 +78,8 @@ are stripped out from str before lookup. Example: ```js - wordpos.getNouns('The angry bear chased the frightened little squirrel.', console.log) - // [ 'bear', 'squirrel', 'little', 'chased' ] +wordpos.getNouns('The angry bear chased the frightened little squirrel.', console.log) +// [ 'bear', 'squirrel', 'little', 'chased' ] ``` getNouns() returns all words within given (context-free) string of words that can be considered nouns (via @@ -93,29 +92,29 @@ would be considered nouns. (see http://nltk.googlecode.com/svn/trunk/doc/book/c Determine if a word is a particular POS. ```js - wordpos.isNoun(word, callback) -- callback receives result (true/false) if word is a noun. - - wordpos.isVerb(word, callback) -- callback receives result (true/false) if word is a verb. - - wordpos.isAdjective(word, callback) -- callback receives result (true/false) if word is an adjective. - - wordpos.isAdverb(word, callback) -- callback receives result (true/false) if word is an adverb. +wordpos.isNoun(word, callback) -- callback receives result (true/false) if word is a noun. + +wordpos.isVerb(word, callback) -- callback receives result (true/false) if word is a verb. + +wordpos.isAdjective(word, callback) -- callback receives result (true/false) if word is an adjective. + +wordpos.isAdverb(word, callback) -- callback receives result (true/false) if word is an adverb. ``` Examples: ```js - wordpos.isVerb('fish', console.log); - // true - - wordpos.isNoun('fish', console.log); - // true - - wordpos.isAdjective('fishy', console.log); - // true - - wordpos.isAdverb('fishly', console.log); - // false +wordpos.isVerb('fish', console.log); +// true + +wordpos.isNoun('fish', console.log); +// true + +wordpos.isAdjective('fishy', console.log); +// true + +wordpos.isAdverb('fishly', console.log); +// false ``` ### lookupX() @@ -124,39 +123,41 @@ These calls are similar to natural's [lookup()](https://github.com/NaturalNode/n already know the POS of the word. ```js - wordpos.lookupNoun(word, callback) -- callback receives array of lookup objects for a noun - - wordpos.lookupVerb(word, callback) -- callback receives array of lookup objects for a verb - - wordpos.lookupAdjective(word, callback) -- callback receives array of lookup objects for an adjective - - wordpos.lookupAdverb(word, callback) -- callback receives array of lookup objects for an adverb +wordpos.lookupNoun(word, callback) -- callback receives array of lookup objects for a noun + +wordpos.lookupVerb(word, callback) -- callback receives array of lookup objects for a verb + +wordpos.lookupAdjective(word, callback) -- callback receives array of lookup objects for an adjective + +wordpos.lookupAdverb(word, callback) -- callback receives array of lookup objects for an adverb ``` Example: ```js - wordpos.lookupAdjective('awesome', console.log); - // output: - [ { synsetOffset: 1282510, - lexFilenum: 0, - pos: 's', - wCnt: 5, - lemma: 'amazing', - synonyms: [ 'amazing', 'awe-inspiring', 'awesome', 'awful', 'awing' ], - lexId: '0', - ptrs: [], - gloss: 'inspiring awe or admiration or wonder; "New York is an amazing city"; "the Grand Canyon is an awe-inspiring - sight"; "the awesome complexity of the universe"; "this sea, whose gently awful stirrings seem to speak of some hidden s - oul beneath"- Melville; "Westminster Hall\'s awing majesty, so vast, so high, so silent" ' } ] +wordpos.lookupAdjective('awesome', console.log); +// output: +[ { synsetOffset: 1282510, + lexFilenum: 0, + pos: 's', + wCnt: 5, + lemma: 'amazing', + synonyms: [ 'amazing', 'awe-inspiring', 'awesome', 'awful', 'awing' ], + lexId: '0', + ptrs: [], + gloss: 'inspiring awe or admiration or wonder; "New York is an amazing city"; "the Grand Canyon is an awe-inspiring +sight"; "the awesome complexity of the universe"; "this sea, whose gently awful stirrings seem to speak of some hidden s +oul beneath"- Melville; "Westminster Hall\'s awing majesty, so vast, so high, so silent" ' } ] ``` In this case only one lookup was found. But there could be several. Or use WordNet's inherited method directly: - wordpos.lookup('great', console.log); - // ... +```js +wordpos.lookup('great', console.log); +// ... +``` Benchmark ----------