public void printDocumentTopics(PrintWriter pw, double threshold, int max) { pw.println("#doc source topic proportion ..."); int docLen; double topicDist[] = new double[topics.length]; for (int di = 0; di < topics.length; di++) { pw.print(di); pw.print(' '); if (ilist.get(di).getSource() != null) { pw.print(ilist.get(di).getSource().toString()); } else { pw.print("null-source"); } pw.print(' '); docLen = topics[di].length; for (int ti = 0; ti < numTopics; ti++) topicDist[ti] = (((float) docTopicCounts[di][ti]) / docLen); if (max < 0) max = numTopics; for (int tp = 0; tp < max; tp++) { double maxvalue = 0; int maxindex = -1; for (int ti = 0; ti < numTopics; ti++) if (topicDist[ti] > maxvalue) { maxvalue = topicDist[ti]; maxindex = ti; } if (maxindex == -1 || topicDist[maxindex] < threshold) break; pw.print(maxindex + " " + topicDist[maxindex] + " "); topicDist[maxindex] = 0; } pw.println(' '); } }
public void count() { TIntIntHashMap docCounts = new TIntIntHashMap(); int index = 0; if (instances.size() == 0) { logger.info("Instance list is empty"); return; } if (instances.get(0).getData() instanceof FeatureSequence) { for (Instance instance : instances) { FeatureSequence features = (FeatureSequence) instance.getData(); for (int i = 0; i < features.getLength(); i++) { docCounts.adjustOrPutValue(features.getIndexAtPosition(i), 1, 1); } int[] keys = docCounts.keys(); for (int i = 0; i < keys.length - 1; i++) { int feature = keys[i]; featureCounts[feature] += docCounts.get(feature); documentFrequencies[feature]++; } docCounts = new TIntIntHashMap(); index++; if (index % 1000 == 0) { System.err.println(index); } } } else if (instances.get(0).getData() instanceof FeatureVector) { for (Instance instance : instances) { FeatureVector features = (FeatureVector) instance.getData(); for (int location = 0; location < features.numLocations(); location++) { int feature = features.indexAtLocation(location); double value = features.valueAtLocation(location); documentFrequencies[feature]++; featureCounts[feature] += value; } index++; if (index % 1000 == 0) { System.err.println(index); } } } else { logger.info("Unsupported data class: " + instances.get(0).getData().getClass().getName()); } }
/** * Initialize this separate model using a complete list. * * @param documents * @param testStartIndex */ public void divideDocuments(InstanceList documents, int testStartIndex) { Alphabet dataAlpha = documents.getDataAlphabet(); Alphabet targetAlpha = documents.getTargetAlphabet(); this.training = new InstanceList(dataAlpha, targetAlpha); this.test = new InstanceList(dataAlpha, targetAlpha); int di = 0; for (di = 0; di < testStartIndex; di++) { training.add(documents.get(di)); } for (di = testStartIndex; di < documents.size(); di++) { test.add(documents.get(di)); } }
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { int featuresLength; int version = in.readInt(); ilist = (InstanceList) in.readObject(); numTopics = in.readInt(); alpha = in.readDouble(); beta = in.readDouble(); tAlpha = in.readDouble(); vBeta = in.readDouble(); int numDocs = ilist.size(); topics = new int[numDocs][]; for (int di = 0; di < ilist.size(); di++) { int docLen = ((FeatureSequence) ilist.get(di).getData()).getLength(); topics[di] = new int[docLen]; for (int si = 0; si < docLen; si++) topics[di][si] = in.readInt(); } docTopicCounts = new int[numDocs][numTopics]; for (int di = 0; di < ilist.size(); di++) for (int ti = 0; ti < numTopics; ti++) docTopicCounts[di][ti] = in.readInt(); int numTypes = ilist.getDataAlphabet().size(); typeTopicCounts = new int[numTypes][numTopics]; for (int fi = 0; fi < numTypes; fi++) for (int ti = 0; ti < numTopics; ti++) typeTopicCounts[fi][ti] = in.readInt(); tokensPerTopic = new int[numTopics]; for (int ti = 0; ti < numTopics; ti++) tokensPerTopic[ti] = in.readInt(); }
public static ElementInMove_c resolveInstance( ModelRoot modelRoot, java.util.UUID p_m_elementid, java.util.UUID p_m_diagramid, float p_m_startingx, float p_m_startingy) { InstanceList instances = modelRoot.getInstanceList(ElementInMove_c.class); ElementInMove_c source = null; synchronized (instances) { Object[] key = {p_m_elementid, p_m_diagramid}; source = (ElementInMove_c) instances.get(key); if (source != null && !modelRoot.isCompareRoot()) { source.convertFromProxy(); source.batchUnrelate(); // pre-process the uuid so that we re-use null uuid instance rather then creating a new one. source.m_elementid = IdAssigner.preprocessUUID(p_m_elementid); // pre-process the uuid so that we re-use null uuid instance rather then creating a new one. source.m_diagramid = IdAssigner.preprocessUUID(p_m_diagramid); source.m_startingx = p_m_startingx; source.m_startingy = p_m_startingy; return source; } } // there is no instance matching the id ElementInMove_c new_inst = new ElementInMove_c(modelRoot, p_m_elementid, p_m_diagramid, p_m_startingx, p_m_startingy); return new_inst; }
public static void clearInstances(ModelRoot modelRoot) { InstanceList instances = modelRoot.getInstanceList(InformalArgument_c.class); synchronized (instances) { for (int i = instances.size() - 1; i >= 0; i--) { ((NonRootModelElement) instances.get(i)).delete_unchecked(); } } }
public static BridgeInvocation_c createProxy( ModelRoot modelRoot, java.util.UUID p_m_statement_id, java.util.UUID p_m_brg_id, int p_m_bridgenamelinenumber, int p_m_bridgenamecolumn, int p_m_externalentitykeyletterslinenumber, int p_m_externalentitykeyletterscolumn, String p_contentPath, IPath p_localPath) { ModelRoot resolvedModelRoot = ModelRoot.findModelRoot(modelRoot, p_contentPath, p_localPath); // if a model root was not resolved it is most likely // due to a missing file of the proxy, defualt back to // the original model root if (resolvedModelRoot != null) modelRoot = resolvedModelRoot; InstanceList instances = modelRoot.getInstanceList(BridgeInvocation_c.class); BridgeInvocation_c new_inst = null; synchronized (instances) { Object[] key = {p_m_statement_id}; new_inst = (BridgeInvocation_c) instances.get(key); } String contentPath = PersistenceUtil.resolveRelativePath(p_localPath, new Path(p_contentPath)); if (modelRoot.isNewCompareRoot()) { // for comparisons we do not want to change // the content path contentPath = p_contentPath; } if (new_inst != null && !modelRoot.isCompareRoot()) { PersistableModelComponent pmc = new_inst.getPersistableComponent(); if (pmc == null) { // dangling reference, redo this instance new_inst.batchUnrelate(); // pre-process the uuid so that we re-use null uuid instance rather then creating a new one. new_inst.m_statement_id = IdAssigner.preprocessUUID(p_m_statement_id); // pre-process the uuid so that we re-use null uuid instance rather then creating a new one. new_inst.m_brg_id = IdAssigner.preprocessUUID(p_m_brg_id); new_inst.m_bridgenamelinenumber = p_m_bridgenamelinenumber; new_inst.m_bridgenamecolumn = p_m_bridgenamecolumn; new_inst.m_externalentitykeyletterslinenumber = p_m_externalentitykeyletterslinenumber; new_inst.m_externalentitykeyletterscolumn = p_m_externalentitykeyletterscolumn; } } if (new_inst == null) { // there is no instance matching the id, create a proxy // if the resource doesn't exist then this will be a dangling reference new_inst = new BridgeInvocation_c( modelRoot, p_m_statement_id, p_m_brg_id, p_m_bridgenamelinenumber, p_m_bridgenamecolumn, p_m_externalentitykeyletterslinenumber, p_m_externalentitykeyletterscolumn); new_inst.m_contentPath = contentPath; } return new_inst; }
public void estimate( InstanceList documents, int numIterations, int showTopicsInterval, int outputModelInterval, String outputModelFilename, Randoms r) { ilist = documents.shallowClone(); numTypes = ilist.getDataAlphabet().size(); int numDocs = ilist.size(); topics = new int[numDocs][]; docTopicCounts = new int[numDocs][numTopics]; typeTopicCounts = new int[numTypes][numTopics]; tokensPerTopic = new int[numTopics]; tAlpha = alpha * numTopics; vBeta = beta * numTypes; long startTime = System.currentTimeMillis(); // Initialize with random assignments of tokens to topics // and finish allocating this.topics and this.tokens int topic, seqLen; FeatureSequence fs; for (int di = 0; di < numDocs; di++) { try { fs = (FeatureSequence) ilist.get(di).getData(); } catch (ClassCastException e) { System.err.println( "LDA and other topic models expect FeatureSequence data, not FeatureVector data. " + "With text2vectors, you can obtain such data with --keep-sequence or --keep-bisequence."); throw e; } seqLen = fs.getLength(); numTokens += seqLen; topics[di] = new int[seqLen]; // Randomly assign tokens to topics for (int si = 0; si < seqLen; si++) { topic = r.nextInt(numTopics); topics[di][si] = topic; docTopicCounts[di][topic]++; typeTopicCounts[fs.getIndexAtPosition(si)][topic]++; tokensPerTopic[topic]++; } } this.estimate( 0, numDocs, numIterations, showTopicsInterval, outputModelInterval, outputModelFilename, r); // 124.5 seconds // 144.8 seconds after using FeatureSequence instead of tokens[][] array // 121.6 seconds after putting "final" on FeatureSequence.getIndexAtPosition() // 106.3 seconds after avoiding array lookup in inner loop with a temporary variable }
/* One iteration of Gibbs sampling, across all documents. */ public void sampleTopicsForAllDocs(Randoms r) { double[] topicWeights = new double[numTopics]; // Loop over every word in the corpus for (int di = 0; di < topics.length; di++) { sampleTopicsForOneDoc( (FeatureSequence) ilist.get(di).getData(), topics[di], docTopicCounts[di], topicWeights, r); } }
/* One iteration of Gibbs sampling, across all documents. */ public void sampleTopicsForDocs(int start, int length, Randoms r) { assert (start + length <= docTopicCounts.length); double[] topicWeights = new double[numTopics]; // Loop over every word in the corpus for (int di = start; di < start + length; di++) { sampleTopicsForOneDoc( (FeatureSequence) ilist.get(di).getData(), topics[di], docTopicCounts[di], topicWeights, r); } }
private static Graphnode_c findGraphnodeInstance( ModelRoot modelRoot, ClassQueryInterface_c test, boolean loadComponent) { InstanceList instances = modelRoot.getInstanceList(Graphnode_c.class); synchronized (instances) { for (int i = 0; i < instances.size(); ++i) { Graphnode_c x = (Graphnode_c) instances.get(i); if (test == null || test.evaluate(x)) { return x; } } } return null; }
private static InformalArgument_c findInformalArgumentInstance( ModelRoot modelRoot, ClassQueryInterface_c test, boolean loadComponent) { InstanceList instances = modelRoot.getInstanceList(InformalArgument_c.class); synchronized (instances) { for (int i = 0; i < instances.size(); ++i) { InformalArgument_c x = (InformalArgument_c) instances.get(i); if (test == null || test.evaluate(x)) { if (x.ensureLoaded(loadComponent)) return x; } } } return null; }
public void addDocuments( InstanceList additionalDocuments, int numIterations, int showTopicsInterval, int outputModelInterval, String outputModelFilename, Randoms r) { if (ilist == null) throw new IllegalStateException("Must already have some documents first."); for (Instance inst : additionalDocuments) ilist.add(inst); assert (ilist.getDataAlphabet() == additionalDocuments.getDataAlphabet()); assert (additionalDocuments.getDataAlphabet().size() >= numTypes); numTypes = additionalDocuments.getDataAlphabet().size(); int numNewDocs = additionalDocuments.size(); int numOldDocs = topics.length; int numDocs = numOldDocs + numNewDocs; // Expand various arrays to make space for the new data. int[][] newTopics = new int[numDocs][]; for (int i = 0; i < topics.length; i++) newTopics[i] = topics[i]; topics = newTopics; // The rest of this array will be initialized below. int[][] newDocTopicCounts = new int[numDocs][numTopics]; for (int i = 0; i < docTopicCounts.length; i++) newDocTopicCounts[i] = docTopicCounts[i]; docTopicCounts = newDocTopicCounts; // The rest of this array will be initialized below. int[][] newTypeTopicCounts = new int[numTypes][numTopics]; for (int i = 0; i < typeTopicCounts.length; i++) for (int j = 0; j < numTopics; j++) newTypeTopicCounts[i][j] = typeTopicCounts[i][j]; // This array further populated below FeatureSequence fs; for (int di = numOldDocs; di < numDocs; di++) { try { fs = (FeatureSequence) additionalDocuments.get(di - numOldDocs).getData(); } catch (ClassCastException e) { System.err.println( "LDA and other topic models expect FeatureSequence data, not FeatureVector data. " + "With text2vectors, you can obtain such data with --keep-sequence or --keep-bisequence."); throw e; } int seqLen = fs.getLength(); numTokens += seqLen; topics[di] = new int[seqLen]; // Randomly assign tokens to topics for (int si = 0; si < seqLen; si++) { int topic = r.nextInt(numTopics); topics[di][si] = topic; docTopicCounts[di][topic]++; typeTopicCounts[fs.getIndexAtPosition(si)][topic]++; tokensPerTopic[topic]++; } } }
/* One iteration of Gibbs sampling, across all documents. */ private void sampleTopicsForAllDocs(Randoms r) { double[] uniTopicWeights = new double[numTopics]; double[] biTopicWeights = new double[numTopics * 2]; // Loop over every word in the corpus for (int di = 0; di < topics.length; di++) { sampleTopicsForOneDoc( (FeatureSequenceWithBigrams) ilist.get(di).getData(), topics[di], grams[di], docTopicCounts[di], uniTopicWeights, biTopicWeights, r); } }
public void generateTestInference() { if (lda == null) { System.out.println("Should run lda estimation first."); System.exit(1); return; } if (testTopicDistribution == null) testTopicDistribution = new double[test.size()][]; TopicInferencer infer = lda.getInferencer(); int iterations = 800; int thinning = 5; int burnIn = 100; for (int ti = 0; ti < test.size(); ti++) { testTopicDistribution[ti] = infer.getSampledDistribution(test.get(ti), iterations, thinning, burnIn); } }
public static ComponentInComponent_c createProxy( ModelRoot modelRoot, java.util.UUID p_m_id, java.util.UUID p_m_parent_id, String p_contentPath, IPath p_localPath) { ModelRoot resolvedModelRoot = ModelRoot.findModelRoot(modelRoot, p_contentPath, p_localPath); // if a model root was not resolved it is most likely // due to a missing file of the proxy, defualt back to // the original model root if (resolvedModelRoot != null) modelRoot = resolvedModelRoot; InstanceList instances = modelRoot.getInstanceList(ComponentInComponent_c.class); ComponentInComponent_c new_inst = null; synchronized (instances) { Object[] key = {p_m_id}; new_inst = (ComponentInComponent_c) instances.get(key); } String contentPath = PersistenceUtil.resolveRelativePath(p_localPath, new Path(p_contentPath)); if (modelRoot.isNewCompareRoot()) { // for comparisons we do not want to change // the content path contentPath = p_contentPath; } if (new_inst != null && !modelRoot.isCompareRoot()) { PersistableModelComponent pmc = new_inst.getPersistableComponent(); if (pmc == null) { // dangling reference, redo this instance new_inst.batchUnrelate(); // pre-process the uuid so that we re-use null uuid instance rather then creating a new one. new_inst.m_id = IdAssigner.preprocessUUID(p_m_id); // extract 28 bit value only new_inst.m_idLongBased = 0xfffffff & p_m_id.getLeastSignificantBits(); // pre-process the uuid so that we re-use null uuid instance rather then creating a new one. new_inst.m_parent_id = IdAssigner.preprocessUUID(p_m_parent_id); } } if (new_inst == null) { // there is no instance matching the id, create a proxy // if the resource doesn't exist then this will be a dangling reference new_inst = new ComponentInComponent_c(modelRoot, p_m_id, p_m_parent_id); new_inst.m_contentPath = contentPath; } return new_inst; }
public void doInference() { try { ParallelTopicModel model = ParallelTopicModel.read(new File(inferencerFile)); TopicInferencer inferencer = model.getInferencer(); // TopicInferencer inferencer = // TopicInferencer.read(new File(inferencerFile)); // InstanceList testing = readFile(); readFile(); InstanceList testing = generateInstanceList(); // readFile(); for (int i = 0; i < testing.size(); i++) { StringBuilder probabilities = new StringBuilder(); double[] testProbabilities = inferencer.getSampledDistribution(testing.get(i), 10, 1, 5); ArrayList probabilityList = new ArrayList(); for (int j = 0; j < testProbabilities.length; j++) { probabilityList.add(new Pair<Integer, Double>(j, testProbabilities[j])); } Collections.sort(probabilityList, new CustomComparator()); for (int j = 0; j < testProbabilities.length && j < topN; j++) { if (j > 0) probabilities.append(" "); probabilities.append( ((Pair<Integer, Double>) probabilityList.get(j)).getFirst().toString() + "," + ((Pair<Integer, Double>) probabilityList.get(j)).getSecond().toString()); } System.out.println(docIds.get(i) + "," + probabilities.toString()); } } catch (Exception e) { e.printStackTrace(); System.err.println(e.getMessage()); } }
public static InformalArgument_c resolveInstance(ModelRoot modelRoot, java.util.UUID p_m_arg_id) { InstanceList instances = modelRoot.getInstanceList(InformalArgument_c.class); InformalArgument_c source = null; synchronized (instances) { Object[] key = {p_m_arg_id}; source = (InformalArgument_c) instances.get(key); if (source != null && !modelRoot.isCompareRoot()) { source.convertFromProxy(); source.batchUnrelate(); // pre-process the uuid so that we re-use null uuid instance rather then creating a new one. source.m_arg_id = IdAssigner.preprocessUUID(p_m_arg_id); return source; } } // there is no instance matching the id InformalArgument_c new_inst = new InformalArgument_c(modelRoot, p_m_arg_id); return new_inst; }
public void printState(PrintWriter pw) { Alphabet a = ilist.getDataAlphabet(); pw.println("#doc pos typeindex type topic"); for (int di = 0; di < topics.length; di++) { FeatureSequence fs = (FeatureSequence) ilist.get(di).getData(); for (int si = 0; si < topics[di].length; si++) { int type = fs.getIndexAtPosition(si); pw.print(di); pw.print(' '); pw.print(si); pw.print(' '); pw.print(type); pw.print(' '); pw.print(a.lookupObject(type)); pw.print(' '); pw.print(topics[di][si]); pw.println(); } } }
public static Graphnode_c[] GraphnodeInstances( ModelRoot modelRoot, ClassQueryInterface_c test, boolean loadComponent) { InstanceList instances = modelRoot.getInstanceList(Graphnode_c.class); Vector matches = new Vector(); synchronized (instances) { for (int i = 0; i < instances.size(); ++i) { Graphnode_c x = (Graphnode_c) instances.get(i); if (test == null || test.evaluate(x)) { matches.add(x); } } if (matches.size() > 0) { Graphnode_c[] ret_set = new Graphnode_c[matches.size()]; matches.copyInto(ret_set); return ret_set; } else { return new Graphnode_c[0]; } } }
public void test() throws Exception { ParallelTopicModel model = ParallelTopicModel.read(new File(inferencerFile)); TopicInferencer inferencer = model.getInferencer(); ArrayList<Pipe> pipeList = new ArrayList<Pipe>(); pipeList.add(new CharSequence2TokenSequence(Pattern.compile("\\p{L}\\p{L}+"))); pipeList.add(new TokenSequence2FeatureSequence()); InstanceList instances = new InstanceList(new SerialPipes(pipeList)); Reader fileReader = new InputStreamReader(new FileInputStream(new File(fileName)), "UTF-8"); instances.addThruPipe( new CsvIterator( fileReader, Pattern.compile("^(\\S*)[\\s,]*(\\S*)[\\s,]*(.*)$"), 3, 2, 1)); // data, label, name fields double[] testProbabilities = inferencer.getSampledDistribution(instances.get(1), 10, 1, 5); for (int i = 0; i < 1000; i++) System.out.println(i + ": " + testProbabilities[i]); }
public static BridgeInvocation_c resolveInstance( ModelRoot modelRoot, java.util.UUID p_m_statement_id, java.util.UUID p_m_brg_id, int p_m_bridgenamelinenumber, int p_m_bridgenamecolumn, int p_m_externalentitykeyletterslinenumber, int p_m_externalentitykeyletterscolumn) { InstanceList instances = modelRoot.getInstanceList(BridgeInvocation_c.class); BridgeInvocation_c source = null; synchronized (instances) { Object[] key = {p_m_statement_id}; source = (BridgeInvocation_c) instances.get(key); if (source != null && !modelRoot.isCompareRoot()) { source.convertFromProxy(); source.batchUnrelate(); // pre-process the uuid so that we re-use null uuid instance rather then creating a new one. source.m_statement_id = IdAssigner.preprocessUUID(p_m_statement_id); // pre-process the uuid so that we re-use null uuid instance rather then creating a new one. source.m_brg_id = IdAssigner.preprocessUUID(p_m_brg_id); source.m_bridgenamelinenumber = p_m_bridgenamelinenumber; source.m_bridgenamecolumn = p_m_bridgenamecolumn; source.m_externalentitykeyletterslinenumber = p_m_externalentitykeyletterslinenumber; source.m_externalentitykeyletterscolumn = p_m_externalentitykeyletterscolumn; return source; } } // there is no instance matching the id BridgeInvocation_c new_inst = new BridgeInvocation_c( modelRoot, p_m_statement_id, p_m_brg_id, p_m_bridgenamelinenumber, p_m_bridgenamecolumn, p_m_externalentitykeyletterslinenumber, p_m_externalentitykeyletterscolumn); return new_inst; }
public static Graphnode_c resolveInstance( ModelRoot modelRoot, float p_m_width, float p_m_height, java.util.UUID p_m_elementid) { InstanceList instances = modelRoot.getInstanceList(Graphnode_c.class); Graphnode_c source = null; synchronized (instances) { Object[] key = {p_m_elementid}; source = (Graphnode_c) instances.get(key); if (source != null && !modelRoot.isCompareRoot()) { source.convertFromProxy(); source.batchUnrelate(); source.m_width = p_m_width; source.m_height = p_m_height; // pre-process the uuid so that we re-use null uuid instance rather then creating a new one. source.m_elementid = IdAssigner.preprocessUUID(p_m_elementid); return source; } } // there is no instance matching the id Graphnode_c new_inst = new Graphnode_c(modelRoot, p_m_width, p_m_height, p_m_elementid); return new_inst; }
public static ComponentResultSet_c resolveInstance( ModelRoot modelRoot, java.util.UUID p_m_id, String p_m_name, int p_m_type) { InstanceList instances = modelRoot.getInstanceList(ComponentResultSet_c.class); ComponentResultSet_c source = null; synchronized (instances) { Object[] key = {p_m_name, new UUID(0, new Long(p_m_type)), p_m_id}; source = (ComponentResultSet_c) instances.get(key); if (source != null && !modelRoot.isCompareRoot()) { source.convertFromProxy(); source.batchUnrelate(); source.m_name = p_m_name; source.m_type = p_m_type; // pre-process the uuid so that we re-use null uuid instance rather then creating a new one. source.m_id = IdAssigner.preprocessUUID(p_m_id); return source; } } // there is no instance matching the id ComponentResultSet_c new_inst = new ComponentResultSet_c(modelRoot, p_m_id, p_m_name, p_m_type); return new_inst; }
public static AssignToMember_c resolveInstance( ModelRoot modelRoot, java.util.UUID p_m_statement_id, java.util.UUID p_m_r_value_id, java.util.UUID p_m_l_value_id, int p_m_attributelinenumber, int p_m_attributecolumn) { InstanceList instances = modelRoot.getInstanceList(AssignToMember_c.class); AssignToMember_c source = null; synchronized (instances) { Object[] key = {p_m_statement_id}; source = (AssignToMember_c) instances.get(key); if (source != null && !modelRoot.isCompareRoot()) { source.convertFromProxy(); source.batchUnrelate(); // pre-process the uuid so that we re-use null uuid instance rather then creating a new one. source.m_statement_id = IdAssigner.preprocessUUID(p_m_statement_id); // pre-process the uuid so that we re-use null uuid instance rather then creating a new one. source.m_r_value_id = IdAssigner.preprocessUUID(p_m_r_value_id); source.m_attributelinenumber = p_m_attributelinenumber; source.m_attributecolumn = p_m_attributecolumn; // pre-process the uuid so that we re-use null uuid instance rather then creating a new one. source.m_l_value_id = IdAssigner.preprocessUUID(p_m_l_value_id); return source; } } // there is no instance matching the id AssignToMember_c new_inst = new AssignToMember_c( modelRoot, p_m_statement_id, p_m_r_value_id, p_m_l_value_id, p_m_attributelinenumber, p_m_attributecolumn); return new_inst; }
public static InformalArgument_c[] InformalArgumentInstances( ModelRoot modelRoot, ClassQueryInterface_c test, boolean loadComponent) { if (loadComponent) { PersistenceManager.ensureAllInstancesLoaded(modelRoot, InformalArgument_c.class); } InstanceList instances = modelRoot.getInstanceList(InformalArgument_c.class); Vector matches = new Vector(); synchronized (instances) { for (int i = 0; i < instances.size(); ++i) { InformalArgument_c x = (InformalArgument_c) instances.get(i); if (test == null || test.evaluate(x)) { if (x.ensureLoaded(loadComponent)) matches.add(x); } } if (matches.size() > 0) { InformalArgument_c[] ret_set = new InformalArgument_c[matches.size()]; matches.copyInto(ret_set); return ret_set; } else { return new InformalArgument_c[0]; } } }
public double dataLogLikelihood(InstanceList ilist) { double logLikelihood = 0; for (int ii = 0; ii < ilist.size(); ii++) { double instanceWeight = ilist.getInstanceWeight(ii); Instance inst = ilist.get(ii); Labeling labeling = inst.getLabeling(); if (labeling != null) logLikelihood += instanceWeight * dataLogProbability(inst, labeling.getBestIndex()); else { Labeling predicted = this.classify(inst).getLabeling(); // System.err.println ("label = \n"+labeling); // System.err.println ("predicted = \n"+predicted); for (int lpos = 0; lpos < predicted.numLocations(); lpos++) { int li = predicted.indexAtLocation(lpos); double labelWeight = predicted.valueAtLocation(lpos); // System.err.print (", "+labelWeight); if (labelWeight == 0) continue; logLikelihood += instanceWeight * labelWeight * dataLogProbability(inst, li); } } } return logLikelihood; }
public void printState(PrintWriter pw) { pw.println("#doc pos typeindex type bigrampossible? topic bigram"); for (int di = 0; di < topics.length; di++) { FeatureSequenceWithBigrams fs = (FeatureSequenceWithBigrams) ilist.get(di).getData(); for (int si = 0; si < topics[di].length; si++) { int type = fs.getIndexAtPosition(si); pw.print(di); pw.print(' '); pw.print(si); pw.print(' '); pw.print(type); pw.print(' '); pw.print(uniAlphabet.lookupObject(type)); pw.print(' '); pw.print(fs.getBiIndexAtPosition(si) == -1 ? 0 : 1); pw.print(' '); pw.print(topics[di][si]); pw.print(' '); pw.print(grams[di][si]); pw.println(); } } }
public double labelLogLikelihood(InstanceList ilist) { double logLikelihood = 0; for (int ii = 0; ii < ilist.size(); ii++) { double instanceWeight = ilist.getInstanceWeight(ii); Instance inst = ilist.get(ii); Labeling labeling = inst.getLabeling(); if (labeling == null) continue; Labeling predicted = this.classify(inst).getLabeling(); // System.err.println ("label = \n"+labeling); // System.err.println ("predicted = \n"+predicted); if (labeling.numLocations() == 1) { logLikelihood += instanceWeight * Math.log(predicted.value(labeling.getBestIndex())); } else { for (int lpos = 0; lpos < labeling.numLocations(); lpos++) { int li = labeling.indexAtLocation(lpos); double labelWeight = labeling.valueAtLocation(lpos); // System.err.print (", "+labelWeight); if (labelWeight == 0) continue; logLikelihood += instanceWeight * labelWeight * Math.log(predicted.value(li)); } } } return logLikelihood; }
public static ComponentInComponent_c resolveInstance( ModelRoot modelRoot, java.util.UUID p_m_id, java.util.UUID p_m_parent_id) { InstanceList instances = modelRoot.getInstanceList(ComponentInComponent_c.class); ComponentInComponent_c source = null; synchronized (instances) { Object[] key = {p_m_id}; source = (ComponentInComponent_c) instances.get(key); if (source != null && !modelRoot.isCompareRoot()) { source.convertFromProxy(); source.batchUnrelate(); // pre-process the uuid so that we re-use null uuid instance rather then creating a new one. source.m_id = IdAssigner.preprocessUUID(p_m_id); // extract 28 bit value only source.m_idLongBased = 0xfffffff & p_m_id.getLeastSignificantBits(); // pre-process the uuid so that we re-use null uuid instance rather then creating a new one. source.m_parent_id = IdAssigner.preprocessUUID(p_m_parent_id); return source; } } // there is no instance matching the id ComponentInComponent_c new_inst = new ComponentInComponent_c(modelRoot, p_m_id, p_m_parent_id); return new_inst; }