code: public SparseArray<String> getDocumentDescriptors(Vector documentVector) {
          if (documentVector.length() != getVectorLength())
              throw new IllegalArgumentException(
                      "An documentVector with an invalid length cannot be " +
                      "interpreted by ESA.");
  
          SparseArray<String> docLabels = new SparseHashArray<String>();
  
          // Extract the indices which are non zero and add the corresponding
          // document label to docLabels.
          if (documentVector instanceof SparseVector) {
              int[] nonZeros = ((SparseVector) documentVector).getNonZeroIndices();
              for (int index : nonZeros)
                  docLabels.set(index, documentLabels.get(index));
          } else {
              for (int index = 0; index < documentVector.length(); index++)
                  if (documentVector.getValue(index).doubleValue() != 0d)
                      docLabels.set(index, documentLabels.get(index));
          }
  
          return docLabels;
      }
docs: Returns a {@link SparseArray} containing document labels for any non zero
  value in the given {@link Vector}.  The given {@link Vector}s are
  expected to have the same dimensionality as this {@link
  ExplicitSemanticAnalysis} word space.  Under ESA, these returned document
  labels can be considered the wikipedia articles that best describe the
  vector created by combining each of the term vectors in a fragment of
  text.