The EncoderVersion API provides a scriptable object used in Predictive Intelligence stores.

This API requires the Predictive Intelligence plugin (com.glide.platform_ml) and is provided within the sn_ml namespace.

This API is used for working with encoder versions based on Encoder API objects in the Encoder store.

The system activates the most recent version of the encoder when it completes training, and only allows one version to be active at a time. However, you can activate any previously trained version you want to use to make predictions.

Methods in this API are accessible using the following Encoder methods:

EncoderVersion - getProperties()

Gets encoder object properties and version number.

Table 1. Parameters
Name Type Description
None

Example

The following example gets properties of the active object version in the store.

// Get properties
var mlEncoder = sn_ml.EncoderStore.get('ml_incident_categorization');

gs.print(JSON.stringify(JSON.parse(mlEncoder.getActiveVersion().getProperties()), null, 2));

Output:

*** Script: {
  "datasetsProperties": [
    {
      "tableName": "incident",
      "fieldNames": [
        "assignment_group",
        "short_description",
        "description"
      ],
      "encodedQuery": "activeANYTHING"
    }
  ],
  "domainName": "global",
  "isActive": "true",
  "label": "my encoder definition",
  "name": "ml_x_snc_global_global_my_encoder_definition",
  "processingLanguage": "en",
  "stopwords": [
    "Default English Stopwords"
  ],
  "versionNumber": "1"
}

EncoderVersion - getSentenceVectors(Array input)

Returns vectors for each input sentence.

Table 3. Parameters
Name Type Description
input Array Array of strings as sentences from which to receive vectors.
Table 4. Returns
Type Description
String Array of sentence vectors.

Example

The following example shows how to return a vector for a single sentence.

var myEncoderName = 'GloVe';

var myEncoder = sn_ml.EncoderStore.get(myEncoderName);

var input = ["I like to code."];

var vectors = myEncoder.getActiveVersion().getSentenceVectors(input);

gs.print(vectors);

Output:

*** Script: [-0.16243751347064972,0.30614474415779114,0.08489049971103668,
-0.48100000619888306,-0.170997753739357,0.08779674768447876,-0.07848624140024185,-0.15123701095581055,
-0.07843250036239624,-1.9505999088287354,0.3007825016975403,-0.07804800570011139,-0.04779449850320816,
0.04803549498319626,0.09848674386739731,0.2427891194820404,-0.41138750314712524,0.10880374908447266,
 … ,
0.21227750182151794,0.18478751182556152,-0.3113832473754883,-0.16560424864292145,0.09052124619483948]

EncoderVersion - getSimilarWords(Array input, Object options)

Returns words similar to each input word in the descending rank order of similarity.

Table 5. Parameters
Name Type Description
input Array Array of words for which to find similar words.
options Object Map to refine results.
{ "topN":"String" }
options.topN String If provided, returns the top results up to the specified number of words. For example, use "10" to return the top 10 most similar words.
Table 6. Returns
Type Description
Array List of elements containing the similar words for the input word in the corresponding position. These similar words are represented by an of array of pairs in the format [word, similarity score].

Example

The following example shows how to get similar words using the GloVe encoder.

var myEncoderName = 'GloVe';
var myEncoder = sn_ml.EncoderStore.get(myEncoderName);
var input =  ["apple"];
var options = {"topN":"5"};
gs.print(myEncoder.getActiveVersion().getSimilarWords(input, options));	

Output:

*** Script: [[["iphone",0.5987],["macintosh",0.5836],["ipod",0.5761],["microsoft",0.5664],["ipad",0.5628]]]

EncoderVersion - getStatus(Boolean includeDetails)

Gets training completion status.

Table 7. Parameters
Name Type Description
includeDetails Boolean Flag that indicates whether to return status details.
Valid values:
  • true: Return additional details.
  • false: Don't return additional details.

Default: False

Example

The following example shows a successful result with training complete.

// Get status
var mlEncoder = sn_ml.EncoderStore.get('ml_incident_categorization');

gs.print(JSON.stringify(JSON.parse(mlEncoder.getActiveVersion().getStatus(true), null, 2)));

Output:

{
 "state":"solution_complete",
 "percentComplete":"100",
 "hasJobEnded":"true",
 "details":{"stepLabel":"Encoder Complete"} // This information is only returned if getStatus(true);
}

Example

The following example shows an unsuccessful result with training complete.

// Get status
var encoderName = 'ml_x_snc_global_global_encoder';
var mlEncoder = sn_ml.EncoderStore.get(encoderName);
var trainingStatus = mlEncoder.getLatestVersion().getStatus();

gs.print(JSON.stringify(JSON.parse(trainingStatus), null, 2));

Output:

{
 "state":"solution_error",
 "percentComplete":"100",
 "hasJobEnded":"true"
}

EncoderVersion - getVersionNumber()

Gets the version number of a solution object.

Table 9. Parameters
Name Type Description
None
Table 10. Returns
Type Description
String Version number.

Example

The following example shows how to get a version number.

// Get version number
var mlEncoder = sn_ml.EncoderStore.get('ml_incident_categorization');

gs.print("Version number: "+JSON.stringify(JSON.parse(mlEncoder.getActiveVersion().getVersionNumber()), null, 2));

Output:

Version number: 1

EncoderVersion - getWordVectors(Array input)

Returns vectors for each input word.

Table 11. Parameters
Name Type Description
input Array List of strings as words from which to receive vectors.
Table 12. Returns
Type Description
Array List of vectors for each word provided.

Example

The following example shows how to get a vector from the word hello.

var myEncoderName = 'GloVe';
var myEncoder = sn_ml.EncoderStore.get(myEncoderName);
var input =  ["hello"];

gs.print(myEncoder.getActiveVersion().getWordVectors(input));

Output:

*** Script: [[-0.337119996547699,-0.2169100046157837,-0.006636499892920256,
-0.41624999046325684,-1.2554999589920044,-0.0284659992903471,-0.7219499945640564,
-0.5288699865341187,0.0072085000574588776,0.3199700117111206,0.02942500077188015,
-0.013236000202596188,0.4351100027561188,0.2571600079536438,0.3899500072002411,
 … ,
0.3384299874305725,0.4055800139904022,0.18073000013828278,0.6424999833106995]]