taginference.h

来自「文本倾向性分析程序」· C头文件 代码 · 共 49 行

H
49
字号
#ifndef __TAGINFERENCE_H__
#define __TAGINFERENCE_H__

#include "Common.h"

#define psi(x)	digamma(x)
#define LOG_E_1 1.3132616875
#define LOG_E_K 1.38629436

class CTagInference
{
public:
	CTagInference();
	~CTagInference();
	void Evaluate();

private:
	void Load();
		
private:
	double *alpha, **beta, **eta, *gamma, **q, *nt, *ap;
	
	int nclass;
	int nlex;
	int ntag;

	int emmax;
	double epsilon;

	std::vector<std::string> m_vec_word;
	std::vector<std::string> m_vec_tag;

private:
	double EM(document &d, double *gamma, double **q, double *nt, double *ap, const double *alpha, const double **beta, int L, int K, int emmax, double epsilon);
	double Likelihood(document &d, const double *alpha, const double **beta, double *gamma, double** phi, int L, int K);
	double digamma(double x);
	double lgamma(double x);
	double **dmatrix(int rows, int cols);
	void free_dmatrix(double **matrix, int rows);

	double Analyze(int idx);
	double AnalyzeY(int idx, ofstream& out, bool truelabel);
	static bool Comp( rank_t &e1, rank_t &e2 );


};


#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?