Hi, I've just pushed a commit to Moses that brings about a slight change wrt. the way the chart decoder deals with feature scores.
The chart decoder now stores deltas of individual feature scores instead of constantly summing everything up. This behaviour is similar to what we have been doing in the phrase-based decoder since a long time already. The main purpose of this modification is to improve efficiency with sparse features a bit. https://github.com/moses-smt/mosesdecoder/commit/465b47566424efb707bdc063d0bff52b0650eb0a The modification may however break existing feature function implementations. As a rule of thumb, any feature function that calls ScoreComponentCollection::Assign() in EvaluateWhenApplied(const ChartHypothesis&, ...) is affected and needs to be adapted to the new behaviour. Basically, the ScoreComponentCollection variable passed to EvaluateWhenApplied() now accumulates the delta score of the current rule application only, whereas it was previously accumulating the overall score of the partial hypothesis. I.e., calling Assign() in EvaluateWhenApplied() now does not replace the overall score any more, but has the same effect as calling PlusEquals(). If you are the author of a feature function that implements EvaluateWhenApplied(const ChartHypothesis&, ...) and calls Assign() within that method, or if you are using such a feature function in your experiments, please update your implementation. The feature function should call PlusEquals() instead and add a score delta. I've already updated moses/LM/Ken.cpp and moses/LM/Implementation.cpp and Rico has updated moses/LM/BilingualLM.cpp . In the Moses master branch I found one other feature function that requires modifications: moses/LM/DALMWrapper.cpp This feature is currently not covered by a regression test, and I don't have any setup with this feature myself. I would not be able to test any modifications in that code and therefore would like to request that the authors apply the necessary updates themselves. Please let me know in case you notice any issues or if you need any further information or advice regarding this modification. Cheers, Matthias -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. _______________________________________________ Moses-support mailing list Moses-support@mit.edu http://mailman.mit.edu/mailman/listinfo/moses-support