00001 #pragma once
00002
00003
00004
00005 #include "StatelessFeatureFunction.h"
00006
00007 namespace Moses
00008 {
00009
00010 class Range;
00011
00012
00014 class UnknownWordPenaltyProducer : public StatelessFeatureFunction
00015 {
00016 protected:
00017 static UnknownWordPenaltyProducer *s_instance;
00018
00019 public:
00020 static const UnknownWordPenaltyProducer& Instance() {
00021 return *s_instance;
00022 }
00023 static UnknownWordPenaltyProducer& InstanceNonConst() {
00024 return *s_instance;
00025 }
00026
00027 UnknownWordPenaltyProducer(const std::string &line);
00028
00029 bool IsUseable(const FactorMask &mask) const {
00030 return true;
00031 }
00032 std::vector<float> DefaultWeights() const;
00033
00034 void EvaluateWhenApplied(const Hypothesis& hypo,
00035 ScoreComponentCollection* accumulator) const {
00036 }
00037 void EvaluateWhenApplied(const ChartHypothesis &hypo,
00038 ScoreComponentCollection* accumulator) const {
00039 }
00040 void EvaluateWhenApplied(const Syntax::SHyperedge &hyperedge,
00041 ScoreComponentCollection* accumulator) const {
00042 }
00043 void EvaluateWithSourceContext(const InputType &input
00044 , const InputPath &inputPath
00045 , const TargetPhrase &targetPhrase
00046 , const StackVec *stackVec
00047 , ScoreComponentCollection &scoreBreakdown
00048 , ScoreComponentCollection *estimatedScores = NULL) const {
00049 }
00050
00051 void EvaluateTranslationOptionListWithSourceContext(const InputType &input
00052 , const TranslationOptionList &translationOptionList) const {
00053 }
00054
00055 void EvaluateInIsolation(const Phrase &source
00056 , const TargetPhrase &targetPhrase
00057 , ScoreComponentCollection &scoreBreakdown
00058 , ScoreComponentCollection &estimatedScores) const {
00059 }
00060
00061 };
00062
00063 }
00064