Prediction and nearest neighbour tools from Facebook Fast Text wrapped into Node.js packages.
More here: Facebook Fast Text.
First query takes more time, other queries not :)
There is a simple class for executing prediction models:
const path = require('path');
const { Classifier } = require('../main');
const model = path.resolve(__dirname, './classification.bin');
const classifier = new Classifier(model);
classifier.predict('how it works', 1, (err, res) => {
if (err) {
console.error(err);
} else if (res.length > 0) {
const tag = res[0].label; // __label__someTag
const score = res[0].valuel // 1.3455345
} else {
console.log('No matches');
}
});
There is a simple class for searching nearest neighbours:
const path = require('path');
const { Query } = require('../main');
const model = path.resolve(__dirname, './skipgram.bin');
const query = new Query(model);
query.nn('word', 10, (err, res) => {
if (err) {
console.error(err);
} else if (res.length > 0) {
const tag = res[0].label; // letter
const score = res[0].valuel // 0.99992
} else {
console.log('No matches');
}
});