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

📄 hypotheses.h

📁 解码器是基于短语的统计机器翻译系统的核心模块
💻 H
字号:
/** Hypotheses.h  - English sentence is created by hypotheses, which stores*                 translation informations such as feature functions, Chinese words covered so far, etc.** Copyright (C) 2006 by Zhongjun He <zjhe@ict.ac.cn> Multilingual Interaction Technology and Evaluation Laboratory, ICT, CAS* Begin       : 04/17/2006* Last Change : 04/17/2006** This program is free software; you can redistribute it and/or* modify it under the terms of the GNU Lesser General Public* License as published by the Free Software Foundation; either* version 2.1 of the License, or (at your option) any later version.** This program is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the* GNU General Public License for more details.** You should have received a copy of the GNU Lesser General Public* License along with this program; if not, write to the Free Software* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.*/#ifndef HYPOTHESES_H
#define HYPOTHESES_H

#include <vector>
#include <string>
#include <strstream>
#include <iterator>
#include <map>

#include "Feature.h"
using namespace std;

class Hypotheses;

/************************************************************************/
/* Class AddArc  for Hypotheses combination                             */
/************************************************************************/
class AddArc
{
public:
	AddArc();
	AddArc(const int p1, const int p2, const Feature &f1, const string &e1);
	AddArc(const Hypotheses &hp);

	AddArc& operator=(const AddArc &right);
	bool operator<(const AddArc &right)const;
	bool operator>(const AddArc &right)const;
	bool operator==(const AddArc &right)const;

	void Show(ostream &out);

	int PreStack,PreStackNum;
	Feature feat;
	string english;
};

/************************************************************************/
/* Class Hypotheses                                                     */
/************************************************************************/
class Hypotheses
{
public:

	//construction function
	Hypotheses();
	Hypotheses(int n);
	Hypotheses(int Pstack, int Pnum, const pair<int,int> Covered, const string &PhraseTrans, 
		       const Feature &ft, const Hypotheses &Father,int lmngram=3);


	void GetFutureCost(map<pair<int,int>,double> &FutureCostTable);

	void ComputeFeature(const Feature &FatherFeat, const vector<double> &lamda);

	void ShowHP(ostream &out);

	bool operator==(const Hypotheses &right)const;
	bool operator<(const Hypotheses &right)const;
	bool operator>(const Hypotheses &right)const;
	Hypotheses& operator=(const Hypotheses &right);

	int PreStack,PreStackNum;//point to father

	vector<int> CoveredWord;//Chinese words covered so far
	int CoveredNumber;//Covered words number
	
	int EndPosOfLastPhrase;//End position of the previous covered Chinese phrase, for computing distortion
	pair<int,int> CurBegEnd;//Start postion and end position of current covered Chinese phrase

	string LastEnglishWord;//Previous  English words, for computing LM
	string CurEnglishTranslation;//English translation

	Feature feat;//feature function
	double FutureCost;//future cost
	double EstimateProb;//total probability

	vector<AddArc> AdditionalArcs;

};

#endif

⌨️ 快捷键说明

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