⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transoptions.h

📁 解码器是基于短语的统计机器翻译系统的核心模块
💻 H
字号:
#ifndef TRANSOPTIONS_H
#define TRANSOPTIONS_H

#include <string>
#include <fstream>
#include <map>
#include <set>
#include <ctime>
#include "LanguageModel.h"
#include "ConfigINI.h"
#include "Vocab.h"


using namespace std;



class aboutEPhrase
{
public:
	double pC;
	double c;
	vector<int> ephrase;
};

class fPosition
{
public:
	int start;
	int end;
};

class GREATER
{
public:
	bool operator()(aboutEPhrase* e1, aboutEPhrase* e2)
	{
		return e1->c - e2->c >= avs;
	}
};

class LESS
{
public:
	bool operator()(aboutEPhrase* e1, aboutEPhrase* e2)
	{
		return e1->c - e2->c <= avs;
	}
};

//typedef multiset<aboutEPhrase, GREATER> candiPhrase;
typedef vector<aboutEPhrase*> candiPhrase;
typedef map<vector<int>, candiPhrase> phraseTable;

typedef vector<candiPhrase *> PhraseSnippet; //存放一个句子的所有Translation Option
typedef vector<fPosition> PhraseSnippetPosition;
typedef vector<double> vecDou;
typedef vector<vecDou> vecFutureCost; //future cost

class TransOptions
{
public:
	TransOptions(Para para);
	bool load(string fileName, LanguageModel *lm, Vocab *evocab, Vocab *cvocab);
	void split(const string& line, vector<string>& strs);
	int getEPhrase(vector<int> fPhrase, PhraseSnippet& phraseSnippet, PhraseSnippetPosition& phraseSnippetPosition);
	void reCalculation();
	double getFutureCost(int from, int to);
	void printTO(string fPhrase, PhraseSnippet phraseSnippet, PhraseSnippetPosition phraseSnippetPosition);
	void eraseSet(candiPhrase& forErase, int limit);
	void printFC();
	double wordsProb(vector<int> Ephrase);
	~TransOptions();
	
private:
	phraseTable f2eVocab;
	ifstream input;

	double WLM;
	//weight
	double WPROBEF;//p(e|f)
	double WLEXEF;//lex(e|f)
	double WPROBFE;//p(f|e)
	double WLEXFE;//lex(e|f)
	double WPENALTY;//penalty	
	int TTABLELIMIT;//短语个数限制 20
	int PHRASELIMIT;//短语长度限制 7
	//
	double WEIGHTW;//pharaoh的最后一项

	LanguageModel *LM;
	Vocab *ENVOCAB;
	Vocab *CNVOCAB;
	
	vecFutureCost futureCost;
};

#endif

⌨️ 快捷键说明

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