public void read_dic(String dictionaryFileName, TagSet tagSet) throws IOException{
		String str = "";

		BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(dictionaryFileName)));
		INFO[] info_list = new INFO[255];
		for (int i = 0; i < 255; i++) {
			info_list[i] = new INFO();
		}

		while((str = in.readLine()) != null){
			str.trim();
			if(str.equals("")){
				continue;
			}

			StringTokenizer tok	= new StringTokenizer(str, "\t ");
			String word = tok.nextToken();
			int isize = 0;

			while (tok.hasMoreTokens()) {
				String data = tok.nextToken();
				StringTokenizer tok2 = new StringTokenizer(data, ".");
				String curt = tok2.nextToken();
				int x = tagSet.getTagID(curt);
				if (x == -1) {
					System.err.println("read_dic:tag error");
					continue;
				}

				if(tok2.hasMoreTokens()){
					info_list[isize].phoneme = (short)tagSet.getIrregularID(tok2.nextToken());
				}else{
					info_list[isize].phoneme = TagSet.PHONEME_TYPE_ALL;
				}

				info_list[isize].tag = x;
				isize++;
			}
			info_list[isize].tag = 0;
			info_list[isize].phoneme = 0;

			char[] word3 = Code.toTripleArray(word);
			for(int i = 0; i < isize; i++){
				store(word3, info_list[i]);
			}
		}
	}