mirror of
https://github.com/moses-smt/mosesdecoder.git
synced 2024-09-11 11:25:40 +03:00
appending relative path to lm at runtime
This commit is contained in:
parent
bfc0bc57a3
commit
b46da0dc50
@ -4,9 +4,38 @@
|
||||
#include "TranslationTask.h"
|
||||
using namespace std;
|
||||
namespace Moses2 {
|
||||
//summary :: need to update the LM path at runtime with complete artifact path.
|
||||
void Moses2Wrapper::UpdateLMPath(const std::string& filePath) {
|
||||
auto file = filePath.substr(filePath.find_last_of("\\") + 1);
|
||||
auto path = filePath.substr(0, filePath.find_last_of("\\"));
|
||||
auto a = m_param->GetParam("feature");
|
||||
std::vector<std::string> feature;
|
||||
for (int i = 0; i < a->size(); i++) {
|
||||
auto abc = Tokenize(a->at(i));
|
||||
if (*abc.begin() == "KENLM") {
|
||||
string s = "";
|
||||
for (int k = 0; k < abc.size(); k++) {
|
||||
if (abc.at(k).find("path=") != string::npos) {
|
||||
auto lm = abc.at(k).substr(abc.at(k).find_last_of("=") + 1);
|
||||
s = s + "path=" + path + "\\" + lm + " ";
|
||||
}
|
||||
else {
|
||||
s = s + abc.at(k) + " ";
|
||||
}
|
||||
}
|
||||
feature.push_back(s.erase(s.find_last_not_of(" \n\r\t") + 1));
|
||||
}
|
||||
else {
|
||||
feature.push_back(a->at(i));
|
||||
}
|
||||
}
|
||||
m_param->OverwriteParam("feature", feature);
|
||||
}
|
||||
|
||||
Moses2Wrapper::Moses2Wrapper(const std::string &filePath) {
|
||||
m_param = new Parameter();
|
||||
m_param->LoadParam(filePath);
|
||||
UpdateLMPath(filePath);
|
||||
m_system = new System(*m_param);
|
||||
}
|
||||
std::string Moses2Wrapper::Translate(const std::string &input , long id) {
|
||||
|
@ -12,7 +12,7 @@ namespace Moses2 {
|
||||
Moses2Wrapper(const std::string &filePath);
|
||||
~Moses2Wrapper();
|
||||
std::string Translate(const std::string &input, long id);
|
||||
Moses2Wrapper* getInstance(const std::string& filePath);
|
||||
void UpdateLMPath(const std::string &filePath);
|
||||
int getEngineVersion();
|
||||
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user