public MLEDependencyGrammar(ITagProjection tagProjection, ITreebankLangParserParams tlpParams, bool directional, bool useDistance, bool useCoarseDistance, Options op, IIndex <string> wordIndex, IIndex <string> tagIndex)
     : base(tlpParams.TreebankLanguagePack(), tagProjection, directional, useDistance, useCoarseDistance, op, wordIndex, tagIndex)
 {
     // reduced tag space
     //  public double distanceDecay = 0.0;
     // extra smoothing hyperparameters for tag projection backoff.  Only used if useSmoothTagProjection is true.
     // back off Bayesian m-estimate of aTW given aT to aPTW given aPT
     // back off Bayesian m-estimate of aTW_hTd to aPTW_hPTd (?? guessed, not tuned)
     // back off Bayesian m-estimate of aT_hTd to aPT_hPTd (?? guessed, not tuned)
     // back off word prediction from tag to projected tag (only used if useUnigramWordSmoothing is true)
     useSmoothTagProjection  = op.useSmoothTagProjection;
     useUnigramWordSmoothing = op.useUnigramWordSmoothing;
     argCounter  = new ClassicCounter <IntDependency>();
     stopCounter = new ClassicCounter <IntDependency>();
     double[] smoothParams = tlpParams.MLEDependencyGrammarSmoothingParams();
     smooth_aT_hTWd  = smoothParams[0];
     smooth_aTW_hTWd = smoothParams[1];
     smooth_stop     = smoothParams[2];
     interp          = smoothParams[3];
     // cdm added Jan 2007 to play with dep grammar smoothing.  Integrate this better if we keep it!
     smoothTP = new BasicCategoryTagProjection(tlpParams.TreebankLanguagePack());
 }