docs: def _findKsubcatFeatures( sentence, kSubCatRelsLexicon, addFeaturesToK = True ):
      ''' Attempts to detect all possible K subcategorization relations from
          given sentence, using the heuristic methods _detectKsubcatRelType() 
          and _detectPossibleKsubcatRelsFromSent();
          
          Returns a dictionary where the keys correspond to token indices,
          and values are grammatical features related to K subcat relations.
          Not all tokens in the sentence are indexed, but only tokens relevant
          to K subcat relations;
          
          If addFeaturesToK == True, grammatical features are added to K-s,
          otherwise, grammatical features are added to K's child tokens.
      '''
      features = dict()
      # Add features to the K (adposition)
      if addFeaturesToK:
          for i in range(len(sentence)):
              estnltkWord = sentence[i]
              # Pick the first analysis
              firstAnalysis = estnltkWord[ANALYSIS][0]
              if firstAnalysis[POSTAG] == 'K':
                  (grammCats, kChild) = _detectKsubcatRelType( sentence, i, kSubCatRelsLexicon )
                  features[i] = grammCats
      # Add features to the noun governed by K
      else:
          relationIndex, relationType = \
              _detectPossibleKsubcatRelsFromSent( sentence, kSubCatRelsLexicon, reverseMapping = True )
          for i in relationIndex:
              features[i] = relationType[i]
      return features