nlptoolkit-classification 1.0.8 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/dist/Attribute/Attribute.js +6 -16
  2. package/dist/Attribute/Attribute.js.map +1 -1
  3. package/dist/Attribute/AttributeType.js +22 -32
  4. package/dist/Attribute/AttributeType.js.map +1 -1
  5. package/dist/Attribute/BinaryAttribute.js +14 -24
  6. package/dist/Attribute/BinaryAttribute.js.map +1 -1
  7. package/dist/Attribute/ContinuousAttribute.js +46 -55
  8. package/dist/Attribute/ContinuousAttribute.js.map +1 -1
  9. package/dist/Attribute/DiscreteAttribute.js +38 -48
  10. package/dist/Attribute/DiscreteAttribute.js.map +1 -1
  11. package/dist/Attribute/DiscreteIndexedAttribute.js +47 -55
  12. package/dist/Attribute/DiscreteIndexedAttribute.js.map +1 -1
  13. package/dist/DataSet/DataDefinition.js +115 -123
  14. package/dist/DataSet/DataDefinition.js.map +1 -1
  15. package/dist/DataSet/DataSet.js +268 -245
  16. package/dist/DataSet/DataSet.js.map +1 -1
  17. package/dist/DistanceMetric/DistanceMetric.js +2 -12
  18. package/dist/DistanceMetric/EuclidianDistance.js +27 -37
  19. package/dist/DistanceMetric/EuclidianDistance.js.map +1 -1
  20. package/dist/DistanceMetric/MahalanobisDistance.js +27 -36
  21. package/dist/DistanceMetric/MahalanobisDistance.js.map +1 -1
  22. package/dist/Experiment/BootstrapRun.js +31 -40
  23. package/dist/Experiment/BootstrapRun.js.map +1 -1
  24. package/dist/Experiment/Experiment.js +46 -53
  25. package/dist/Experiment/Experiment.js.map +1 -1
  26. package/dist/Experiment/KFoldRun.js +45 -54
  27. package/dist/Experiment/KFoldRun.js.map +1 -1
  28. package/dist/Experiment/KFoldRunSeparateTest.js +48 -58
  29. package/dist/Experiment/KFoldRunSeparateTest.js.map +1 -1
  30. package/dist/Experiment/MultipleRun.js +2 -12
  31. package/dist/Experiment/MxKFoldRun.js +31 -40
  32. package/dist/Experiment/MxKFoldRun.js.map +1 -1
  33. package/dist/Experiment/MxKFoldRunSeparateTest.js +35 -44
  34. package/dist/Experiment/MxKFoldRunSeparateTest.js.map +1 -1
  35. package/dist/Experiment/SingleRun.js +2 -12
  36. package/dist/Experiment/SingleRunWithK.js +39 -48
  37. package/dist/Experiment/SingleRunWithK.js.map +1 -1
  38. package/dist/Experiment/StratifiedKFoldRun.js +26 -36
  39. package/dist/Experiment/StratifiedKFoldRun.js.map +1 -1
  40. package/dist/Experiment/StratifiedKFoldRunSeparateTest.js +30 -40
  41. package/dist/Experiment/StratifiedKFoldRunSeparateTest.js.map +1 -1
  42. package/dist/Experiment/StratifiedMxKFoldRun.js +29 -39
  43. package/dist/Experiment/StratifiedMxKFoldRun.js.map +1 -1
  44. package/dist/Experiment/StratifiedMxKFoldRunSeparateTest.js +34 -43
  45. package/dist/Experiment/StratifiedMxKFoldRunSeparateTest.js.map +1 -1
  46. package/dist/Experiment/StratifiedSingleRunWithK.js +27 -36
  47. package/dist/Experiment/StratifiedSingleRunWithK.js.map +1 -1
  48. package/dist/FeatureSelection/BackwardSelection.js +26 -36
  49. package/dist/FeatureSelection/BackwardSelection.js.map +1 -1
  50. package/dist/FeatureSelection/FeatureSubSet.js +72 -82
  51. package/dist/FeatureSelection/FeatureSubSet.js.map +1 -1
  52. package/dist/FeatureSelection/FloatingSelection.js +25 -35
  53. package/dist/FeatureSelection/FloatingSelection.js.map +1 -1
  54. package/dist/FeatureSelection/ForwardSelection.js +25 -35
  55. package/dist/FeatureSelection/ForwardSelection.js.map +1 -1
  56. package/dist/FeatureSelection/SubSetSelection.js +69 -78
  57. package/dist/FeatureSelection/SubSetSelection.js.map +1 -1
  58. package/dist/Filter/DiscreteToContinuous.js +50 -60
  59. package/dist/Filter/DiscreteToContinuous.js.map +1 -1
  60. package/dist/Filter/DiscreteToIndexed.js +40 -50
  61. package/dist/Filter/DiscreteToIndexed.js.map +1 -1
  62. package/dist/Filter/FeatureFilter.js +23 -32
  63. package/dist/Filter/FeatureFilter.js.map +1 -1
  64. package/dist/Filter/LaryFilter.js +46 -55
  65. package/dist/Filter/LaryFilter.js.map +1 -1
  66. package/dist/Filter/LaryToBinary.js +48 -58
  67. package/dist/Filter/LaryToBinary.js.map +1 -1
  68. package/dist/Filter/Normalize.js +33 -41
  69. package/dist/Filter/Normalize.js.map +1 -1
  70. package/dist/Filter/Pca.js +86 -96
  71. package/dist/Filter/Pca.js.map +1 -1
  72. package/dist/Filter/TrainedFeatureFilter.js +14 -24
  73. package/dist/Filter/TrainedFeatureFilter.js.map +1 -1
  74. package/dist/Instance/CompositeInstance.js +46 -56
  75. package/dist/Instance/CompositeInstance.js.map +1 -1
  76. package/dist/Instance/Instance.js +145 -154
  77. package/dist/Instance/Instance.js.map +1 -1
  78. package/dist/InstanceList/InstanceList.js +466 -443
  79. package/dist/InstanceList/InstanceList.js.map +1 -1
  80. package/dist/InstanceList/InstanceListOfSameClass.js +23 -32
  81. package/dist/InstanceList/InstanceListOfSameClass.js.map +1 -1
  82. package/dist/InstanceList/Partition.js +167 -177
  83. package/dist/InstanceList/Partition.js.map +1 -1
  84. package/dist/Model/DecisionTree/DecisionCondition.js +71 -80
  85. package/dist/Model/DecisionTree/DecisionCondition.js.map +1 -1
  86. package/dist/Model/DecisionTree/DecisionNode.js +302 -311
  87. package/dist/Model/DecisionTree/DecisionNode.js.map +1 -1
  88. package/dist/Model/DecisionTree/DecisionStump.js +22 -32
  89. package/dist/Model/DecisionTree/DecisionStump.js.map +1 -1
  90. package/dist/Model/DecisionTree/DecisionTree.js +89 -98
  91. package/dist/Model/DecisionTree/DecisionTree.js.map +1 -1
  92. package/dist/Model/DummyModel.js +64 -73
  93. package/dist/Model/DummyModel.js.map +1 -1
  94. package/dist/Model/Ensemble/BaggingModel.js +34 -44
  95. package/dist/Model/Ensemble/BaggingModel.js.map +1 -1
  96. package/dist/Model/Ensemble/RandomForestModel.js +31 -41
  97. package/dist/Model/Ensemble/RandomForestModel.js.map +1 -1
  98. package/dist/Model/Ensemble/TreeEnsembleModel.js +55 -64
  99. package/dist/Model/Ensemble/TreeEnsembleModel.js.map +1 -1
  100. package/dist/Model/Model.js +130 -140
  101. package/dist/Model/Model.js.map +1 -1
  102. package/dist/Model/NeuralNetwork/DeepNetworkModel.js +162 -169
  103. package/dist/Model/NeuralNetwork/DeepNetworkModel.js.map +1 -1
  104. package/dist/Model/NeuralNetwork/LinearPerceptronModel.js +69 -78
  105. package/dist/Model/NeuralNetwork/LinearPerceptronModel.js.map +1 -1
  106. package/dist/Model/NeuralNetwork/MultiLayerPerceptronModel.js +112 -120
  107. package/dist/Model/NeuralNetwork/MultiLayerPerceptronModel.js.map +1 -1
  108. package/dist/Model/NeuralNetwork/NeuralNetworkModel.js +197 -201
  109. package/dist/Model/NeuralNetwork/NeuralNetworkModel.js.map +1 -1
  110. package/dist/Model/NonParametric/KnnInstance.js +21 -29
  111. package/dist/Model/NonParametric/KnnInstance.js.map +1 -1
  112. package/dist/Model/NonParametric/KnnModel.js +101 -108
  113. package/dist/Model/NonParametric/KnnModel.js.map +1 -1
  114. package/dist/Model/Parametric/GaussianModel.js +82 -91
  115. package/dist/Model/Parametric/GaussianModel.js.map +1 -1
  116. package/dist/Model/Parametric/KMeansModel.js +59 -67
  117. package/dist/Model/Parametric/KMeansModel.js.map +1 -1
  118. package/dist/Model/Parametric/LdaModel.js +83 -91
  119. package/dist/Model/Parametric/LdaModel.js.map +1 -1
  120. package/dist/Model/Parametric/NaiveBayesModel.js +119 -132
  121. package/dist/Model/Parametric/NaiveBayesModel.js.map +1 -1
  122. package/dist/Model/Parametric/QdaModel.js +70 -79
  123. package/dist/Model/Parametric/QdaModel.js.map +1 -1
  124. package/dist/Model/RandomModel.js +85 -92
  125. package/dist/Model/RandomModel.js.map +1 -1
  126. package/dist/Model/ValidatedModel.js +21 -31
  127. package/dist/Model/ValidatedModel.js.map +1 -1
  128. package/dist/Parameter/ActivationFunction.js +9 -19
  129. package/dist/Parameter/ActivationFunction.js.map +1 -1
  130. package/dist/Parameter/BaggingParameter.js +24 -33
  131. package/dist/Parameter/BaggingParameter.js.map +1 -1
  132. package/dist/Parameter/C45Parameter.js +34 -42
  133. package/dist/Parameter/C45Parameter.js.map +1 -1
  134. package/dist/Parameter/DeepNetworkParameter.js +48 -56
  135. package/dist/Parameter/DeepNetworkParameter.js.map +1 -1
  136. package/dist/Parameter/KMeansParameter.js +29 -38
  137. package/dist/Parameter/KMeansParameter.js.map +1 -1
  138. package/dist/Parameter/KnnParameter.js +25 -34
  139. package/dist/Parameter/KnnParameter.js.map +1 -1
  140. package/dist/Parameter/LinearPerceptronParameter.js +56 -62
  141. package/dist/Parameter/LinearPerceptronParameter.js.map +1 -1
  142. package/dist/Parameter/MultiLayerPerceptronParameter.js +38 -46
  143. package/dist/Parameter/MultiLayerPerceptronParameter.js.map +1 -1
  144. package/dist/Parameter/Parameter.js +21 -30
  145. package/dist/Parameter/Parameter.js.map +1 -1
  146. package/dist/Parameter/RandomForestParameter.js +25 -34
  147. package/dist/Parameter/RandomForestParameter.js.map +1 -1
  148. package/dist/Performance/ClassificationPerformance.js +24 -33
  149. package/dist/Performance/ClassificationPerformance.js.map +1 -1
  150. package/dist/Performance/ConfusionMatrix.js +149 -158
  151. package/dist/Performance/ConfusionMatrix.js.map +1 -1
  152. package/dist/Performance/DetailedClassificationPerformance.js +23 -32
  153. package/dist/Performance/DetailedClassificationPerformance.js.map +1 -1
  154. package/dist/Performance/ExperimentPerformance.js +184 -161
  155. package/dist/Performance/ExperimentPerformance.js.map +1 -1
  156. package/dist/Performance/Performance.js +21 -30
  157. package/dist/Performance/Performance.js.map +1 -1
  158. package/dist/StatisticalTest/Combined5x2F.js +41 -51
  159. package/dist/StatisticalTest/Combined5x2F.js.map +1 -1
  160. package/dist/StatisticalTest/Combined5x2t.js +42 -52
  161. package/dist/StatisticalTest/Combined5x2t.js.map +1 -1
  162. package/dist/StatisticalTest/Paired5x2t.js +40 -50
  163. package/dist/StatisticalTest/Paired5x2t.js.map +1 -1
  164. package/dist/StatisticalTest/PairedTest.js +31 -41
  165. package/dist/StatisticalTest/PairedTest.js.map +1 -1
  166. package/dist/StatisticalTest/Pairedt.js +38 -48
  167. package/dist/StatisticalTest/Pairedt.js.map +1 -1
  168. package/dist/StatisticalTest/Sign.js +50 -60
  169. package/dist/StatisticalTest/Sign.js.map +1 -1
  170. package/dist/StatisticalTest/StatisticalTestResult.js +65 -73
  171. package/dist/StatisticalTest/StatisticalTestResult.js.map +1 -1
  172. package/dist/StatisticalTest/StatisticalTestResultType.js +11 -21
  173. package/dist/StatisticalTest/StatisticalTestResultType.js.map +1 -1
  174. package/dist/index.js +95 -101
  175. package/dist/index.js.map +1 -1
  176. package/package.json +7 -6
  177. package/tsconfig.json +4 -3
  178. package/source/tsconfig.json +0 -13
@@ -1,118 +1,111 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KnnModel = void 0;
4
+ const Model_1 = require("../Model");
5
+ const InstanceList_1 = require("../../InstanceList/InstanceList");
6
+ const CompositeInstance_1 = require("../../Instance/CompositeInstance");
7
+ const KnnInstance_1 = require("./KnnInstance");
8
+ const EuclidianDistance_1 = require("../../DistanceMetric/EuclidianDistance");
9
+ const FileContents_1 = require("nlptoolkit-util/dist/FileContents");
10
+ class KnnModel extends Model_1.Model {
11
+ data;
12
+ k;
13
+ distanceMetric;
14
+ /**
15
+ * Constructor that sets the data {@link InstanceList}, k value and the {@link DistanceMetric}.
16
+ *
17
+ * @param data {@link InstanceList} input.
18
+ * @param k K value.
19
+ * @param distanceMetric {@link DistanceMetric} input.
20
+ */
21
+ constructor1(data, k, distanceMetric) {
22
+ this.data = data;
23
+ this.k = k;
24
+ this.distanceMetric = distanceMetric;
5
25
  }
6
- else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "../Model", "../../InstanceList/InstanceList", "../../Instance/CompositeInstance", "./KnnInstance", "../../DistanceMetric/EuclidianDistance", "nlptoolkit-util/dist/FileContents"], factory);
26
+ /**
27
+ * Loads a K-nearest neighbor model from an input model file.
28
+ * @param fileName Model file name.
29
+ */
30
+ constructor2(fileName) {
31
+ this.distanceMetric = new EuclidianDistance_1.EuclidianDistance();
32
+ let input = new FileContents_1.FileContents(fileName);
33
+ this.k = parseInt(input.readLine());
34
+ this.data = this.loadInstanceList(input);
8
35
  }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.KnnModel = void 0;
13
- const Model_1 = require("../Model");
14
- const InstanceList_1 = require("../../InstanceList/InstanceList");
15
- const CompositeInstance_1 = require("../../Instance/CompositeInstance");
16
- const KnnInstance_1 = require("./KnnInstance");
17
- const EuclidianDistance_1 = require("../../DistanceMetric/EuclidianDistance");
18
- const FileContents_1 = require("nlptoolkit-util/dist/FileContents");
19
- class KnnModel extends Model_1.Model {
20
- /**
21
- * Constructor that sets the data {@link InstanceList}, k value and the {@link DistanceMetric}.
22
- *
23
- * @param data {@link InstanceList} input.
24
- * @param k K value.
25
- * @param distanceMetric {@link DistanceMetric} input.
26
- */
27
- constructor1(data, k, distanceMetric) {
28
- this.data = data;
29
- this.k = k;
30
- this.distanceMetric = distanceMetric;
36
+ /**
37
+ * The predict method takes an {@link Instance} as an input and finds the nearest neighbors of given instance. Then
38
+ * it returns the first possible class label as the predicted class.
39
+ *
40
+ * @param instance {@link Instance} to make prediction.
41
+ * @return The first possible class label as the predicted class.
42
+ */
43
+ predict(instance) {
44
+ let nearestNeighbors = this.nearestNeighbors(instance);
45
+ let predictedClass;
46
+ if (instance instanceof CompositeInstance_1.CompositeInstance && nearestNeighbors.size() == 0) {
47
+ predictedClass = instance.getPossibleClassLabels()[0];
31
48
  }
32
- /**
33
- * Loads a K-nearest neighbor model from an input model file.
34
- * @param fileName Model file name.
35
- */
36
- constructor2(fileName) {
37
- this.distanceMetric = new EuclidianDistance_1.EuclidianDistance();
38
- let input = new FileContents_1.FileContents(fileName);
39
- this.k = parseInt(input.readLine());
40
- this.data = this.loadInstanceList(input);
49
+ else {
50
+ predictedClass = Model_1.Model.getMaximum(nearestNeighbors.getClassLabels());
41
51
  }
42
- /**
43
- * The predict method takes an {@link Instance} as an input and finds the nearest neighbors of given instance. Then
44
- * it returns the first possible class label as the predicted class.
45
- *
46
- * @param instance {@link Instance} to make prediction.
47
- * @return The first possible class label as the predicted class.
48
- */
49
- predict(instance) {
50
- let nearestNeighbors = this.nearestNeighbors(instance);
51
- let predictedClass;
52
- if (instance instanceof CompositeInstance_1.CompositeInstance && nearestNeighbors.size() == 0) {
53
- predictedClass = instance.getPossibleClassLabels()[0];
54
- }
55
- else {
56
- predictedClass = Model_1.Model.getMaximum(nearestNeighbors.getClassLabels());
57
- }
58
- return predictedClass;
59
- }
60
- /**
61
- * Calculates the posterior probability distribution for the given instance according to K-means model.
62
- * @param instance Instance for which posterior probability distribution is calculated.
63
- * @return Posterior probability distribution for the given instance.
64
- */
65
- predictProbability(instance) {
66
- let nearestNeighbors = this.nearestNeighbors(instance);
67
- return nearestNeighbors.classDistribution().getProbabilityDistribution();
52
+ return predictedClass;
53
+ }
54
+ /**
55
+ * Calculates the posterior probability distribution for the given instance according to K-means model.
56
+ * @param instance Instance for which posterior probability distribution is calculated.
57
+ * @return Posterior probability distribution for the given instance.
58
+ */
59
+ predictProbability(instance) {
60
+ let nearestNeighbors = this.nearestNeighbors(instance);
61
+ return nearestNeighbors.classDistribution().getProbabilityDistribution();
62
+ }
63
+ /**
64
+ * The nearestNeighbors method takes an {@link Instance} as an input. First it gets the possible class labels, then loops
65
+ * through the data {@link InstanceList} and creates new {@link Array} of {@link KnnInstance}s and adds the corresponding data with
66
+ * the distance between data and given instance. After sorting this newly created ArrayList, it loops k times and
67
+ * returns the first k instances as an {@link InstanceList}.
68
+ *
69
+ * @param instance {@link Instance} to find nearest neighbors/
70
+ * @return The first k instances which are nearest to the given instance as an {@link InstanceList}.
71
+ */
72
+ nearestNeighbors(instance) {
73
+ let result = new InstanceList_1.InstanceList();
74
+ let instances = new Array();
75
+ let possibleClassLabels = undefined;
76
+ if (instance instanceof CompositeInstance_1.CompositeInstance) {
77
+ possibleClassLabels = instance.getPossibleClassLabels();
68
78
  }
69
- /**
70
- * The nearestNeighbors method takes an {@link Instance} as an input. First it gets the possible class labels, then loops
71
- * through the data {@link InstanceList} and creates new {@link Array} of {@link KnnInstance}s and adds the corresponding data with
72
- * the distance between data and given instance. After sorting this newly created ArrayList, it loops k times and
73
- * returns the first k instances as an {@link InstanceList}.
74
- *
75
- * @param instance {@link Instance} to find nearest neighbors/
76
- * @return The first k instances which are nearest to the given instance as an {@link InstanceList}.
77
- */
78
- nearestNeighbors(instance) {
79
- let result = new InstanceList_1.InstanceList();
80
- let instances = new Array();
81
- let possibleClassLabels = undefined;
82
- if (instance instanceof CompositeInstance_1.CompositeInstance) {
83
- possibleClassLabels = instance.getPossibleClassLabels();
84
- }
85
- for (let i = 0; i < this.data.size(); i++) {
86
- if (!(instance instanceof CompositeInstance_1.CompositeInstance) || possibleClassLabels.includes(this.data.get(i).getClassLabel())) {
87
- instances.push(new KnnInstance_1.KnnInstance(this.data.get(i), this.distanceMetric.distance(this.data.get(i), instance)));
88
- }
79
+ for (let i = 0; i < this.data.size(); i++) {
80
+ if (!(instance instanceof CompositeInstance_1.CompositeInstance) || possibleClassLabels.includes(this.data.get(i).getClassLabel())) {
81
+ instances.push(new KnnInstance_1.KnnInstance(this.data.get(i), this.distanceMetric.distance(this.data.get(i), instance)));
89
82
  }
90
- instances.sort((a, b) => a.getDistance() < b.getDistance() ? -1 : a.getDistance() > b.getDistance() ? 1 : 0);
91
- for (let i = 0; i < Math.min(this.k, instances.length); i++) {
92
- result.add(instances[i].getInstance());
93
- }
94
- return result;
95
- }
96
- saveTxt(fileName) {
97
- }
98
- /**
99
- * Training algorithm for K-nearest neighbor classifier.
100
- *
101
- * @param trainSet Training data given to the algorithm.
102
- * @param parameters K: k parameter of the K-nearest neighbor algorithm
103
- * distanceMetric: distance metric used to calculate the distance between two instances.
104
- */
105
- train(trainSet, parameters) {
106
- this.constructor1(trainSet, parameters.getK(), parameters.getDistanceMetric());
107
83
  }
108
- /**
109
- * Loads the K-nearest neighbor model from an input file.
110
- * @param fileName File name of the K-nearest neighbor model.
111
- */
112
- loadModel(fileName) {
113
- this.constructor2(fileName);
84
+ instances.sort((a, b) => a.getDistance() < b.getDistance() ? -1 : a.getDistance() > b.getDistance() ? 1 : 0);
85
+ for (let i = 0; i < Math.min(this.k, instances.length); i++) {
86
+ result.add(instances[i].getInstance());
114
87
  }
88
+ return result;
89
+ }
90
+ saveTxt(fileName) {
91
+ }
92
+ /**
93
+ * Training algorithm for K-nearest neighbor classifier.
94
+ *
95
+ * @param trainSet Training data given to the algorithm.
96
+ * @param parameters K: k parameter of the K-nearest neighbor algorithm
97
+ * distanceMetric: distance metric used to calculate the distance between two instances.
98
+ */
99
+ train(trainSet, parameters) {
100
+ this.constructor1(trainSet, parameters.getK(), parameters.getDistanceMetric());
101
+ }
102
+ /**
103
+ * Loads the K-nearest neighbor model from an input file.
104
+ * @param fileName File name of the K-nearest neighbor model.
105
+ */
106
+ loadModel(fileName) {
107
+ this.constructor2(fileName);
115
108
  }
116
- exports.KnnModel = KnnModel;
117
- });
109
+ }
110
+ exports.KnnModel = KnnModel;
118
111
  //# sourceMappingURL=KnnModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KnnModel.js","sourceRoot":"","sources":["../../../source/Model/NonParametric/KnnModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KnnModel.js","sourceRoot":"","sources":["../../../source/Model/NonParametric/KnnModel.ts"],"names":[],"mappings":"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"}
@@ -1,104 +1,95 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "nlptoolkit-math/dist/DiscreteDistribution", "../ValidatedModel", "../../Instance/CompositeInstance", "nlptoolkit-math/dist/Vector"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.GaussianModel = void 0;
13
- const DiscreteDistribution_1 = require("nlptoolkit-math/dist/DiscreteDistribution");
14
- const ValidatedModel_1 = require("../ValidatedModel");
15
- const CompositeInstance_1 = require("../../Instance/CompositeInstance");
16
- const Vector_1 = require("nlptoolkit-math/dist/Vector");
17
- class GaussianModel extends ValidatedModel_1.ValidatedModel {
18
- /**
19
- * The predict method takes an Instance as an input. First it gets the size of prior distribution and loops this size times.
20
- * Then it gets the possible class labels and and calculates metric value. At the end, it returns the class which has the
21
- * maximum value of metric.
22
- *
23
- * @param instance {@link Instance} to predict.
24
- * @return The class which has the maximum value of metric.
25
- */
26
- predict(instance) {
27
- let maxMetric = Number.NEGATIVE_INFINITY;
28
- let predictedClass, size;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GaussianModel = void 0;
4
+ const DiscreteDistribution_1 = require("nlptoolkit-math/dist/DiscreteDistribution");
5
+ const ValidatedModel_1 = require("../ValidatedModel");
6
+ const CompositeInstance_1 = require("../../Instance/CompositeInstance");
7
+ const Vector_1 = require("nlptoolkit-math/dist/Vector");
8
+ class GaussianModel extends ValidatedModel_1.ValidatedModel {
9
+ priorDistribution;
10
+ /**
11
+ * The predict method takes an Instance as an input. First it gets the size of prior distribution and loops this size times.
12
+ * Then it gets the possible class labels and and calculates metric value. At the end, it returns the class which has the
13
+ * maximum value of metric.
14
+ *
15
+ * @param instance {@link Instance} to predict.
16
+ * @return The class which has the maximum value of metric.
17
+ */
18
+ predict(instance) {
19
+ let maxMetric = Number.NEGATIVE_INFINITY;
20
+ let predictedClass, size;
21
+ if (instance instanceof CompositeInstance_1.CompositeInstance) {
22
+ predictedClass = instance.getPossibleClassLabels()[0];
23
+ size = instance.getPossibleClassLabels().length;
24
+ }
25
+ else {
26
+ predictedClass = this.priorDistribution.getMaxItem();
27
+ size = this.priorDistribution.size;
28
+ }
29
+ for (let i = 0; i < size; i++) {
30
+ let Ci;
29
31
  if (instance instanceof CompositeInstance_1.CompositeInstance) {
30
- predictedClass = instance.getPossibleClassLabels()[0];
31
- size = instance.getPossibleClassLabels().length;
32
+ Ci = instance.getPossibleClassLabels()[i];
32
33
  }
33
34
  else {
34
- predictedClass = this.priorDistribution.getMaxItem();
35
- size = this.priorDistribution.size;
35
+ Ci = this.priorDistribution.getItem(i);
36
36
  }
37
- for (let i = 0; i < size; i++) {
38
- let Ci;
39
- if (instance instanceof CompositeInstance_1.CompositeInstance) {
40
- Ci = instance.getPossibleClassLabels()[i];
41
- }
42
- else {
43
- Ci = this.priorDistribution.getItem(i);
44
- }
45
- if (this.priorDistribution.containsItem(Ci)) {
46
- let metric = this.calculateMetric(instance, Ci);
47
- if (metric > maxMetric) {
48
- maxMetric = metric;
49
- predictedClass = Ci;
50
- }
37
+ if (this.priorDistribution.containsItem(Ci)) {
38
+ let metric = this.calculateMetric(instance, Ci);
39
+ if (metric > maxMetric) {
40
+ maxMetric = metric;
41
+ predictedClass = Ci;
51
42
  }
52
43
  }
53
- return predictedClass;
54
44
  }
55
- /**
56
- * Loads the prior probability distribution from an input model file.
57
- * @param input Input model file.
58
- * @return Prior probability distribution.
59
- * @throws IOException If the input file can not be read, the method throws IOException.
60
- */
61
- loadPriorDistribution(input) {
62
- let size = parseInt(input.readLine());
63
- this.priorDistribution = new DiscreteDistribution_1.DiscreteDistribution();
64
- for (let i = 0; i < size; i++) {
65
- let line = input.readLine();
66
- let items = line.split(" ");
67
- for (let j = 0; j < parseInt(items[1]); j++) {
68
- this.priorDistribution.addItem(items[0]);
69
- }
45
+ return predictedClass;
46
+ }
47
+ /**
48
+ * Loads the prior probability distribution from an input model file.
49
+ * @param input Input model file.
50
+ * @return Prior probability distribution.
51
+ * @throws IOException If the input file can not be read, the method throws IOException.
52
+ */
53
+ loadPriorDistribution(input) {
54
+ let size = parseInt(input.readLine());
55
+ this.priorDistribution = new DiscreteDistribution_1.DiscreteDistribution();
56
+ for (let i = 0; i < size; i++) {
57
+ let line = input.readLine();
58
+ let items = line.split(" ");
59
+ for (let j = 0; j < parseInt(items[1]); j++) {
60
+ this.priorDistribution.addItem(items[0]);
70
61
  }
71
- return size;
72
62
  }
73
- /**
74
- * Loads hash map of vectors from input model file.
75
- * @param input Input model file.
76
- * @param size Number of vectors to be read from input model file.
77
- * @return Hash map of vectors.
78
- * @throws IOException If the input file can not be read, the method throws IOException.
79
- */
80
- loadVectors(input, size) {
81
- let map = new Map();
82
- for (let i = 0; i < size; i++) {
83
- let line = input.readLine();
84
- let items = line.split(" ");
85
- let vector = new Vector_1.Vector(parseInt(items[1]), 0);
86
- for (let j = 2; j < items.length; j++) {
87
- vector.setValue(j - 2, parseFloat(items[j]));
88
- }
89
- map.set(items[0], vector);
63
+ return size;
64
+ }
65
+ /**
66
+ * Loads hash map of vectors from input model file.
67
+ * @param input Input model file.
68
+ * @param size Number of vectors to be read from input model file.
69
+ * @return Hash map of vectors.
70
+ * @throws IOException If the input file can not be read, the method throws IOException.
71
+ */
72
+ loadVectors(input, size) {
73
+ let map = new Map();
74
+ for (let i = 0; i < size; i++) {
75
+ let line = input.readLine();
76
+ let items = line.split(" ");
77
+ let vector = new Vector_1.Vector(parseInt(items[1]), 0);
78
+ for (let j = 2; j < items.length; j++) {
79
+ vector.setValue(j - 2, parseFloat(items[j]));
90
80
  }
91
- return map;
92
- }
93
- /**
94
- * Calculates the posterior probability distribution for the given instance according to Gaussian model.
95
- * @param instance Instance for which posterior probability distribution is calculated.
96
- * @return Posterior probability distribution for the given instance.
97
- */
98
- predictProbability(instance) {
99
- return undefined;
81
+ map.set(items[0], vector);
100
82
  }
83
+ return map;
84
+ }
85
+ /**
86
+ * Calculates the posterior probability distribution for the given instance according to Gaussian model.
87
+ * @param instance Instance for which posterior probability distribution is calculated.
88
+ * @return Posterior probability distribution for the given instance.
89
+ */
90
+ predictProbability(instance) {
91
+ return undefined;
101
92
  }
102
- exports.GaussianModel = GaussianModel;
103
- });
93
+ }
94
+ exports.GaussianModel = GaussianModel;
104
95
  //# sourceMappingURL=GaussianModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GaussianModel.js","sourceRoot":"","sources":["../../../source/Model/Parametric/GaussianModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GaussianModel.js","sourceRoot":"","sources":["../../../source/Model/Parametric/GaussianModel.ts"],"names":[],"mappings":";;;AAAA,oFAA+E;AAE/E,sDAAiD;AACjD,wEAAmE;AAEnE,wDAAmD;AAEnD,MAAsB,aAAc,SAAQ,+BAAc;IAE5C,iBAAiB,CAAsB;IAWjD;;;;;;;OAOG;IACH,OAAO,CAAC,QAAkB;QACtB,IAAI,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACzC,IAAI,cAAc,EAAE,IAAI,CAAA;QACxB,IAAI,QAAQ,YAAY,qCAAiB,EAAE,CAAC;YACxC,cAAc,GAAwB,QAAS,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5E,IAAI,GAAwB,QAAS,CAAC,sBAAsB,EAAE,CAAC,MAAM,CAAC;QAC1E,CAAC;aAAM,CAAC;YACJ,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;YACrD,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QACvC,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,IAAI,EAAE,CAAA;YACN,IAAI,QAAQ,YAAY,qCAAiB,EAAE,CAAC;gBACxC,EAAE,GAAwB,QAAS,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACJ,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC1C,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAChD,IAAI,MAAM,GAAG,SAAS,EAAE,CAAC;oBACrB,SAAS,GAAG,MAAM,CAAC;oBACnB,cAAc,GAAG,EAAE,CAAC;gBACxB,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CAAC,KAAmB;QACrC,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;QACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,2CAAoB,EAAE,CAAA;QACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAC,CAAC;YAC3B,IAAI,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;YAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC;gBACzC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAC5C,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAA;IACf,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,KAAmB,EAAE,IAAY;QACzC,IAAI,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAA;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAC,CAAC;YAC3B,IAAI,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;YAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC3B,IAAI,MAAM,GAAG,IAAI,eAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC,CAAC;gBACnC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAChD,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QAC7B,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,QAAkB;QACjC,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AAjGD,sCAiGC"}
@@ -1,73 +1,65 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KMeansModel = void 0;
4
+ const GaussianModel_1 = require("./GaussianModel");
5
+ const InstanceList_1 = require("../../InstanceList/InstanceList");
6
+ const FileContents_1 = require("nlptoolkit-util/dist/FileContents");
7
+ const EuclidianDistance_1 = require("../../DistanceMetric/EuclidianDistance");
8
+ const Partition_1 = require("../../InstanceList/Partition");
9
+ class KMeansModel extends GaussianModel_1.GaussianModel {
10
+ classMeans;
11
+ distanceMetric;
12
+ /**
13
+ * Loads a K-means model from an input model file.
14
+ * @param fileName Model file name.
15
+ */
16
+ constructor2(fileName) {
17
+ this.distanceMetric = new EuclidianDistance_1.EuclidianDistance();
18
+ let input = new FileContents_1.FileContents(fileName);
19
+ this.loadPriorDistribution(input);
20
+ this.classMeans = this.loadInstanceList(input);
5
21
  }
6
- else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "./GaussianModel", "../../InstanceList/InstanceList", "nlptoolkit-util/dist/FileContents", "../../DistanceMetric/EuclidianDistance", "../../InstanceList/Partition"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.KMeansModel = void 0;
13
- const GaussianModel_1 = require("./GaussianModel");
14
- const InstanceList_1 = require("../../InstanceList/InstanceList");
15
- const FileContents_1 = require("nlptoolkit-util/dist/FileContents");
16
- const EuclidianDistance_1 = require("../../DistanceMetric/EuclidianDistance");
17
- const Partition_1 = require("../../InstanceList/Partition");
18
- class KMeansModel extends GaussianModel_1.GaussianModel {
19
- /**
20
- * Loads a K-means model from an input model file.
21
- * @param fileName Model file name.
22
- */
23
- constructor2(fileName) {
24
- this.distanceMetric = new EuclidianDistance_1.EuclidianDistance();
25
- let input = new FileContents_1.FileContents(fileName);
26
- this.loadPriorDistribution(input);
27
- this.classMeans = this.loadInstanceList(input);
28
- }
29
- /**
30
- * The calculateMetric method takes an {@link Instance} and a String as inputs. It loops through the class means, if
31
- * the corresponding class label is same as the given String it returns the negated distance between given instance and the
32
- * current item of class means. Otherwise it returns the smallest negative number.
33
- *
34
- * @param instance {@link Instance} input.
35
- * @param Ci String input.
36
- * @return The negated distance between given instance and the current item of class means.
37
- */
38
- calculateMetric(instance, Ci) {
39
- for (let i = 0; i < this.classMeans.size(); i++) {
40
- if (this.classMeans.get(i).getClassLabel() == Ci) {
41
- return -this.distanceMetric.distance(instance, this.classMeans.get(i));
42
- }
43
- }
44
- return Number.NEGATIVE_INFINITY;
45
- }
46
- saveTxt(fileName) {
47
- }
48
- /**
49
- * Training algorithm for K-Means classifier. K-Means finds the mean of each class for training.
50
- *
51
- * @param trainSet Training data given to the algorithm.
52
- * @param parameters distanceMetric: distance metric used to calculate the distance between two instances.
53
- */
54
- train(trainSet, parameters) {
55
- this.priorDistribution = trainSet.classDistribution();
56
- this.classMeans = new InstanceList_1.InstanceList();
57
- let classLists = new Partition_1.Partition(trainSet);
58
- for (let i = 0; i < classLists.size(); i++) {
59
- this.classMeans.add(classLists.get(i).average());
22
+ /**
23
+ * The calculateMetric method takes an {@link Instance} and a String as inputs. It loops through the class means, if
24
+ * the corresponding class label is same as the given String it returns the negated distance between given instance and the
25
+ * current item of class means. Otherwise it returns the smallest negative number.
26
+ *
27
+ * @param instance {@link Instance} input.
28
+ * @param Ci String input.
29
+ * @return The negated distance between given instance and the current item of class means.
30
+ */
31
+ calculateMetric(instance, Ci) {
32
+ for (let i = 0; i < this.classMeans.size(); i++) {
33
+ if (this.classMeans.get(i).getClassLabel() == Ci) {
34
+ return -this.distanceMetric.distance(instance, this.classMeans.get(i));
60
35
  }
61
- this.distanceMetric = parameters.getDistanceMetric();
62
36
  }
63
- /**
64
- * Loads the K-means model from an input file.
65
- * @param fileName File name of the K-means model.
66
- */
67
- loadModel(fileName) {
68
- this.constructor2(fileName);
37
+ return Number.NEGATIVE_INFINITY;
38
+ }
39
+ saveTxt(fileName) {
40
+ }
41
+ /**
42
+ * Training algorithm for K-Means classifier. K-Means finds the mean of each class for training.
43
+ *
44
+ * @param trainSet Training data given to the algorithm.
45
+ * @param parameters distanceMetric: distance metric used to calculate the distance between two instances.
46
+ */
47
+ train(trainSet, parameters) {
48
+ this.priorDistribution = trainSet.classDistribution();
49
+ this.classMeans = new InstanceList_1.InstanceList();
50
+ let classLists = new Partition_1.Partition(trainSet);
51
+ for (let i = 0; i < classLists.size(); i++) {
52
+ this.classMeans.add(classLists.get(i).average());
69
53
  }
54
+ this.distanceMetric = parameters.getDistanceMetric();
55
+ }
56
+ /**
57
+ * Loads the K-means model from an input file.
58
+ * @param fileName File name of the K-means model.
59
+ */
60
+ loadModel(fileName) {
61
+ this.constructor2(fileName);
70
62
  }
71
- exports.KMeansModel = KMeansModel;
72
- });
63
+ }
64
+ exports.KMeansModel = KMeansModel;
73
65
  //# sourceMappingURL=KMeansModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KMeansModel.js","sourceRoot":"","sources":["../../../source/Model/Parametric/KMeansModel.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,mDAA8C;IAC9C,kEAA6D;IAG7D,oEAA+D;IAC/D,8EAAyE;IAEzE,4DAAuD;IAGvD,MAAa,WAAY,SAAQ,6BAAa;QAK1C;;;WAGG;QACH,YAAY,CAAC,QAAgB;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,qCAAiB,EAAE,CAAA;YAC7C,IAAI,KAAK,GAAG,IAAI,2BAAY,CAAC,QAAQ,CAAC,CAAA;YACtC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;YACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAClD,CAAC;QAED;;;;;;;;WAQG;QACH,eAAe,CAAC,QAAkB,EAAE,EAAU;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE;oBAC9C,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC1E;aACJ;YACD,OAAO,MAAM,CAAC,iBAAiB,CAAC;QACpC,CAAC;QAED,OAAO,CAAC,QAAgB;QACxB,CAAC;QAED;;;;;WAKG;QACH,KAAK,CAAC,QAAsB,EAAE,UAAqB;YAC/C,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YACtD,IAAI,CAAC,UAAU,GAAG,IAAI,2BAAY,EAAE,CAAC;YACrC,IAAI,UAAU,GAAG,IAAI,qBAAS,CAAC,QAAQ,CAAC,CAAC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;aACpD;YACD,IAAI,CAAC,cAAc,GAAsB,UAAW,CAAC,iBAAiB,EAAE,CAAA;QAC5E,CAAC;QAED;;;WAGG;QACH,SAAS,CAAC,QAAgB;YACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QAC/B,CAAC;KAEJ;IA7DD,kCA6DC"}
1
+ {"version":3,"file":"KMeansModel.js","sourceRoot":"","sources":["../../../source/Model/Parametric/KMeansModel.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAC9C,kEAA6D;AAG7D,oEAA+D;AAC/D,8EAAyE;AAEzE,4DAAuD;AAGvD,MAAa,WAAY,SAAQ,6BAAa;IAElC,UAAU,CAAc;IACxB,cAAc,CAAgB;IAEtC;;;OAGG;IACH,YAAY,CAAC,QAAgB;QACzB,IAAI,CAAC,cAAc,GAAG,IAAI,qCAAiB,EAAE,CAAA;QAC7C,IAAI,KAAK,GAAG,IAAI,2BAAY,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAClD,CAAC;IAED;;;;;;;;OAQG;IACH,eAAe,CAAC,QAAkB,EAAE,EAAU;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3E,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC,iBAAiB,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,QAAgB;IACxB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAsB,EAAE,UAAqB;QAC/C,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QACtD,IAAI,CAAC,UAAU,GAAG,IAAI,2BAAY,EAAE,CAAC;QACrC,IAAI,UAAU,GAAG,IAAI,qBAAS,CAAC,QAAQ,CAAC,CAAC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,cAAc,GAAsB,UAAW,CAAC,iBAAiB,EAAE,CAAA;IAC5E,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,QAAgB;QACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC;CAEJ;AA7DD,kCA6DC"}