From: Jason B. <jas...@us...> - 2002-04-08 16:14:13
|
Update of /cvsroot/maxent/maxent/src/java/opennlp/maxent In directory usw-pr-cvs1:/tmp/cvs-serv7102/src/java/opennlp/maxent Modified Files: GISTrainer.java Log Message: Set up the GISTrainer to use an initial capacity and load factor for the big hashmaps it uses Index: GISTrainer.java =================================================================== RCS file: /cvsroot/maxent/maxent/src/java/opennlp/maxent/GISTrainer.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** GISTrainer.java 27 Dec 2001 19:20:26 -0000 1.3 --- GISTrainer.java 8 Apr 2002 16:14:06 -0000 1.4 *************** *** 306,313 **** observedExpects = new TIntDoubleHashMap[numPreds]; for (PID=0; PID<numPreds; PID++) { ! params[PID] = new TIntDoubleHashMap(); ! modifiers[PID] = new TIntDoubleHashMap(); ! observedExpects[PID] = new TIntDoubleHashMap(); for (OID=0; OID<numOutcomes; OID++) { if (predCount[PID][OID] > 0) { --- 306,324 ---- observedExpects = new TIntDoubleHashMap[numPreds]; + int initialCapacity; + float loadFactor = (float)0.9; + if (numOutcomes < 3) { + initialCapacity = 2; + loadFactor = (float)1.0; + } else if (numOutcomes < 5) { + initialCapacity = 2; + } else { + initialCapacity = (int)numOutcomes/2; + } for (PID=0; PID<numPreds; PID++) { ! params[PID] = new TIntDoubleHashMap(initialCapacity, loadFactor); ! modifiers[PID] = new TIntDoubleHashMap(initialCapacity, loadFactor); ! observedExpects[PID] = ! new TIntDoubleHashMap(initialCapacity, loadFactor); for (OID=0; OID<numOutcomes; OID++) { if (predCount[PID][OID] > 0) { *************** *** 339,344 **** cfvals = new TIntIntHashMap[numTokens]; for (TID=0; TID<numTokens; TID++) { ! cfvals[TID] = new TIntIntHashMap(); ! pabi[TID] = new TIntDoubleHashMap(); for (int j=0; j<contexts[TID].length; j++) { PID = contexts[TID][j]; --- 350,355 ---- cfvals = new TIntIntHashMap[numTokens]; for (TID=0; TID<numTokens; TID++) { ! cfvals[TID] = new TIntIntHashMap(initialCapacity, loadFactor); ! pabi[TID] = new TIntDoubleHashMap(initialCapacity, loadFactor); for (int j=0; j<contexts[TID].length; j++) { PID = contexts[TID][j]; *************** *** 381,385 **** pabi = new TIntDoubleHashMap[numTokens]; for (TID=0; TID<numTokens; TID++) { ! pabi[TID] = new TIntDoubleHashMap(); for (int j=0; j<contexts[TID].length; j++) { PID = contexts[TID][j]; --- 392,396 ---- pabi = new TIntDoubleHashMap[numTokens]; for (TID=0; TID<numTokens; TID++) { ! pabi[TID] = new TIntDoubleHashMap(initialCapacity, loadFactor); for (int j=0; j<contexts[TID].length; j++) { PID = contexts[TID][j]; |