docs: @Deprecated
      public static Word2Vec readWord2Vec(File file) throws IOException {
          File tmpFileSyn0 = DL4JFileUtils.createTempFile("word2vec", "0");
          File tmpFileSyn1 = DL4JFileUtils.createTempFile("word2vec", "1");
          File tmpFileC = DL4JFileUtils.createTempFile("word2vec", "c");
          File tmpFileH = DL4JFileUtils.createTempFile("word2vec", "h");
          File tmpFileF = DL4JFileUtils.createTempFile("word2vec", "f");
  
          tmpFileSyn0.deleteOnExit();
          tmpFileSyn1.deleteOnExit();
          tmpFileH.deleteOnExit();
          tmpFileC.deleteOnExit();
          tmpFileF.deleteOnExit();
  
          int originalFreq = Nd4j.getMemoryManager().getOccasionalGcFrequency();
          boolean originalPeriodic = Nd4j.getMemoryManager().isPeriodicGcActive();
  
          if (originalPeriodic)
              Nd4j.getMemoryManager().togglePeriodicGc(false);
  
          Nd4j.getMemoryManager().setOccasionalGcFrequency(50000);
  
          try {
  
  
              ZipFile zipFile = new ZipFile(file);
              ZipEntry syn0 = zipFile.getEntry("syn0.txt");
              InputStream stream = zipFile.getInputStream(syn0);
  
              FileUtils.copyInputStreamToFile(stream, tmpFileSyn0);
  
              ZipEntry syn1 = zipFile.getEntry("syn1.txt");
              stream = zipFile.getInputStream(syn1);
  
              FileUtils.copyInputStreamToFile(stream, tmpFileSyn1);
  
              ZipEntry codes = zipFile.getEntry("codes.txt");
              stream = zipFile.getInputStream(codes);
  
              FileUtils.copyInputStreamToFile(stream, tmpFileC);
  
              ZipEntry huffman = zipFile.getEntry("huffman.txt");
              stream = zipFile.getInputStream(huffman);
  
              FileUtils.copyInputStreamToFile(stream, tmpFileH);
  
              ZipEntry config = zipFile.getEntry("config.json");
              stream = zipFile.getInputStream(config);
              StringBuilder builder = new StringBuilder();
              try (BufferedReader reader = new BufferedReader(new InputStreamReader(stream))) {
                  String line;
                  while ((line = reader.readLine()) != null) {
                      builder.append(line);
                  }
              }
  
              VectorsConfiguration configuration = VectorsConfiguration.fromJson(builder.toString().trim());
  
              // we read first 4 files as w2v model
              Word2Vec w2v = readWord2VecFromText(tmpFileSyn0, tmpFileSyn1, tmpFileC, tmpFileH, configuration);
  
              // we read frequencies from frequencies.txt, however it's possible that we might not have this file
              ZipEntry frequencies = zipFile.getEntry("frequencies.txt");
              if (frequencies != null) {
                  stream = zipFile.getInputStream(frequencies);
                  try (BufferedReader reader = new BufferedReader(new InputStreamReader(stream))) {
                      String line;
                      while ((line = reader.readLine()) != null) {
                          String[] split = line.split(" ");
                          VocabWord word = w2v.getVocab().tokenFor(decodeB64(split[0]));
                          word.setElementFrequency((long) Double.parseDouble(split[1]));
                          word.setSequencesCount((long) Double.parseDouble(split[2]));
                      }
                  }
              }
  
  
              ZipEntry zsyn1Neg = zipFile.getEntry("syn1Neg.txt");
              if (zsyn1Neg != null) {
                  stream = zipFile.getInputStream(zsyn1Neg);
  
                  try (InputStreamReader isr = new InputStreamReader(stream);
                       BufferedReader reader = new BufferedReader(isr)) {
                      String line = null;
                      List<INDArray> rows = new ArrayList<>();
                      while ((line = reader.readLine()) != null) {
                          String[] split = line.split(" ");
                          double array[] = new double[split.length];
                          for (int i = 0; i < split.length; i++) {
                              array[i] = Double.parseDouble(split[i]);
                          }
                          rows.add(Nd4j.create(array, new long[]{array.length},
                                  ((InMemoryLookupTable) w2v.getLookupTable()).getSyn0().dataType()));
                      }
  
                      // it's possible to have full model without syn1Neg
                      if (!rows.isEmpty()) {
                          INDArray syn1Neg = Nd4j.vstack(rows);
                          ((InMemoryLookupTable) w2v.getLookupTable()).setSyn1Neg(syn1Neg);
                      }
                  }
              }
  
              return w2v;
          } finally {
              if (originalPeriodic)
                  Nd4j.getMemoryManager().togglePeriodicGc(true);
  
              Nd4j.getMemoryManager().setOccasionalGcFrequency(originalFreq);
  
              for (File f : new File[]{tmpFileSyn0, tmpFileSyn1, tmpFileC, tmpFileH, tmpFileF}) {
                  try {
                      f.delete();
                  } catch (Exception e) {
                      //Ignore, is temp file
                  }
              }
          }
      }