docs: public String getParameterDescription(SufficientStatistics parameters, int numFeatures) {
      ListSufficientStatistics parameterList = parameters.coerceToList();
  
      StringBuilder sb = new StringBuilder();
      sb.append("lexicon:\n");
      List<SufficientStatistics> lexiconParameterList = parameterList
          .getStatisticByName(LEXICON_PARAMETERS).coerceToList().getStatistics();
      for (int i = 0; i < lexiconFamilies.size(); i++) {
        sb.append(lexiconFamilies.get(i).getParameterDescription(
            lexiconParameterList.get(i), numFeatures));
      }
  
      sb.append("lexicon scorers:\n");
      List<SufficientStatistics> lexiconScorerParameterList = parameterList
          .getStatisticByName(LEXICON_SCORER_PARAMETERS).coerceToList().getStatistics();
      for (int i = 0; i < lexiconScorerFamilies.size(); i++) {
        sb.append(lexiconScorerFamilies.get(i).getParameterDescription(
            lexiconScorerParameterList.get(i), numFeatures));
      }
      
      if (wordSkipFamily != null) {
        sb.append("word skip:\n");
        sb.append(wordSkipFamily.getParameterDescription(
            parameterList.getStatisticByName(WORD_SKIP_PARAMETERS), numFeatures));
      }
  
      sb.append("syntax:\n");
      sb.append(syntaxFamily.getParameterDescription(
          parameterList.getStatisticByName(SYNTAX_PARAMETERS), numFeatures));
      sb.append(unaryRuleFamily.getParameterDescription(
          parameterList.getStatisticByName(UNARY_RULE_PARAMETERS), numFeatures));
      sb.append(headedBinaryRuleFamily.getParameterDescription(
          parameterList.getStatisticByName(HEADED_SYNTAX_PARAMETERS), numFeatures));
  
      sb.append("root:\n");
      sb.append(rootSyntaxFamily.getParameterDescription(
          parameterList.getStatisticByName(ROOT_SYNTAX_PARAMETERS), numFeatures));
      sb.append(headedRootSyntaxFamily.getParameterDescription(
          parameterList.getStatisticByName(HEADED_ROOT_SYNTAX_PARAMETERS), numFeatures));
  
      sb.append("dependencies:\n");
      sb.append(dependencyFamily.getParameterDescription(
          parameterList.getStatisticByName(DEPENDENCY_PARAMETERS), numFeatures));
  
      sb.append("dependency distances:\n");
      sb.append(wordDistanceFamily.getParameterDescription(
          parameterList.getStatisticByName(WORD_DISTANCE_PARAMETERS), numFeatures));
      sb.append(puncDistanceFamily.getParameterDescription(
          parameterList.getStatisticByName(PUNC_DISTANCE_PARAMETERS), numFeatures));
      sb.append(verbDistanceFamily.getParameterDescription(
          parameterList.getStatisticByName(VERB_DISTANCE_PARAMETERS), numFeatures));
  
      return sb.toString();
    }