1.0.0 • Published 9 years ago

retext-double-metaphone v1.0.0

Weekly downloads
4
License
MIT
Repository
github
Last release
9 years ago

retext-double-metaphone Build Status Coverage Status

Retext implementation of the Double Metaphone algorithm.

Installation

npm:

npm install retext-double-metaphone

retext-double-metaphone is also available for bower, component, and duo, and as an AMD, CommonJS, and globals module, uncompressed and compressed.

Usage

var retext = require('retext');
var inspect = require('unist-util-inspect');
var doubleMetaphone = require('retext-double-metaphone');

retext().use(doubleMetaphone).use(function () {
    return function (cst) {
        console.log(inspect(cst));
    };
}).process('A simple English sentence.');

Yields:

RootNode[1]
└─ ParagraphNode[1]
   └─ SentenceNode[8]
      ├─ WordNode[1] [data={"phonetics":["A","A"]}]
      │  └─ TextNode: 'A'
      ├─ WhiteSpaceNode: ' '
      ├─ WordNode[1] [data={"phonetics":["SMPL","SMPL"]}]
      │  └─ TextNode: 'simple'
      ├─ WhiteSpaceNode: ' '
      ├─ WordNode[1] [data={"phonetics":["ANKLX","ANLX"]}]
      │  └─ TextNode: 'English'
      ├─ WhiteSpaceNode: ' '
      ├─ WordNode[1] [data={"phonetics":["SNTNS","SNTNS"]}]
      │  └─ TextNode: 'sentence'
      └─ PunctuationNode: '.'

You can also combine it with a stemmer (such as retext-porter-stemmer or retext-lancaster-stemmer).

var retext = require('retext');
var inspect = require('unist-util-inspect');
var doubleMetaphone = require('retext-double-metaphone');
var stemmer = require('retext-porter-stemmer');

retext().use(stemmer).use(doubleMetaphone).use(function () {
    return function (cst) {
        console.log(inspect(cst));
    };
}).process('A simple English sentence.');

Yields:

RootNode[1]
└─ ParagraphNode[1]
   └─ SentenceNode[6]
      ├─ WordNode[1] [data={"stem":"a","phonetics":["A","A"],"stemmedPhonetics":["A","A"]}]
      │  └─ TextNode: 'A'
      ├─ WhiteSpaceNode: ' '
      ├─ WordNode[1] [data={"stem":"detest","phonetics":["TTSTPL","TTSTPL"],"stemmedPhonetics":["TTST","TTST"]}]
      │  └─ TextNode: 'detestable'
      ├─ WhiteSpaceNode: ' '
      ├─ WordNode[1] [data={"stem":"paragraph","phonetics":["PRKRF","PRKRF"],"stemmedPhonetics":["PRKRF","PRKRF"]}]
      │  └─ TextNode: 'paragraph'
      └─ PunctuationNode: '.'

API

None, retext-double-metaphone automatically detects the phonetics of each WordNode (using wooorm/double-metaphone), and stores the phonetics in node.data.phonetics. If a stemmer is used, the stemmed phonetics are stored in node.data.stemmedPhonetics.

License

MIT © Titus Wormer

1.0.0

9 years ago

0.1.7

9 years ago

0.1.6

9 years ago

0.1.5

9 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago