MINI MINI MANI MO

Path : /opt/oracle/product/18c/dbhomeXE/ctx/admin/
File Upload :
Current File : //opt/oracle/product/18c/dbhomeXE/ctx/admin/drvodm.pkh

Rem Copyright (c) 1998, 2017, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      drvodm.pkh - Interface to Oracle Data Mining
Rem
Rem    DESCRIPTION
Rem
Rem    RETURNS
Rem 
Rem    NOTES
Rem
Rem 
Rem    BEGIN SQL_FILE_METADATA
Rem      SQL_SOURCE_FILE: ctx_src_2/src/dr/admin/drvodm.pkh
Rem      SQL_SHIPPED_FILE: ctx/admin/drvodm.pkh
Rem      SQL_PHASE: DRVODM_PKH
Rem      SQL_STARTUP_MODE: NORMAL
Rem      SQL_IGNORABLE_ERRORS: NONE
Rem      SQL_CALLING_FILE: ctx/admin/ctxpkh.sql
Rem    END SQL_FILE_METADATA
Rem
Rem    MODIFIED   (MM/DD/YY)
Rem       snetrava 06/26/17 - Bug 26260099: make feature_prep_nc private
Rem       shuroy   01/29/16 - Bug 22499125: Adding MAX_CLUSTERS
Rem       shuroy   10/22/15 - Bug 22074771
Rem       surman   01/23/15 - 20411134: Add SQL metadata tags
Rem       surman   03/15/13 - 16473661: Common start and end scripts
Rem       daliao   04/01/05 - remove static odm dependency 
Rem       daliao   01/26/05 - lrg 1824561
Rem       daliao   12/16/04 - bug 4044885
Rem       daliao   11/20/04 - odm API change
Rem       ehuang   12/09/03 - odm kmeans 
Rem       ehuang   11/10/03 - odm integration 
Rem       daliao   08/04/03 - get rid of temporary fix for trainsamp
Rem       daliao   07/01/03 - OCIDuration
Rem       daliao   06/18/03 - ODM API change
Rem       daliao   01/27/03 - temparory fix due to ODM unavailability
Rem       mfaisal  01/20/03 - fix install user
Rem       daliao   01/09/03 - daliao_classification_10i_1
Rem       daliao   01/08/03 - 
Rem       daliao   12/05/02 - rename to drvodm
Rem       daliao   11/13/02 - add more interface
Rem       daliao   10/31/02 - daliao_classification10i
Rem     daliao  10/28/2002 - rename drisvm to driodm  
Rem	daliao	10/10/2002 - Creation 
Rem

@@?/rdbms/admin/sqlsessstart.sql

------------------------------------------------------------------------------
-- centroid(s) data type are used to read ODM kmean model 
------------------------------------------------------------------------------

create or replace type ctx_centroid force as object (
  attribute_name varchar2(30),
  mean           number,
  mode_value     varchar2(4000),
  variance       number
);
/

create or replace type ctx_centroids as table of ctx_centroid;
/

create or replace public synonym ctx_centroids for ctxsys.ctx_centroids;

GRANT EXECUTE ON ctx_centroids TO PUBLIC 
/

CREATE OR REPLACE PACKAGE drvodm AUTHID current_user AS

MAX_CLUSTERS constant number := 100;  /* Max number of clusters */

TYPE CurType IS REF CURSOR;

/* type used for svm interface to odm containing training set */
TYPE trainsamp IS RECORD (
    sequence_id    NUMBER,  -- document id
    attribute_id   NUMBER,  -- feature id >=0 
                            -- or -1 for rows that contain doc. assignment info
    value          NUMBER   -- feature weight
                            -- or catid for rows for doc. assignment info
  );

TYPE trainsamps IS TABLE OF trainsamp; 

/* type used for feature definition */
TYPE feature IS RECORD (
	text varchar2(160),     -- feature text
	type number(3),         -- feature type with 0:single token, 
				--		     1:theme
 				--		     9:stem words
	id   number,            -- feature id
	score number            -- statistic feature score which can be idf 
				--    if need to calculate idf for feature 
				--    weight in documents or simply document 
			        --    frequency. 
	);
TYPE features IS TABLE OF feature;

TYPE suggestion IS RECORD (
	docid  number,          -- document id  
	catid  number,          -- suggested category id
	scr    number           -- associate score between doc and category         
);
TYPE suggestions IS TABLE of suggestion;

TYPE kmeanmodel_rec IS RECORD (
	id integer,                  -- cluster id
	parent number,  	     -- parent id
	dispersion number,	     -- coherencen of the cluster
        attribute_name varchar2(30));  -- attribute id 
TYPE kmeanmodel is table of kmeanmodel_rec;
        
/* train SVM model */
PROCEDURE svm_train(
    	idx_owner varchar2,
	idx_name  varchar2,
	doctab    varchar2,
	docid     varchar2,
	cattab    varchar2,
	catdocid  varchar2,
	catid     varchar2,
	restab    varchar2,
	prefrec   dr_def.pref_rec
) accessible by (ctxsys.ctx_cls);

/* ----table function used for ODM to extract feature from training set ----*/
/* DESCRIPTION
   The result table is either created by users before calling this function or 
   created in this program with the specified table name and under the current 
   user (if the specified table does not exist).     
   If user create the result table (which can support table schema for 
   different users),
   the restab should have the following three columns with the exact column 
   names:
	cat_id number
	type number(3) not null
	rule blob
*/
FUNCTION feature_prep(
	index_name  varchar2, -- context index name on training document table.
	docid     varchar2,   -- document id column name in document table
	cattab    varchar2,   -- name of category table
	catdocid  varchar2,   -- document id column name for category table
	catid     varchar2,   -- category id column name for category table
	restab    varchar2,   -- result table to write the model
	preference varchar2   -- preference name
) RETURN trainsamps PIPELINED;

/* -- table function used for ODM to get features for test set ----------*/
/* DESCRIPTION
   This function is used in apply time. The <restab> is the result table
   output from calling feature preparation function based on training set. 
*/
FUNCTION feature_prep(
	index_name  varchar2, -- context index name on training document table.
	docid     varchar2,   -- document id column name in document table
	restab    varchar2    -- table storing the feature definition
) RETURN trainsamps PIPELINED;

/* ----------------------- for ODM to explain features ------------------*/
/* DESCRIPTION
   The <restab> is the result table output from calling feature preparation 
   function based on training set.
*/
FUNCTION feature_explain(
	restab    varchar2    -- table storing the feature definition
	) RETURN features PIPELINED;



/*--------------------------------------------------------------------------*/
/*                                                                          */
/*------------The following functions is internal functions  ---------------*/
/*                                                                          */ 
/*--------------------------------------------------------------------------*/

/* name transfer from '"owner"."tablename"' to 'drm$object#' */
FUNCTION odm_modelname(tabname varchar2) return varchar2;

/* start classify a document.Assume: The document feature vector has been 
   generated */
FUNCTION get_suggestions(model_name varchar2, dur number)
   return suggestions PIPELINED;

/* type used for ODM setup */
TYPE settingdbrec_t IS RECORD (
    id             NUMBER,
    value          VARCHAR2(128)
  );
TYPE setting_t IS TABLE of settingdbrec_t;

FUNCTION odmtrainset return setting_t PIPELINED;

FUNCTION  get_features 
RETURN trainsamps PIPELINED;

PROCEDURE fvstab(
	fvstab    OUT varchar2);

PROCEDURE fi2ttab(
	fi2ttab    OUT varchar2);


FUNCTION odmktrainset(p_srt in varchar2,
p_cluster_num in number) return setting_t PIPELINED;

-- generate model
PROCEDURE odm_genmodel(
p_fvstab in varchar2,
p_srtab  in varchar2,
p_cluster_num in number,
o_modname OUT varchar2);

FUNCTION odm_readkmeanmodel(
	p_modname varchar2) return kmeanmodel PIPELINED;

-- drop model
PROCEDURE odm_drpmodel(
p_modname IN varchar2);

END drvodm;
/

@?/rdbms/admin/sqlsessend.sql

OHA YOOOO