|
|
|
#include "ug_mm_ttrack.h" |
|
#include "ug_mm_tsa.h" |
|
#include "tpt_tokenindex.h" |
|
#include "ug_corpus_token.h" |
|
#include <string> |
|
#include <vector> |
|
#include <cassert> |
|
#include <boost/unordered_map.hpp> |
|
#include <boost/foreach.hpp> |
|
#include <iomanip> |
|
#include "ug_typedefs.h" |
|
#include "tpt_pickler.h" |
|
#include "moses/TranslationModel/UG/generic/sorting/VectorIndexSorter.h" |
|
#include "moses/TranslationModel/UG/generic/sampling/Sampling.h" |
|
#include "moses/TranslationModel/UG/generic/file_io/ug_stream.h" |
|
#include <algorithm> |
|
#include "moses/TranslationModel/UG/generic/program_options/ug_get_options.h" |
|
|
|
using namespace std; |
|
using namespace ugdiss; |
|
using namespace Moses; |
|
typedef sapt::L2R_Token<sapt::SimpleWordId> Token; |
|
typedef sapt::mmTSA<Token>::tree_iterator iter; |
|
typedef boost::unordered_map<pair<size_t,size_t>,size_t> phrase_counter_t; |
|
|
|
#define CACHING_THRESHOLD 1000 |
|
|
|
sapt::mmTtrack<Token> T; |
|
sapt::TokenIndex V; |
|
sapt::mmTSA<Token> I; |
|
|
|
void interpret_args(int ac, char* av[]); |
|
string bname; |
|
bool echo; |
|
int main(int argc, char* argv[]) |
|
{ |
|
interpret_args(argc,argv); |
|
|
|
T.open(bname+".mct"); |
|
V.open(bname+".tdx"); V.iniReverseIndex(); |
|
I.open(bname+".sfa",&T); |
|
string line; |
|
while (getline(cin,line)) |
|
{ |
|
vector<id_type> phr; |
|
V.fillIdSeq(line,phr); |
|
TSA<Token>::tree_iterator m(&I); |
|
size_t i = 0; |
|
while (i < phr.size() && m.extend(phr[i])) ++i; |
|
if (echo) cout << line << ": "; |
|
if (i < phr.size()) cout << 0 << endl; |
|
else cout << m.rawCnt() << endl; |
|
} |
|
exit(0); |
|
} |
|
|
|
void |
|
interpret_args(int ac, char* av[]) |
|
{ |
|
namespace po=boost::program_options; |
|
po::variables_map vm; |
|
po::options_description o("Options"); |
|
po::options_description h("Hidden Options"); |
|
po::positional_options_description a; |
|
|
|
o.add_options() |
|
("help,h", "print this message") |
|
("echo,e", po::bool_switch(&echo), "repeat lookup phrases") |
|
; |
|
|
|
h.add_options() |
|
("bname", po::value<string>(&bname), "base name") |
|
; |
|
a.add("bname",1); |
|
get_options(ac,av,h.add(o),a,vm); |
|
} |
|
|