Home > Class Reference > ENSLIB namespace > %iKnow.Classification.IKnowBuilder
Private  Storage   


class %iKnow.Classification.IKnowBuilder extends Builder

Parent class for any iKnow-based %iKnow.Classification.Builder implementations, providing common infrastructure abstracting a few iKnow API calls. IKnowBuilder implementations assume category specs are %iKnow.Filters.Filter instances in their string representation.


Parameters Properties Methods Queries Indices ForeignKeys Triggers
4 5


ClassificationMethod Description DocumentVectorLocalWeights DocumentVectorNormalization
DomainId MetadataField MinimumSpread MinimumSpreadPercent
TestSet TrainingSet

%AddCRC %AddCategory %AddCooccurrence %AddEntity
%AddTermsFromSQL %AddToSaveSet %ClassIsLatestVersion %ClassName
%ConstructClone %CreateClassifierClass %DispatchClassMethod %DispatchGetModified
%DispatchGetProperty %DispatchMethod %DispatchSetModified %DispatchSetMultidimProperty
%DispatchSetProperty %ExportDataTable %Extends %GenerateClassifier
%GetCategoryInfo %GetParameter %GetRecordCount %GetTerms
%IsA %IsModified %LoadFromDefinition %LoadMetadataCategories
%New %NormalizeObject %ObjectModified %OriginalNamespace
%PackageName %PopulateTerms %RemoveFromSaveSet %RemoveTerm
%RemoveTermAtIndex %RemoveTermEntryAtIndex %Reset %SerializeObject
%SetModified %TestClassifier %ValidateObject



• property DomainId as %Integer;
The iKnow domain this categorization model is built from
• property MetadataField as %String;
If set, this metadata field contains the actual category value for each source
• property TestSet as %iKnow.Filters.Filter;
• property TrainingSet as %iKnow.Filters.Filter;
The sample set of the domain to be used for training this model


• method %GetCategoryInfo(Output pCategories) as %Status
Returns all categories added so far: pCategories(n) = $lb([name], [record count])
• method %GetRecordCount(Output pSC As %Status) as %Integer
• method %LoadMetadataCategories(pFieldName As %String) as %Status

Creates (appends) categories for each of the available values of a given metadata field pFieldName in the full domain (thus ignoring TrainingSet).

Note: as category names are case sensitive, it is highly recommended to use a case-sensitive metadata field.

• method %PopulateTerms(pCount As %Integer = 100, pType As %String = "entity", pMetric As %String = "BM25", pPerCategory As %Boolean = 0) as %Status

This %PopulateTerms implementation accepts "BM25" and "TFIDF" as acceptable values for pMetric. See also the class reference for this method in %iKnow.Classification.Builder.

• method %TestClassifier(pTestSet As %CacheString = "", Output pResult, Output pAccuracy As %Double, pCategorySpec As %String = "", pVerbose As %Boolean = 0) as %Status

Utility method to batch-test the classifier against a test set pTestSet, which can be supplied as an %iKnow.Filters.Filter object or its serialized form. Per-record results are returned through pResult:
pResult(n) = $lb([record ID], [actual category], [predicted category])

pAccuracy will contain the raw accuracy (# of records predicted correctly) of the current model. Use %iKnow.Classificaton.Utils for more advanced model testing.

If the current model's category options were added through %AddCategory without providing an appropriate category filter specification, rather than through a call to %LoadMetadataCategories (which sets MetadataField), supply a metadata field through pCategorySpec where the actual category values to test against can be found.