00001 /********************************* 00002 tercpp: an open-source Translation Edit Rate (TER) scorer tool for Machine Translation. 00003 00004 Copyright 2010-2013, Christophe Servan, LIUM, University of Le Mans, France 00005 Contact: christophe.servan@lium.univ-lemans.fr 00006 00007 The tercpp tool and library are free software: you can redistribute it and/or modify it 00008 under the terms of the GNU Lesser General Public License as published by 00009 the Free Software Foundation, either version 2.1 of the licence, or 00010 (at your option) any later version. 00011 00012 This program and library are distributed in the hope that it will be useful, but WITHOUT 00013 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00014 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00015 for more details. 00016 00017 You should have received a copy of the GNU Lesser General Public License 00018 along with this library; if not, write to the Free Software Foundation, 00019 Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 **********************************/ 00021 #ifndef __TERCPPALIGNMENTSTRUCT_H__ 00022 #define __TERCPPALIGNMENTSTRUCT_H__ 00023 00024 00025 #include <vector> 00026 #include <cstdio> 00027 #include <string> 00028 #include <sstream> 00029 #include "tools.h" 00030 00031 00032 using namespace std; 00033 using namespace TERCPPNS_Tools; 00034 00035 namespace TERCPPNS_TERCpp 00036 { 00037 class alignmentStruct 00038 { 00039 private: 00040 public: 00041 00042 // alignmentStruct(); 00043 // alignmentStruct (int _start, int _end, int _moveto, int _newloc); 00044 // alignmentStruct (int _start, int _end, int _moveto, int _newloc, vector<string> _shifted); 00045 // string toString(); 00046 // int distance() ; 00047 // bool leftShift(); 00048 // int size(); 00049 // alignmentStruct operator=(alignmentStruct t); 00050 // string vectorToString(vector<string> vec); 00051 00052 // int start; 00053 // int end; 00054 // int moveto; 00055 // int newloc; 00056 vector<string> nwords; // The words we shifted 00057 vector<char> alignment ; // for pra_more output 00058 vector<vecInt> aftershift; // for pra_more output 00059 // This is used to store the cost of a shift, so we don't have to 00060 // calculate it multiple times. 00061 double cost; 00062 string toString(); 00063 void set(alignmentStruct l_alignmentStruct); 00064 }; 00065 00066 } 00067 #endif