Package Exports
- retext
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (retext) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
retext is an extensible natural language processor with support for multiple languages. Retext provides a pluggable system for analysing and manipulating natural language in JavaScript. Node and the browser. 100% coverage.
Rather than being a do-all library for Natural Language Processing (such as NLTK or OpenNLP), retext aims to be useful for more practical use cases (such as checking for insensitive words or decoding emoticons) instead of more academic goals (research purposes). retext is inherently modularβit uses plugins (similar to mdast for markdown) instead of providing everything out of the box (such as Natural). This makes retext a viable tool for use on the web.
Installation
npm:
npm install retext
retext is also available for bower, and duo, and as an AMD, CommonJS, and globals module, uncompressed and compressed.
Usage
The following example uses retext-emoji to show emoji and retext-smartypants for smart punctuation.
Require dependencies:
var retext = require('retext');
var emoji = require('retext-emoji');
var smartypants = require('retext-smartypants');
Create an instance using retext-emoji and -smartypants:
var processor = retext().use(smartypants).use(emoji, {
'convert' : 'encode'
});
Process a document:
var doc = processor.process([
'The three wise monkeys [. . .] sometimes called the three mystic',
'apes--are a pictorial maxim. Together they embody the proverbial',
'principle to ("see no evil, hear no evil, speak no evil"). The',
'three monkeys are Mizaru (π), covering his eyes, who',
'sees no evil; Kikazaru (π), covering his ears, who',
'hears no evil; and Iwazaru (π), covering his mouth,',
'who speaks no evil.'
].join('\n'));
Yields (you need a browser which supports emoji to see them):
The three wise monkeys [β¦] sometimes called the three mystic
apesβare a pictorial maxim. Together they embody the proverbial
principle to (βsee no evil, hear no evil, speak no evilβ). The
three monkeys are Mizaru (π), covering his eyes, who
sees no evil; Kikazaru (π), covering his ears, who
hears no evil; and Iwazaru (π), covering his mouth,
who speaks no evil.
API
retext.use(plugin[, options])
Change the way retext works by using a plugin.
Signatures
processor = retext.use(plugin, options?)
;processor = retext.use(plugins)
.
Parameters
plugin
(Function
) β A Plugin;plugins
(Array.<Function>
) β A list of Plugins;options
(Object?
) β Passed to the plugin. Specified by its documentation.
Returns
Object
β an instance of Retext: The returned object functions just like
retext (it has the same methods), but caches the use
d plugins. This
provides the ability to chain use
calls to use multiple plugins, but
ensures the functioning of the retext module does not change for other
dependents.
retext.process(value[, done])
Parse a text document, apply plugins to it, and compile it into something else.
Signatures
doc = mdast.process(value[, done])
.
Parameters
Returns
string?
: A document. Formatted in whatever plugins generate. The result is
null
if a plugin is asynchronous, in which case the callback done
shouldβve
been passed (donβt worry: plugin creators make sure you know its async).
function done(err, file, doc)
Callback invoked when the output is generated with either an error, or the processed document (represented as a virtual file and a string).
Parameters
err
(Error?
) β Reason of failure;file
(VFile?
) β Virtual file;doc
(string?
) β Generated document.
Plugin
function attacher(retext[, options])
A plugin is a function, which takes the Retext instance a user attached the plugin on as a first parameter and optional configuration as a second parameter.
A plugin can return a transformer
.
function transformer(node, file[, next])
A transformer changes the provided document (represented as a node and a virtual file).
Transformers can be asynchronous, in which case next
must be invoked
(optionally with an error) when done.
List of Plugins
retext-directionality β (demo) β Detect the direction text is written in;
retext-dom β (demo) β Create a (living) DOM tree from a TextOM tree;
retext-double-metaphone β (demo) β Implementation of the Double Metaphone algorithm;
retext-dutch β Dutch language support;
retext-english β English language support;
retext-emoji β (demo) β Encode or decode Gemojis;
retext-equality β Warn about possible insensitive, inconsiderate language;
retext-keywords β (demo) β Extract keywords and keyphrases;
retext-lancaster-stemmer β (demo) β Implementation of the Lancaster (Paice/Husk) algorithm;
retext-language β (demo) β Detect the language of text;
retext-metaphone β (demo) β Implementation of the Metaphone algorithm;
retext-porter-stemmer β (demo) β Implementation of the Porter stemming algorithm;
retext-pos β (demo) β Part-of-speech tagger;
retext-sentiment β (demo) β Detect sentiment in text;
retext-smartypants β (demo) β Implementation of SmartyPants;
retext-soundex β (demo) β Implementation of the Soundex algorithm;
retext-syllable β (demo) β Syllable count;
List of Utilities
The following projects are useful when working with the syntax tree, NLCST:
wooorm/nlcst-to-string β Stringify a node;
wooorm/nlcst-is-literal β Check whether a node is meant literally;
wooorm/nlcst-test β Validate a NLCST node;
In addition, see wooorm/unist
for other utilities which work with retext nodes, but also with
mdast nodes.
And finally, see wooorm/vfile
for a list of utilities for working with virtual files.
Related
License
MIT Β© Titus Wormer