-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprophet.h
53 lines (46 loc) · 1.46 KB
/
prophet.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <stdio.h>
#include <iostream>
//#include "../common/jjheader.h"
#include "jjheader.h"
#include "relevance.h"
#include "isodata.h"
typedef hash_map<SYMBOLNODE, COLLECTOR*, SNORDER > colhash;
typedef colhash::iterator chash;
typedef hash_map<PFORMULA*, COLLECTOR*, PFORDER > pfhash;
typedef pfhash::iterator phash;
class QE {
public:
colhash tqe; //hash to QE vector for each symbol
pfhash fqe; //hash to QE vector for each formula
QE(vector<PFORMULA*> &formulae, PFORMULA* presence);
double compare(SYMBOLNODE s1, SYMBOLNODE s2);
double innerProduct(COLLECTOR* c1, COLLECTOR* c2);
double compare(PFORMULA* f1, PFORMULA* f2, PFORMULA* context);
COLLECTOR* FQE(COLLECTOR &sfdata);
COLLECTOR* TQE(vector<PFORMULA*> &formulae, SYMBOLNODE s, PFORMULA* presence);
};
class PROPHET {
private:
vector<PFORMULA*> formulae;
vector<ANNOTATEDFORMULA> annotatedFormulae;
PFORMULA* context;
PFORMULA* presence;
RelevanceMatrix *matrix;
int coreSize;
int finalClusters;
SIGNATURE Signature;
//context options
int modification;
bool countOnce;
void StorUsefullData(ANNOTATEDFORMULA f, int j);
void updateContext();
public:
PROPHET(FILE *source, bool countOnce, int modification,
bool includeHypothesis);
~PROPHET();
void compute(char* dirOpt, char* varOpt, char* rankerOpt);
void clusterDirectly(int targetClusters);
void clusterGreedy(bool useIndirect); //2 clusters. 0=bad 1=good
void clusterGoogle();
void PrintFormulae();
};