Predict user intents with cool machine learning tool, Facebook FastText.
- Install Facebook FastText
- Follow instructions
Usage
const { Router } = require('prg-chatbot');
const keyworder = require('keyworder');
const path = require('path');
keyworder.setResolver({
model: path.join(process.cwd(), 'models', 'model.bin')
});
const app = new Router();
app.use(keyworder('hello'), (req, res, postBack, next) => {
res.text('Hello too!');
});
- keyworder(tag, [threshold], [namespace]) ⇒
function
Create resolver middleware for PrgChatbot
- setResolver(configuration, [namespace])
- resolve(text, [threshold], [namespace]) ⇒
Promise.<{tag:string, score:number}>
Resolve single text
- Configuration :
Object
Create resolver middleware for PrgChatbot
Kind: global function
Param | Type | Description |
---|---|---|
tag | string |
tag for matching |
[threshold] | number |
override success threshold |
[namespace] | string |
resolver namespace |
Example
const keyworder = require('keyworder');
router.use(keyworder('hello-intent'), (req, res) => {
res.text('Welcome too!');
});
Kind: global function
Param | Type | Description |
---|---|---|
configuration | Configuration |
the resolver configuration |
[namespace] | string |
set resolver for diferent namespace |
Example
const keyworder = require('keyworder');
const path = require('path');
keyworder.setResolver({
model: path.join(__dirname, 'model.bin')
});
Resolve single text
Kind: global function
Param | Type | Description |
---|---|---|
text | string |
query text |
[threshold] | number |
override the threshold |
[namespace] | string |
use other than default resolver |
Kind: global typedef
Properties
Name | Type | Description |
---|---|---|
model | string |
path to trained fast text model |
threshold | number |
prediction threshold (0.95 recommended) |
cacheSize | number |
keep this amount of results cached |
filter | function |
text preprocessor |
logger | function |
resolver logger function |