code: public void preprocess(IContext context) throws ContextPreprocessorException {
          unrecognizedWords.clear();
          // construct cLabs
          context = buildCLabs(context);
          // sense filtering
          context = findMultiwordsInContextStructure(context);
          try {
              senseFiltering(context);
          } catch (SenseMatcherException e) {
              final String errMessage = e.getClass().getSimpleName() + ": " + e.getMessage();
              log.error(errMessage, e);
              throw new ContextPreprocessorException(errMessage, e);
          }
  
          log.debug("Unrecognized words: " + unrecognizedWords.size());
          if (debugUnrecognizedWords) {
              TreeSet<String> sortedWords = new TreeSet<String>(unrecognizedWords);
              for (String unrecognizedWord : sortedWords) {
                  log.debug("Unrecognized word: " + unrecognizedWord);
              }
          }
          unrecognizedWords.clear();
      }
docs: Performs all preprocessing procedures as follows:
  - linguistic analysis (each lemma is associated with the set of senses taken from the oracle).
  - sense filtering (elimination of irrelevant to context structure senses)
  
  @param context context to be prepocessed
  @throws ContextPreprocessorException ContextPreprocessorException