docs: private void createDictionaries(String file, String conllFormat) throws IOException
      {
          long start = System.currentTimeMillis();
          logger.debug("Creating dictionariesSet ... ");
  
          dictionariesSet.setCounters();
  
          DependencyReader reader = DependencyReader.createDependencyReader(conllFormat);
  
          reader.startReading(file);
          DependencyInstance dependencyInstance = reader.nextInstance();
  
          while (dependencyInstance != null) {
              //This loop sets values in dictionariesSet for later use
              dependencyInstance.setInstIds(dictionariesSet, coarseMap, conjWord);
  
              dependencyInstance = reader.nextInstance();
          }
          reader.close();
  
          dictionariesSet.closeCounters();
  
          synFactory.setTokenStart(dictionariesSet.lookupIndex(POS, "#TOKEN_START#"));
          synFactory.setTokenEnd(dictionariesSet.lookupIndex(POS, "#TOKEN_END#"));
          synFactory.setTokenMid(dictionariesSet.lookupIndex(POS, "#TOKEN_MID#"));
  
          dictionariesSet.stopGrowth(DEP_LABEL);
          dictionariesSet.stopGrowth(POS);
          dictionariesSet.stopGrowth(WORD);
  
          synFactory.setWordNumBits(Utils.log2((long) dictionariesSet.getDictionarySize(WORD) + 1));
          synFactory.setTagNumBits(Utils.log2((long) dictionariesSet.getDictionarySize(POS) + 1));
          synFactory.setDepNumBits(Utils.log2((long) dictionariesSet.getDictionarySize(DEP_LABEL) + 1));
          synFactory.setFlagBits(2*synFactory.getDepNumBits() + 4);
  
          types = new String[dictionariesSet.getDictionarySize(DEP_LABEL)];
          Dictionary labelDict = dictionariesSet.getDictionary(DEP_LABEL);
          Object[] keys = labelDict.toArray();
          for (Object key : keys) {
              int id = labelDict.lookupIndex(key);
              types[id - 1] = (String) key;
          }
  
          if(logger.isDebugEnabled()) {
              logger.debug(String.format("%d %d %n", NUM_WORD_FEAT_BITS, NUM_ARC_FEAT_BITS));
              logger.debug(String.format("Lexical items: %d (%d bits)%n",
                      dictionariesSet.getDictionarySize(WORD), synFactory.getWordNumBits()));
              logger.debug(String.format("Tag/label items: %d (%d bits)  %d (%d bits)%n",
                      dictionariesSet.getDictionarySize(POS), synFactory.getTagNumBits(),
                      dictionariesSet.getDictionarySize(DEP_LABEL), synFactory.getDepNumBits()));
              logger.debug(String.format("Flag Bits: %d%n", synFactory.getFlagBits()));
              logger.debug(String.format("Creation took [%d ms]%n", System.currentTimeMillis() - start));
          }
  
      }