バイナリ辞書フォーマットを修正
@@ -19,10 +19,10 @@ | ||
19 | 19 | count = fmis.size()/(2+2+2+4); |
20 | 20 | |
21 | 21 | try { |
22 | + dataOffsets= fmis.getIntArray(count); | |
22 | 23 | leftIds = fmis.getShortArray(count); |
23 | 24 | rightIds = fmis.getShortArray(count); |
24 | 25 | costs = fmis.getShortArray(count); |
25 | - dataOffsets= fmis.getIntArray(count); | |
26 | 26 | } finally { |
27 | 27 | fmis.close(); |
28 | 28 | } |
@@ -149,27 +149,27 @@ | ||
149 | 149 | final FileMappedOutputStream fmosInf = |
150 | 150 | new FileMappedOutputStream(outputDir+"/word.inf", (size+1)*(2+2+2+4)); |
151 | 151 | try { |
152 | - for(ArrayList<WordInfo> wlist : ws) | |
152 | + for(ArrayList<WordInfo> wlist : ws) // dataOffset | |
153 | + for(WordInfo w : wlist) { | |
154 | + fmosInf.putInt(wdat.length()); | |
155 | + wdat.append(w.data); | |
156 | + } | |
157 | + fmosInf.putInt(wdat.length()); | |
158 | + | |
159 | + for(ArrayList<WordInfo> wlist : ws) // leftId | |
153 | 160 | for(WordInfo w : wlist) |
154 | 161 | fmosInf.putShort(w.leftId); |
155 | 162 | fmosInf.putShort((short)0); |
156 | 163 | |
157 | - for(ArrayList<WordInfo> wlist : ws) | |
164 | + for(ArrayList<WordInfo> wlist : ws) // rightId | |
158 | 165 | for(WordInfo w : wlist) |
159 | 166 | fmosInf.putShort(w.rightId); |
160 | 167 | fmosInf.putShort((short)0); |
161 | 168 | |
162 | - for(ArrayList<WordInfo> wlist : ws) | |
169 | + for(ArrayList<WordInfo> wlist : ws) // cost | |
163 | 170 | for(WordInfo w : wlist) |
164 | 171 | fmosInf.putShort(w.cost); |
165 | 172 | fmosInf.putShort((short)0); |
166 | - | |
167 | - for(ArrayList<WordInfo> wlist : ws) | |
168 | - for(WordInfo w : wlist) { | |
169 | - fmosInf.putInt(wdat.length()); | |
170 | - wdat.append(w.data); | |
171 | - } | |
172 | - fmosInf.putInt(wdat.length()); | |
173 | 173 | } finally { |
174 | 174 | fmosInf.close(); |
175 | 175 | } |