18 using System.Collections.Generic;
21 using TraceLabSDK.Types;
23 namespace TraceLab.Components.DevelopmentKit.Utils.TermDocumentMatrixUtils
37 for (
int i = 0; i < matrix.
NumDocs; i++)
39 for (
int j = 0; j < matrix.
NumTerms; j++)
41 matrix[i, j] = (matrix[i, j] > 0.0) ? 1.0 : 0.0;
55 for (
int i = 0; i < matrix.
NumDocs; i++)
58 for (
int j = 0; j < matrix.
NumTerms; j++)
60 matrix[i, j] = matrix[i, j] / max;
73 double[] df =
new double[matrix.
NumTerms];
74 for (
int j = 0; j < matrix.
NumTerms; j++)
77 for (
int i = 0; i < matrix.
NumDocs; i++)
79 df[j] += (matrix[i, j] > 0.0) ? 1.0 : 0.0;
92 return ComputeIDF(ComputeDF(matrix), matrix.
NumDocs);
103 double[] idf =
new double[df.Length];
104 for (
int i = 0; i < df.Length; i++)
112 idf[i] = Math.Log(numDocs / df[i]);
125 return ComputeTFIDF(ComputeTF(matrix), ComputeIDF(matrix));
136 for (
int i = 0; i < tf.
NumDocs; i++)
138 for (
int j = 0; j < tf.
NumTerms; j++)
140 tf[i, j] = tf[i, j] * idf[j];
153 double[] avg =
new double[matrix.
NumTerms];
154 for (
int j = 0; j < matrix.
NumTerms; j++)
156 for (
int i = 0; i < matrix.
NumDocs; i++)
158 avg[j] += matrix[i, j];
160 avg[j] = avg[j] / matrix.
NumDocs;
173 double[] avg =
new double[matrix.
NumTerms];
174 for (
int j = 0; j < matrix.
NumTerms; j++)
176 foreach (
string docID
in IDs)
179 avg[j] += matrix[docIndex, j];
181 avg[j] = avg[j] / IDs.Count();