| #include <cassert> |
| #include <iostream> |
| #include "Ngram.h" |
|
|
| using namespace std; |
| Vocab vocab; |
| Ngram* ngram = NULL; |
|
|
| extern "C" { |
|
|
| void srilm_init(const char* fname, int order) { |
| cerr << "Loading " << order << "-gram LM: " << fname << endl; |
| File file(fname, "r", 0); |
| assert(file); |
| ngram = new Ngram(vocab, order); |
| ngram->read(file, false); |
| cerr << "Done\n"; |
| } |
|
|
| int srilm_getvoc(const char* word) { |
| return vocab.getIndex((VocabString)word); |
| } |
|
|
| float srilm_wordprob(int w, int* context) { |
| return (float)ngram->wordProb(w, (VocabIndex*)context); |
| } |
|
|
| } |
|
|
|
|