00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef PLSAMAP_H
00025 #define PLSAMAP_H
00026
00027 #include "WordSubIndex.h"
00028 #include <cstdlib>
00029 #include <cmath>
00030 #include <ctime>
00031 #include <iostream>
00032
00052 class PlsaMap {
00053 public:
00054
00056 PlsaMap(int documents, int words, int topics);
00057 virtual ~PlsaMap(void);
00058
00060 void printEigenValues(void);
00061
00063 void deleteTempBuffers(void);
00064
00066 void initialise(WordSubIndex *index);
00067
00069 void zeroTempBuffers(void);
00070
00072 void randomiseRealBuffers(WordSubIndex *index);
00073
00075 void initialiseRealBuffers(WordSubIndex *index);
00076
00078 void iterate(void);
00079
00081 void iterate(int **index);
00082
00084 void finalise(void);
00085
00087 void printFile(void);
00088
00090 void checkProbabilities(void);
00091
00093 void operator+=(PlsaMap *x);
00094
00096 virtual void nextElement(void) = 0;
00097
00099 virtual void reset(void) = 0;
00100
00102 virtual int term(void) = 0;
00103
00105 virtual int document(void) = 0;
00106
00108 virtual float frequency(void) = 0;
00109
00111 float **Pwz;
00112
00114 float **Pdz;
00115
00117 float *Pz;
00118
00120 float _R;
00121
00123 const int topics;
00124 private:
00125 const int documents;
00126 const int words;
00127
00128
00129 bool tempBufferState;
00130
00131 int iterations;
00132 float Pzdwt;
00133 float Pzdwtemp, zDiff, lastzDiff;
00134 float **nPwz;
00135 float **nPdz;
00136 float *nPz, *Pzdw;
00137 };
00138
00139 #endif