docs: public void load( InputStream is ) throws IOException
      {
          Properties lexPro = new Properties();
          lexPro.load(new BufferedInputStream(is));
          
          //about the lexicon, the lexicon path
          String lexDirs = lexPro.getProperty("lexicon.path");
          if ( lexDirs == null ) {
              throw new IOException("Missing lexicon.path property in jcseg.properties file!!!");
          }
          
          if ( ! "null".equalsIgnoreCase(lexDirs) ) {
              if ( lexDirs.indexOf("{jar.dir}") > -1 ) {
                  lexDirs = lexDirs.replace("{jar.dir}", Util.getJarHome(this));
              }
              
              //Multiple path for lexicon.path.
              lexPath = lexDirs.split(";");
              File f  = null;
              for ( int i = 0; i < lexPath.length; i++ ) {
                  lexPath[i] = java.net.URLDecoder.decode(lexPath[i], "UTF-8");
                  f = new File(lexPath[i]);
                  if ( ! f.exists() ) {
                      throw new IOException("Invalid sub lexicon path " + lexPath[i] 
                              + " for lexicon.path in jcseg.properties");
                  }
                  f = null;    //Let gc do its work
              }
          }
          
          //reset all the options
          if ( lexPro.getProperty("jcseg.maxlen") != null )
              MAX_LENGTH = Integer.parseInt(lexPro.getProperty("jcseg.maxlen"));
          if ( lexPro.getProperty("jcseg.icnname") != null
                  && lexPro.getProperty("jcseg.icnname").equals("1"))
              I_CN_NAME = true;
          if ( lexPro.getProperty("jcseg.cnmaxlnadron") != null )
              MAX_CN_LNADRON = Integer.parseInt(lexPro.getProperty("jcseg.cnmaxlnadron"));
          if ( lexPro.getProperty("jcseg.nsthreshold") != null )
              NAME_SINGLE_THRESHOLD = Integer.parseInt(lexPro.getProperty("jcseg.nsthreshold"));
          if ( lexPro.getProperty("jcseg.pptmaxlen") != null ) 
              PPT_MAX_LENGTH = Integer.parseInt(lexPro.getProperty("jcseg.pptmaxlen"));
          if ( lexPro.getProperty("jcseg.loadpinyin") != null
                  && lexPro.getProperty("jcseg.loadpinyin").equals("1")) 
              LOAD_CJK_PINYIN = true;
          if ( lexPro.getProperty("jcseg.loadsyn") != null
                  && lexPro.getProperty("jcseg.loadsyn").equals("1") )
              LOAD_CJK_SYN = true;
          if ( lexPro.getProperty("jcseg.loadpos") != null
                  && lexPro.getProperty("jcseg.loadpos").equals("1")) 
              LOAD_CJK_POS = true;
          if ( lexPro.getProperty("jcseg.loadentity") != null
                  && lexPro.getProperty("jcseg.loadentity").equals("0")) 
              LOAD_CJK_ENTITY = false;
          if ( lexPro.getProperty("jcseg.loadparameter") != null
                  && lexPro.getProperty("jcseg.loadparameter").equals("0")) 
              LOAD_PARAMETER = false;
          if ( lexPro.getProperty("jcseg.clearstopword") != null
                  && lexPro.getProperty("jcseg.clearstopword").equals("1"))
              CLEAR_STOPWORD = true;
          if ( lexPro.getProperty("jcseg.cnnumtoarabic") != null
                  && lexPro.getProperty("jcseg.cnnumtoarabic").equals("0"))
              CNNUM_TO_ARABIC = false;
          if ( lexPro.getProperty("jcseg.cnfratoarabic") != null
                  && lexPro.getProperty("jcseg.cnfratoarabic").equals("0"))
              CNFRA_TO_ARABIC = false;
          if ( lexPro.getProperty("jcseg.keepunregword") != null
                  && lexPro.getProperty("jcseg.keepunregword").equals("1"))
              KEEP_UNREG_WORDS = true;
          if ( lexPro.getProperty("lexicon.autoload") != null
                  && lexPro.getProperty("lexicon.autoload").equals("1"))
              lexAutoload = true;
          if ( lexPro.getProperty("lexicon.polltime") != null )
              polltime = Integer.parseInt(lexPro.getProperty("lexicon.polltime"));
          
          //secondary split
          if ( lexPro.getProperty("jcseg.ensencondseg") != null
                  && lexPro.getProperty("jcseg.ensencondseg").equals("0"))
              EN_SECOND_SEG = false;
          if ( lexPro.getProperty("jcseg.stokenminlen") != null )
              STOKEN_MIN_LEN = Integer.parseInt(lexPro.getProperty("jcseg.stokenminlen"));
          
          //load the keep punctuation
          if ( lexPro.getProperty("jcseg.keeppunctuations") != null )
              KEEP_PUNCTUATIONS = lexPro.getProperty("jcseg.keeppunctuations");
      }