@Override
    public void map(LongWritable key, Text value, Context context)
        throws IOException, InterruptedException {
      String line = ((Text) value).toString();

      List<String> tokens = new ArrayList<String>();
      StringTokenizer itr = new StringTokenizer(line);
      int numWords = 0;
      while (itr.hasMoreTokens() && numWords < 100) {
        String w = itr.nextToken().toLowerCase().replaceAll("(^[^a-z]+|[^a-z]+$)", "");
        if (w.length() == 0) continue;
        if (!tokens.contains(w)) {
          tokens.add(w);
        }
        numWords++;
      }

      for (int i = 0; i < tokens.size(); i++) {
        MAP.clear();
        for (int j = 0; j < tokens.size(); j++) {
          if (i == j) continue;

          MAP.increment(tokens.get(j));
        }
        KEY.set(tokens.get(i));
        context.write(KEY, MAP);
      }
    }