Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/moses-smt/mosesdecoder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'phrase-extract/InternalStructFeature.cpp')
-rw-r--r--phrase-extract/InternalStructFeature.cpp29
1 files changed, 16 insertions, 13 deletions
diff --git a/phrase-extract/InternalStructFeature.cpp b/phrase-extract/InternalStructFeature.cpp
index 3757b0e43..a2369a80c 100644
--- a/phrase-extract/InternalStructFeature.cpp
+++ b/phrase-extract/InternalStructFeature.cpp
@@ -8,7 +8,8 @@ namespace MosesTraining
void InternalStructFeature::add(const ScoreFeatureContext& context,
std::vector<float>& denseValues,
- std::map<std::string,float>& sparseValues) const {
+ std::map<std::string,float>& sparseValues) const
+{
const std::map<std::string,float> *allTrees = context.phrasePair.GetProperty("Tree"); // our would we rather want to take the most frequent one only?
for ( std::map<std::string,float>::const_iterator iter=allTrees->begin();
iter!=allTrees->end(); ++iter ) {
@@ -19,24 +20,26 @@ void InternalStructFeature::add(const ScoreFeatureContext& context,
void InternalStructFeatureDense::add(const std::string *treeFragment,
float count,
std::vector<float>& denseValues,
- std::map<std::string,float>& sparseValues) const {
- //cout<<"Dense: "<<*internalStruct<<endl;
- size_t start=0;
- int countNP=0;
- while((start = treeFragment->find("NP", start)) != string::npos) {
- countNP += count;
- start+=2; //length of "NP"
- }
- //should add e^countNP so in the decoder I get log(e^countNP)=countNP -> but is log or ln?
- //should use this but don't know what it does? -> maybeLog( (bitmap == i) ? 2.718 : 1 )
- denseValues.push_back(exp(countNP));
+ std::map<std::string,float>& sparseValues) const
+{
+ //cout<<"Dense: "<<*internalStruct<<endl;
+ size_t start=0;
+ int countNP=0;
+ while((start = treeFragment->find("NP", start)) != string::npos) {
+ countNP += count;
+ start+=2; //length of "NP"
+ }
+ //should add e^countNP so in the decoder I get log(e^countNP)=countNP -> but is log or ln?
+ //should use this but don't know what it does? -> maybeLog( (bitmap == i) ? 2.718 : 1 )
+ denseValues.push_back(exp(countNP));
}
void InternalStructFeatureSparse::add(const std::string *treeFragment,
float count,
std::vector<float>& denseValues,
- std::map<std::string,float>& sparseValues) const {
+ std::map<std::string,float>& sparseValues) const
+{
//cout<<"Sparse: "<<*internalStruct<<endl;
if(treeFragment->find("VBZ")!=std::string::npos)
sparseValues["NTVBZ"] += count;