Skip to content

Messageflow/trentity

Repository files navigation

trentity

Train your Dialogflow with better entities in simple way


NPM

Build Status Version Downloads MIT License Dependency Status NSP Status

Code of Conduct Codecov Coverage Status

codebeat-badge codacy-badge inch-badge

One of the challenging tasks in Dialogflow is training your comprehensive list of entities that contains all the synonyms for each reference value. It is kind of tedious to input every possible synonym manually. This package can help generating entities in Dialogflow much easier by combining a list of reference values and their own synonyms plus an optional list of replacers which replace a word or even a phrase within each synonyms.

Table of contents

Pre-requisites

Setup

Install

# Install via NPM
$ npm install --save trentity

Usage

Node.js

// No default import
const {
  generateEntitySync,
  generateEntity,

  revertEntitySync,
  revertEntity,
} = require('trentity');
/**
 * OR
 * const { generateEntitySync, generateEntity } = require('trentity/generate-entity');
 * const { revertEntitySync, revertEntity } = require('trentity/revert-entity');
 * 
 */

/** To generate entity list with replacers */
void async function main() {
  const d = await generateEntity([
    [
      'Accessories for car',
      [
        'accessories for car',
        'car accessory',
      ]
    ]
  ], {
    accessories: [
      'accessory',
      'access',
      'accesory',
      'acessory',
    ],
    car: [
      'cars',
      'vehicle',
      'vehicles',
    ],
  });

  assert(d, "Accessories for car","accessories for car","accessory for car","access for car","accesory for car","acessory for car","car accessory","accessories for cars","accessories for vehicle","accessories for vehicles","cars accessory","vehicle accessory","vehicles accessory"); // OK
}();

/** To revert generated entity list */
void async function main() {
  const d = await revertEntity('"Accessories for car","accessories for car","accessory for car","access for car","accesory for car","acessory for car","car accessory","accessories for cars","accessories for vehicle","accessories for vehicles","cars accessory","vehicle accessory","vehicles accessory"');

  assert(d, [
    [
      "Accessories for car",
      [
        "accessories for car",
        "accessory for car",
        "access for car",
        "accesory for car",
        "acessory for car",
        "car accessory",
        "accessories for cars",
        "accessories for vehicle",
        "accessories for vehicles",
        "cars accessory",
        "vehicle accessory",
        "vehicles accessory"
      ]
    ]
  ]); // OK
}();

Native ES modules or TypeScript

// No default import
import {
  generateEntitySync,
  generateEntity,

  revertEntitySync,
  revertEntity,
} from 'trentity';
/**
 * OR
 * import { generateEntitySync, generateEntity } from 'trentity/generate-entity';
 * import { revertEntitySync, revertEntity } from 'trentity/revert-entity';
 * 
 */

/** To generate entity list with replacers */
void async function main() => {
  const d = await generateEntity([
    [
      'Accessories for car',
      [
        'accessories for car',
        'car accessory',
      ]
    ]
  ], {
    accessories: [
      'accessory',
      'access',
      'accesory',
      'acessory',
    ],
    car: [
      'cars',
      'vehicle',
      'vehicles',
    ],
  });

  assert(d, "Accessories for car","accessories for car","accessory for car","access for car","accesory for car","acessory for car","car accessory","accessories for cars","accessories for vehicle","accessories for vehicles","cars accessory","vehicle accessory","vehicles accessory"); // OK
}();

/** To revert generated entity list */
void async function main() => {
  const d = await revertEntity('"Accessories for car","accessories for car","accessory for car","access for car","accesory for car","acessory for car","car accessory","accessories for cars","accessories for vehicle","accessories for vehicles","cars accessory","vehicle accessory","vehicles accessory"');

  assert(d, [
    [
      "Accessories for car",
      [
        "accessories for car",
        "accessory for car",
        "access for car",
        "accesory for car",
        "acessory for car",
        "car accessory",
        "accessories for cars",
        "accessories for vehicle",
        "accessories for vehicles",
        "cars accessory",
        "vehicle accessory",
        "vehicles accessory"
      ]
    ]
  ]); // OK
}();

API Reference

generateEntity(list[, replacer])

  • list <Array<[string, string[]]>> A list of reference values and synonyms.
  • replacer <Object> Optional list of replacers to replace words or phrases in each synonyms.
  • returns: <Promise<string>> Promise which resolves with a combination of list and replacer.

generateEntitySync(list[, replacer])

This methods works the same as generateEntity(list[, replacer]) except that this is the synchronous version.

revertEntity(entityList)

  • entityList <string> A string consists of reference values and synonyms.
  • returns: <Promise<<Array<[string, string[]]>>> Promise which resolves with a list of reference values and synonyms.

revertEntitySync(entityList)

This methods works the same as revertEntity(entityList) except that this is the synchronous version.

License

MIT License © Rong Sen Ng