📄 sentpair.cpp
字号:
/** SentPair.cpp - Chinese sentence and its English candidate translations** Copyright (C) 2006 by Zhongjun He <zjhe@ict.ac.cn> Multilingual Interaction Technology and Evaluation Laboratory, ICT, CAS* Begin : 04/13/2006* Last Change : 04/13/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.*/#include "SentPair.h"/************************************************************************/
/* construction function */
/************************************************************************/
SentPair::SentPair(const string &s)
{
istrstream buffer(s.c_str());
string temp;
while (buffer>>temp)
{
ChineseWord.push_back(temp);
}
}
/************************************************************************/
/* print translation options */
/************************************************************************/
void SentPair::ShowTransOption(ostream &out)
{
out << "<TransOption num=\"" << transoption.size() << "\">" << endl;
map<pair<int,int>,TransMap>::iterator it;
for (it=transoption.begin(); it!=transoption.end(); it++)
{
int beg = (*it).first.first, end = (*it).first.second;
string s;
for (int i=beg; i<=end; i++)
s += ChineseWord[i];
out << "<src phrase=\"" << s << "\" beg=\"" << beg << "\" end=\"" << end << "\">" << endl;
TransMap::iterator it2;
for (it2=(*it).second.begin(); it2!=(*it).second.end(); it2++)
{
out << "<trans lex=\"" << (*it2).first << "\"> ";
for (int j=1; j<(int)(*it2).second.size(); j++)
{
if (j == (*it2).second.size()-1)
out << (*it2).second[j] << " ";
else
out << (*it2).second[j] << " | ";
}
out << "</trans>" << endl;
}
out << "</src>" << endl;
}
out << "</TransOption>" << endl;
}
/************************************************************************/
/*Print Future Cost */
/************************************************************************/
void SentPair::ShowFutureCost(ostream &out)
{
out << "\n<FutureCost>" << endl;
map<pair<int,int>,double >::iterator it;
for (it=FutureCost.begin(); it!=FutureCost.end(); it++)
{
out << "<cost beg=\"" << (*it).first.first << "\" end=\"" << (*it).first.second << "\"> ";
out << (*it).second << "</cost>" << endl;
}
out << "</FutureCost>" << endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -