mirror of
https://github.com/moses-smt/mosesdecoder.git
synced 2024-09-11 19:27:11 +03:00
enriched trace
This commit is contained in:
parent
7eb5e41ea1
commit
ab4e3c63a6
@ -192,7 +192,7 @@ InputType*IOWrapper::GetInput(InputType* inputType)
|
||||
* print surface factor only for the given phrase
|
||||
*/
|
||||
void OutputSurface(std::ostream &out, const Hypothesis &edge, const std::vector<FactorType> &outputFactorOrder,
|
||||
bool reportSegmentation, bool reportAllFactors)
|
||||
char reportSegmentation, bool reportAllFactors)
|
||||
{
|
||||
CHECK(outputFactorOrder.size() > 0);
|
||||
const Phrase& phrase = edge.GetCurrTargetPhrase();
|
||||
@ -215,15 +215,24 @@ void OutputSurface(std::ostream &out, const Hypothesis &edge, const std::vector<
|
||||
}
|
||||
}
|
||||
|
||||
// trace option "-t"
|
||||
if (reportSegmentation == true && phrase.GetSize() > 0) {
|
||||
out << "|" << edge.GetCurrSourceWordsRange().GetStartPos()
|
||||
<< "-" << edge.GetCurrSourceWordsRange().GetEndPos() << "| ";
|
||||
// trace option "-t" / "-tt"
|
||||
if (reportSegmentation > 0 && phrase.GetSize() > 0) {
|
||||
const WordsRange &sourceRange = edge.GetCurrSourceWordsRange();
|
||||
const int sourceStart = sourceRange.GetStartPos();
|
||||
const int sourceEnd = sourceRange.GetEndPos();
|
||||
out << "|" << sourceStart << "-" << sourceEnd;
|
||||
// enriched "-tt"
|
||||
if (reportSegmentation == 2) {
|
||||
out << ",0, ";
|
||||
const AlignmentInfo &ai = edge.GetCurrTargetPhrase().GetAlignTerm();
|
||||
OutputAlignment(out, ai, 0, 0);
|
||||
}
|
||||
out << "| ";
|
||||
}
|
||||
}
|
||||
|
||||
void OutputBestSurface(std::ostream &out, const Hypothesis *hypo, const std::vector<FactorType> &outputFactorOrder,
|
||||
bool reportSegmentation, bool reportAllFactors)
|
||||
char reportSegmentation, bool reportAllFactors)
|
||||
{
|
||||
if (hypo != NULL) {
|
||||
// recursively retrace this best path through the lattice, starting from the end of the hypothesis sentence
|
||||
@ -303,7 +312,7 @@ void OutputAlignment(OutputCollector* collector, size_t lineNo , const TrellisPa
|
||||
}
|
||||
}
|
||||
|
||||
void OutputBestHypo(const Moses::TrellisPath &path, long /*translationId*/, bool reportSegmentation, bool reportAllFactors, std::ostream &out)
|
||||
void OutputBestHypo(const Moses::TrellisPath &path, long /*translationId*/, char reportSegmentation, bool reportAllFactors, std::ostream &out)
|
||||
{
|
||||
const std::vector<const Hypothesis *> &edges = path.GetEdges();
|
||||
|
||||
@ -323,7 +332,7 @@ void IOWrapper::Backtrack(const Hypothesis *hypo)
|
||||
}
|
||||
}
|
||||
|
||||
void OutputBestHypo(const std::vector<Word>& mbrBestHypo, long /*translationId*/, bool /*reportSegmentation*/, bool /*reportAllFactors*/, ostream& out)
|
||||
void OutputBestHypo(const std::vector<Word>& mbrBestHypo, long /*translationId*/, char /*reportSegmentation*/, bool /*reportAllFactors*/, ostream& out)
|
||||
{
|
||||
|
||||
for (size_t i = 0 ; i < mbrBestHypo.size() ; i++) {
|
||||
@ -353,7 +362,7 @@ void OutputInput(std::ostream& os, const Hypothesis* hypo)
|
||||
if (inp_phrases[i]) os << *inp_phrases[i];
|
||||
}
|
||||
|
||||
void IOWrapper::OutputBestHypo(const Hypothesis *hypo, long /*translationId*/, bool reportSegmentation, bool reportAllFactors)
|
||||
void IOWrapper::OutputBestHypo(const Hypothesis *hypo, long /*translationId*/, char reportSegmentation, bool reportAllFactors)
|
||||
{
|
||||
if (hypo != NULL) {
|
||||
VERBOSE(1,"BEST TRANSLATION: " << *hypo << endl);
|
||||
@ -380,7 +389,7 @@ void OutputNBest(std::ostream& out
|
||||
, const Moses::TrellisPathList &nBestList
|
||||
, const std::vector<Moses::FactorType>& outputFactorOrder
|
||||
, long translationId
|
||||
, bool reportSegmentation)
|
||||
, char reportSegmentation)
|
||||
{
|
||||
const StaticData &staticData = StaticData::Instance();
|
||||
bool labeledOutput = staticData.IsLabeledNBestList();
|
||||
|
@ -104,7 +104,7 @@ public:
|
||||
|
||||
Moses::InputType* GetInput(Moses::InputType *inputType);
|
||||
|
||||
void OutputBestHypo(const Moses::Hypothesis *hypo, long translationId, bool reportSegmentation, bool reportAllFactors);
|
||||
void OutputBestHypo(const Moses::Hypothesis *hypo, long translationId, char reportSegmentation, bool reportAllFactors);
|
||||
void OutputLatticeMBRNBestList(const std::vector<LatticeMBRSolution>& solutions,long translationId);
|
||||
void Backtrack(const Moses::Hypothesis *hypo);
|
||||
|
||||
@ -131,21 +131,22 @@ public:
|
||||
|
||||
IOWrapper *GetIOWrapper(const Moses::StaticData &staticData);
|
||||
bool ReadInput(IOWrapper &ioWrapper, Moses::InputTypeEnum inputType, Moses::InputType*& source);
|
||||
void OutputBestSurface(std::ostream &out, const Moses::Hypothesis *hypo, const std::vector<Moses::FactorType> &outputFactorOrder, bool reportSegmentation, bool reportAllFactors);
|
||||
void OutputBestSurface(std::ostream &out, const Moses::Hypothesis *hypo, const std::vector<Moses::FactorType> &outputFactorOrder, char reportSegmentation, bool reportAllFactors);
|
||||
void OutputLatticeMBRNBest(std::ostream& out, const std::vector<LatticeMBRSolution>& solutions,long translationId);
|
||||
void OutputBestHypo(const std::vector<Moses::Word>& mbrBestHypo, long /*translationId*/,
|
||||
bool reportSegmentation, bool reportAllFactors, std::ostream& out);
|
||||
void OutputBestHypo(const Moses::TrellisPath &path, long /*translationId*/,bool reportSegmentation, bool reportAllFactors, std::ostream &out);
|
||||
char reportSegmentation, bool reportAllFactors, std::ostream& out);
|
||||
void OutputBestHypo(const Moses::TrellisPath &path, long /*translationId*/,char reportSegmentation, bool reportAllFactors, std::ostream &out);
|
||||
void OutputInput(std::ostream& os, const Moses::Hypothesis* hypo);
|
||||
void OutputAlignment(Moses::OutputCollector* collector, size_t lineNo, const Moses::Hypothesis *hypo);
|
||||
void OutputAlignment(Moses::OutputCollector* collector, size_t lineNo, const Moses::TrellisPath &path);
|
||||
void OutputAlignment(std::ostream &out, const Moses::Hypothesis *hypo);
|
||||
void OutputAlignment(std::ostream &out, const Moses::AlignmentInfo &ai, size_t sourceOffset, size_t targetOffset);
|
||||
|
||||
void OutputNBest(std::ostream& out
|
||||
, const Moses::TrellisPathList &nBestList
|
||||
, const std::vector<Moses::FactorType>& outputFactorOrder
|
||||
, long translationId
|
||||
, bool reportSegmentation);
|
||||
, char reportSegmentation);
|
||||
void OutputAllFeatureScores(const Moses::ScoreComponentCollection &features
|
||||
, std::ostream &out);
|
||||
void OutputFeatureScores( std::ostream& out
|
||||
|
@ -163,6 +163,7 @@ Parameter::Parameter()
|
||||
AddParam("alignment-output-file", "print output word alignments into given file");
|
||||
AddParam("sort-word-alignment", "Sort word alignments for more consistent display. 0=no sort (default), 1=target order");
|
||||
AddParam("report-segmentation", "t", "report phrase segmentation in the output");
|
||||
AddParam("report-segmentation-enriched", "tt", "report phrase segmentation in the output with additional information");
|
||||
AddParam("link-param-count", "DEPRECATED. DO NOT USE. Number of parameters on word links when using confusion networks or lattices (default = 1)");
|
||||
|
||||
AddParam("weight-slm", "slm", "DEPRECATED. DO NOT USE. weight(s) for syntactic language model");
|
||||
|
@ -303,6 +303,7 @@ bool StaticData::LoadData(Parameter *parameter)
|
||||
|
||||
// printing source phrase spans
|
||||
SetBooleanParameter( &m_reportSegmentation, "report-segmentation", false );
|
||||
SetBooleanParameter( &m_reportSegmentationEnriched, "report-segmentation-enriched", false );
|
||||
|
||||
// print all factors of output translations
|
||||
SetBooleanParameter( &m_reportAllFactors, "report-all-factors", false );
|
||||
|
@ -132,6 +132,7 @@ protected:
|
||||
const InputFeature *m_inputFeature;
|
||||
|
||||
bool m_reportSegmentation;
|
||||
bool m_reportSegmentationEnriched;
|
||||
bool m_reportAllFactors;
|
||||
bool m_reportAllFactorsNBest;
|
||||
std::string m_detailedTranslationReportingFilePath;
|
||||
@ -351,8 +352,10 @@ public:
|
||||
void SetVerboseLevel(int x) const {
|
||||
m_verboseLevel = x;
|
||||
}
|
||||
bool GetReportSegmentation() const {
|
||||
return m_reportSegmentation;
|
||||
char GetReportSegmentation() const {
|
||||
if (m_reportSegmentation) return 1;
|
||||
if (m_reportSegmentationEnriched) return 2;
|
||||
return 0;
|
||||
}
|
||||
bool GetReportAllFactors() const {
|
||||
return m_reportAllFactors;
|
||||
|
Loading…
Reference in New Issue
Block a user