code: private List<String> complexWordsRecognition(String token) throws ContextPreprocessorException {
          List<String> result = new ArrayList<String>();
          try {
              List<ISense> senses = new ArrayList<ISense>();
              int i = 0;
              String start = null;
              String end = null;
              String toCheck = null;
              boolean flag = false;
              boolean multiword = false;
              while ((i < token.length() - 1) && (0 == senses.size())) {
                  i++;
                  start = token.substring(0, i);
                  end = token.substring(i, token.length());
                  toCheck = start + ' ' + end;
                  senses = linguisticOracle.getSenses(toCheck);
                  if (0 == senses.size()) {
                      toCheck = start + '-' + end;
                      senses = linguisticOracle.getSenses(toCheck);
                  }
  
                  if (0 < senses.size()) {
                      multiword = true;
                      break;
                  } else {
                      if ((start.length() > 3) && (end.length() > 3)) {
                          senses = linguisticOracle.getSenses(start);
                          if (0 < senses.size()) {
                              senses = linguisticOracle.getSenses(end);
                              if (0 < senses.size()) {
                                  flag = true;
                                  break;
                              }
                          }
                      }
                  }
              }
              if (multiword) {
                  result.add(toCheck);
                  return result;
              }
              if (flag) {
                  result.add(start);
                  result.add(end);
                  return result;
              }
              return result;
          } catch (LinguisticOracleException e) {
              final String errMessage = e.getClass().getSimpleName() + ": " + e.getMessage();
              log.error(errMessage, e);
              throw new ContextPreprocessorException(errMessage, e);
          }
      }
docs: Finds out if the input token is a complex word or not using WordNet. Tries to insert spaces and dash
  between all characters and searches for the result to be in WordNet.
  
  @param token token
  @return a list which contains parts of the complex word
  @throws ContextPreprocessorException ContextPreprocessorException