docs: public void build(String... inputFile) throws Exception {
  		System.out.println("read file ..."); 
  				
  		
  		for(String file:inputFile){
  			LinkedList<Integer> n1gramList = new LinkedList<Integer>();
  			for(int i=0;i<n;i++){
  				n1gramList.add(-1);
  			}
  			Scanner scanner = new Scanner(new FileInputStream(file), "utf-8");
  			while(scanner.hasNext()) { 
  				String s = scanner.next();
  				int idx = wordDict.lookupIndex(s);
  				n1gramList.add(idx);
  				n1gramList.remove();
  				assert n1gramList.size()==n;
  				
  				String[] grams = getNgram(n1gramList);
  				String n1gram = grams[0];
  				String ngram = grams[1];
  				
  				int n1gramidx = n1gramDict.lookupIndex(n1gram);
  				if(n1gramidx==n1gramCount.size())
  					n1gramCount.add(1);
  				else if(n1gramidx>n1gramCount.size()){
  					throw new Exception();
  				}
  				else{
  					int count = n1gramCount.get(n1gramidx);
  					n1gramCount.set(n1gramidx, count+1);
  				}
  
  				
  				int ngramidx = ngramDict.lookupIndex(ngram);
  				
  				if(ngramidx==prob.size())
  					prob.add(1);
  				else if(ngramidx>prob.size()){
  					throw new Exception();
  				}
  				else{
  					float count = prob.get(ngramidx);
  					prob.set(ngramidx, count+1);
  				}
  				
  				
  				
  				if(index.contains(ngramidx))
  					assert(index.get(ngramidx) == n1gramidx);
  				else
  					index.put(ngramidx, n1gramidx);
  
  			}
  			scanner.close();
  		}
  		
  		ngramDict.setStopIncrement(true);
  		n1gramDict.setStopIncrement(true);
  		wordDict.setStopIncrement(true);
  		System.out.println("词表大小" + wordDict.size());
  
  	}