docs: private IWord _nextNumberWord(IWord word) throws IOException
      {
          IWord dWord = null, unit = null;
          IWord dw1 = super.next();
          if ( dw1 == null ) {
              return null;
          }
  
          String[] w1Entity = dw1.getEntity();
          int w1Len = dw1.getValue().length();
  
          //pure numeric
          if ( ArrayUtil.indexOf(Entity.E_NUMERIC_ARABIC, w1Entity) > -1 ) {
              IWord dw2 = super.next();
              if ( dw2 == null ) {
                  dWord = new Word(word.getValue()+dw1.getValue(), IWord.T_CJK_WORD);
                  dWord.setPosition(word.getPosition());
                  dWord.setEntity(Entity.E_THE_NUMBER_A);
                  return dWord;
              }
  
              int w2Len = dw2.getValue().length();
  
              //template like '个', 'xx个'
              unit = dic.get(ILexicon.NUMBER_UNIT, ""+dw2.getValue().charAt(0));
              if ( unit != null ) {
                  String w2Val = dw2.getValue();
                  if ( w2Len == 1 || NumericUtil.isCNNumericString(w2Val, 0, w2Len-1)
                          || StringUtil.isDigit(w2Val, 0, w2Len-1) ) {
                      dWord = new Word(word.getValue()+dw1.getValue()+w2Val, IWord.T_CJK_WORD);
                      dWord.setEntity(unit.getEntity());
                      return dWord;
                  }
              }
  
              eWordPool.push(dw2);
              dWord = new Word(word.getValue()+dw1.getValue(), IWord.T_CJK_WORD);
              dWord.setPosition(word.getPosition());
              dWord.setEntity(Entity.E_THE_NUMBER_A);
              return dWord;
          }
  
          //template like '个', 'x个'
          unit = dic.get(ILexicon.NUMBER_UNIT, ""+dw1.getValue().charAt(w1Len-1));
          if ( unit != null ) {
              String w1Val = dw1.getValue();
              if ( w1Len == 1 || NumericUtil.isCNNumericString(w1Val, 0, w1Len-1)
                      || StringUtil.isDigit(w1Val, 0, w1Len-1) ) {
                  dWord = new Word(word.getValue()+w1Val, IWord.T_CJK_WORD);
                  dWord.setEntity(unit.getEntity());
                  return dWord;
              }
          }
  
          eWordPool.push(dw1);
          return null;
      }