code: private void printSemanticShifts(String dateString) throws IOException {
  
          LOGGER.fine("Writing semantic shifts for " + dateString);
  
          // Once we have all the vectors for each word in each sspace,
          // calculate how much the vector has changed.
          for (Map.Entry<String,SortedMap<Long,double[]>> e : 
                   wordToTemporalSemantics.entrySet()) {
              
              String word = e.getKey();
              SortedMap<Long,double[]> timeStampToSemantics = e.getValue();
              Iterator<Map.Entry<Long,double[]>> it = 
                  timeStampToSemantics.entrySet().iterator();
              
              PrintWriter pw = new PrintWriter(new File(outputDir,
                  word + "." + dateString + ".temporal-changes.txt"));            
              
              // Write the header so we can keep track of what all the columns
              // mean
              pw.println("#time\ttime-delay\tcosineSim\tcosineAngle\tEuclidean"+
                         "\tchange-in-magnitde\tmagnitde\tprev-magnitude");
              Map.Entry<Long,double[]> last = null;
              while (it.hasNext()) {
                  Map.Entry<Long,double[]> cur = it.next();
                  if (last != null) {
                      long timeDelay = cur.getKey() - last.getKey();
                      double euclideanDist = Similarity.
                              euclideanDistance(cur.getValue(), last.getValue());
                      double cosineSim = Similarity.
                          cosineSimilarity(cur.getValue(), last.getValue());
                      double cosineAngle = Math.acos(cosineSim);
                      
                      double oldMag = getMagnitude(last.getValue());
                      double newMag = getMagnitude(cur.getValue());
                      
                      pw.println(cur.getKey() + "\t" + timeDelay + "\t" + 
                                 cosineSim + "\t" + cosineAngle + "\t" + 
                                 euclideanDist + "\t" + (newMag - oldMag) + "\t" 
                                 + newMag + "\t" + oldMag);
                  }
                  last = cur;
              }
              pw.close();
          }
      }
docs: Prints the semantic shifts for all the words in the {@link
  #wordToTemporalSemantics} map, using the {code dateString} for naming the
  output file with the date of the last semantic partition.
  
  @param dateString the date of the last semantic partition.