36std::shared_ptr<MediaProcessUnit> ViterbiPosTaggerFactory::create(
55 LWARN <<
"No default microcateg category ! use category PONCTU_FORTE";
59 std::string trigramsFile;
60 std::string bigramsFile;
61 string resourcesPath=MediaticData::single().getResourcesPath();
64 trigramsFile = Common::Misc::findFileInPaths(resourcesPath.c_str(), unitConfiguration.
getParamsValueAtKey(
"trigramFile").c_str()).toUtf8().constData();
65 bigramsFile=Common::Misc::findFileInPaths(resourcesPath.c_str(), unitConfiguration.
getParamsValueAtKey(
"bigramFile").c_str()).toUtf8().constData();
69 LERROR <<
"No param 'trigramFile' or 'bigramFile' in ViterbiPosTagger group for language " << (int)language;
80 LERROR <<
"No param 'costFuntion' in ViterbiPosTagger group for language " << (int)language;
84 std::shared_ptr<MediaProcessUnit> posTagger;
86 LINFO <<
"ViterbiPosTagger cost function is" << costFunction;
87 if (costFunction ==
"IntegerCost")
90 uint64_t trigramCost=0;
91 uint64_t bigramCost=1;
92 uint64_t unigramCost=3;
101 LWARN <<
"can't read all parameters for IntegerCost function ! use defaults";
104 LINFO <<
"ViterbiPosTagger use ViterbiIntegerCost with trigramCost = " << trigramCost <<
"; bigramCost = " << bigramCost <<
"; unigramCost = " << unigramCost;
108 posTagger = std::make_shared<ViterbiPosTagger< uint64_t, ViterbiCostFunction< uint64_t, SimpleIntegerCostFactory<uint64_t> > >>(costFunction);
111 else if (costFunction ==
"FrequencyCost")
114 posTagger = std::make_shared<ViterbiPosTagger<FrequencyCost,ViterbiCostFunction<FrequencyCost,FrequencyCostFactory> >>(costFunction);
118 LERROR <<
"unknown costFuntion : " << costFunction <<
" ! ";
122 posTagger->init(unitConfiguration,manager);
#define VITERBIPOSTAGGER_CLASSID