docs: protected IWord getNextTheWord(IWord word) throws IOException
      {
          String wVal = word.getValue();
          int wLen = word.getValue().length();
          IWord dWord = null;
  
          //the only 'the' word
          if ( wLen == 1 ) {
              return _nextNumberWord(word);
          }
  
          //template like '第三'
          if ( wLen == 2 ) {
              if ( NumericUtil.isCNNumeric(wVal.charAt(1)) == -1
                      && ! StringUtil.isEnNumeric(wVal.charAt(1)) ) {
                  return null;
              }
  
              //update the word's entity
              word.addEntity(Entity.E_THE_NUMBER);
              return _nextNumberWord(word);
          }
  
          //template like '第x个'
          IWord unit = dic.get(ILexicon.NUMBER_UNIT, ""+wVal.charAt(wLen-1));
          if ( unit != null ) {
              if ( ! NumericUtil.isCNNumericString(wVal, 1, wLen-1)
                      && ! StringUtil.isDigit(wVal, 1, wLen-1) ) {
                  return null;
              }
  
              dWord = word;
              dWord.setEntity(unit.getEntity());
              return dWord;
          }
  
          //the left template '第xxx'
          if ( ! NumericUtil.isCNNumericString(wVal, 1, wLen)
                  && ! StringUtil.isDigit(wVal, 1, wLen) ) {
              return null;
          }
  
          word.addEntity(Entity.E_THE_NUMBER);
          return _nextNumberWord(word);
      }