Example usage for com.google.common.collect Multiset count

List of usage examples for com.google.common.collect Multiset count

Introduction

In this page you can find the example usage for com.google.common.collect Multiset count.

Prototype

int count(@Nullable Object element);

Source Link

Document

Returns the number of occurrences of an element in this multiset (the count of the element).

Usage

From source file:edu.cmu.lti.oaqa.baseqa.providers.ml.classifiers.WekaProvider.java

@Override
public void train(List<Map<String, Double>> X, List<String> Y, boolean crossValidation)
        throws AnalysisEngineProcessException {
    // create attribute (including label) info
    ArrayList<Attribute> attributes = new ArrayList<>();
    ClassifierProvider.featureNames(X).stream().map(Attribute::new).forEachOrdered(attributes::add);
    Attribute label = new Attribute("__label__", ClassifierProvider.labelNames(Y));
    attributes.add(label);/*  w  ww  .j a  v a2 s  .  co m*/
    String name = Files.getNameWithoutExtension(modelFile.getName());
    datasetSchema = new Instances(name, attributes, X.size());
    datasetSchema.setClass(label);
    // add instances
    Instances trainingInstances = new Instances(datasetSchema, X.size());
    if (balanceWeight) {
        Multiset<String> labelCounts = HashMultiset.create(Y);
        double maxCount = labelCounts.entrySet().stream().mapToInt(Multiset.Entry::getCount).max()
                .orElseThrow(AnalysisEngineProcessException::new);
        for (int i = 0; i < X.size(); i++) {
            String y = Y.get(i);
            double weight = maxCount / labelCounts.count(y);
            trainingInstances.add(newInstance(X.get(i), y, weight, trainingInstances));
        }
    } else {
        for (int i = 0; i < X.size(); i++) {
            trainingInstances.add(newInstance(X.get(i), Y.get(i), 1.0, trainingInstances));
        }
    }
    // training
    try {
        classifier = AbstractClassifier.forName(classifierName, options);
        classifier.buildClassifier(trainingInstances);
    } catch (Exception e) {
        throw new AnalysisEngineProcessException(e);
    }
    // write model and dataset schema
    try {
        SerializationHelper.write(modelFile.getAbsolutePath(), classifier);
        SerializationHelper.write(datasetSchemaFile.getAbsolutePath(), datasetSchema);
    } catch (Exception e) {
        throw new AnalysisEngineProcessException(e);
    }
    // backup training dataset as arff file
    if (datasetExportFile != null) {
        try {
            ArffSaver saver = new ArffSaver();
            saver.setInstances(trainingInstances);
            saver.setFile(datasetExportFile);
            saver.writeBatch();
        } catch (IOException e) {
            throw new AnalysisEngineProcessException(e);
        }
    }
    if (crossValidation) {
        try {
            Evaluation eval = new Evaluation(trainingInstances);
            Random rand = new Random();
            eval.crossValidateModel(classifier, trainingInstances, 10, rand);
            LOG.debug(eval.toSummaryString());
        } catch (Exception e) {
            throw new AnalysisEngineProcessException(e);
        }
    }
}

From source file:com.memonews.mahout.sentiment.SentimentModelHelper.java

Vector encodeFeatureVector(final File file, final Multiset<String> overallCounts) throws IOException {
    final Multiset<String> words = ConcurrentHashMultiset.create();

    final BufferedReader reader = Files.newReader(file, Charsets.UTF_8);
    try {//from  w  w w. j  a va 2s  . co  m
        countWords(analyzer, words, reader, overallCounts);
    } finally {
        Closeables.closeQuietly(reader);
    }

    final Vector v = new RandomAccessSparseVector(FEATURES);
    bias.addToVector("", 1, v);
    for (final String word : words.elementSet()) {
        encoder.addToVector(word, Math.log1p(words.count(word)), v);
    }

    return v;
}

From source file:org.sonar.plugins.core.issue.IssueCountersDecorator.java

private void saveIssuesForSeverity(DecoratorContext context, RulePriority ruleSeverity,
        Multiset<RulePriority> severitiesBag) {
    Metric metric = SeverityUtils.severityToIssueMetric(ruleSeverity);
    if (context.getMeasure(metric) == null) {
        Collection<Measure> children = context.getChildrenMeasures(MeasuresFilters.metric(metric));
        int sum = MeasureUtils.sum(true, children).intValue() + severitiesBag.count(ruleSeverity);
        context.saveMeasure(metric, (double) sum);
    }//from ww  w. j  ava 2 s  .  c om
}

From source file:org.dllearner.utilities.examples.AutomaticNegativeExampleFinderSPARQL2.java

private SortedSet<OWLIndividual> negativeExamplesBySiblingClasses(Multiset<OWLClass> positiveExamplesTypes,
        int cnt, int totalCnt) {
    logger.info("Applying sibling classes strategy...");
    SortedSet<OWLIndividual> negExamples = new TreeSet<>();

    // for each type of the positive examples
    for (OWLClass nc : positiveExamplesTypes.elementSet()) {
        int frequency = positiveExamplesTypes.count(nc);

        // get sibling classes
        Set<OWLClass> siblingClasses = sr.getSiblingClasses(nc);
        siblingClasses = filterByNamespace(siblingClasses);
        logger.info("Sibling classes: " + siblingClasses);

        int limit = (int) Math
                .ceil(((double) frequency / positiveExamplesTypes.size()) / siblingClasses.size() * cnt);

        // get instances for each sibling class
        for (OWLClass siblingClass : siblingClasses) {
            SortedSet<OWLIndividual> individuals = sr.getIndividualsExcluding(siblingClass, nc, totalCnt);
            individuals.removeAll(negExamples);
            SetManipulation.stableShrink(individuals, limit);
            negExamples.addAll(individuals);
        }//  www  . j ava2  s  .  c o  m
    }
    negExamples = SetManipulation.stableShrink(negExamples, cnt);
    logger.info("Negative examples(" + negExamples.size() + "): " + negExamples);
    return negExamples;
}

From source file:org.dllearner.algorithms.pattern.OWLAxiomPatternFinder.java

private synchronized void addOntologyPatterns(URI physicalURI, OWLOntology ontology,
        Multiset<OWLAxiom> patterns) {
    int ontologyId = addOntology(physicalURI, ontology);
    for (OWLAxiom pattern : patterns.elementSet()) {
        try {/*from   w w w  .  j  a  v  a  2 s  .  c  o m*/
            int patternId = addPattern(pattern);
            int occurrences = patterns.count(pattern);
            insertOntologyPatternPs.setInt(1, ontologyId);
            insertOntologyPatternPs.setInt(2, patternId);
            insertOntologyPatternPs.setInt(3, occurrences);
            insertOntologyPatternPs.execute();
        } catch (SQLException e) {
            System.err.println("Adding pattern\n" + pattern + "\nfailed." + e.getMessage());
        }
    }
}

From source file:sklearn.cluster.KMeans.java

@Override
public ClusteringModel encodeModel(Schema schema) {
    int[] shape = getClusterCentersShape();

    int numberOfClusters = shape[0];
    int numberOfFeatures = shape[1];

    List<? extends Number> clusterCenters = getClusterCenters();
    List<Integer> labels = getLabels();

    Multiset<Integer> labelCounts = HashMultiset.create();

    if (labels != null) {
        labelCounts.addAll(labels);//from   w  ww  .java2  s .  com
    }

    List<Cluster> clusters = new ArrayList<>();

    for (int i = 0; i < numberOfClusters; i++) {
        Array array = PMMLUtil
                .createRealArray(MatrixUtil.getRow(clusterCenters, numberOfClusters, numberOfFeatures, i));

        Cluster cluster = new Cluster().setId(String.valueOf(i))
                .setSize((labelCounts.size() > 0 ? labelCounts.count(i) : null)).setArray(array);

        clusters.add(cluster);
    }

    List<Feature> features = schema.getFeatures();

    List<ClusteringField> clusteringFields = ClusteringModelUtil.createClusteringFields(features);

    ComparisonMeasure comparisonMeasure = new ComparisonMeasure(ComparisonMeasure.Kind.DISTANCE)
            .setCompareFunction(CompareFunction.ABS_DIFF).setMeasure(new SquaredEuclidean());

    Output output = ClusteringModelUtil.createOutput(FieldName.create("Cluster"), clusters);

    ClusteringModel clusteringModel = new ClusteringModel(MiningFunction.CLUSTERING,
            ClusteringModel.ModelClass.CENTER_BASED, numberOfClusters, ModelUtil.createMiningSchema(schema),
            comparisonMeasure, clusteringFields, clusters).setOutput(output);

    return clusteringModel;
}

From source file:bots.mctsbot.ai.bots.bot.gametree.rollout.BucketRollOut.java

private double[] calcDeadCardWeights(Multiset<Integer> ranks, Multiset<Integer> deadRanks) {
    Iterator<Integer> iter = ranks.iterator();
    double[] deadCardWeights = new double[nbBuckets];
    for (int bucket = 0; bucket < nbBuckets; bucket++) {
        double nbDead = 0;
        for (int j = 0; j < nbSamplesPerBucket; j++) {
            int rank = iter.next();
            double count = ranks.count(rank);
            double deadCount = deadRanks.count(rank);
            nbDead += deadCount / count;
        }//from   w  w w  . j a va2  s  .  co  m
        deadCardWeights[bucket] = ((nbSamplesPerBucket - nbDead) / nbSamplesPerBucket);
    }
    return deadCardWeights;
}

From source file:org.dllearner.utilities.examples.AutomaticNegativeExampleFinderSPARQL2.java

private SortedSet<OWLIndividual> negativeExamplesBySuperClasses(Multiset<OWLClass> positiveExamplesTypes,
        Set<OWLIndividual> negativeExamples, int cnt, int totalCnt) {
    logger.info("Applying super class strategy...");
    SortedSet<OWLIndividual> negExamples = new TreeSet<>();
    //for each type of the positive examples
    for (OWLClass nc : positiveExamplesTypes.elementSet()) {
        int frequency = positiveExamplesTypes.count(nc);
        //get super classes
        Set<OWLClassExpression> superClasses = sr.getSuperClasses(nc);
        superClasses.remove(df.getOWLThing());
        //               superClasses.remove(Thing.instance);
        superClasses.remove(df.getOWLClass(OWLRDFVocabulary.RDFS_RESOURCE.getIRI()));
        superClasses = filterByNamespace(superClasses);
        logger.info("Super classes: " + superClasses);

        int limit = (int) Math
                .ceil(((double) frequency / positiveExamplesTypes.size()) / superClasses.size() * cnt);
        //get instances for each super class
        for (OWLClassExpression superClass : superClasses) {
            SortedSet<OWLIndividual> individuals = sr.getIndividualsExcluding(superClass, nc, totalCnt);
            individuals.removeAll(negativeExamples);
            individuals.removeAll(negExamples);
            SetManipulation.stableShrink(individuals, limit);
            negExamples.addAll(individuals);
        }/*from ww  w.  j a v a2  s. c om*/
    }
    negExamples = SetManipulation.stableShrink(negExamples, cnt);
    logger.info("Negative examples(" + negExamples.size() + "): " + negExamples);
    return negExamples;
}

From source file:org.sonar.plugins.core.sensors.ViolationsDecorator.java

private void computeViolationsPerSeverities(DecoratorContext context) {
    Multiset<RulePriority> severitiesBag = HashMultiset.create();
    for (Violation violation : context.getViolations()) {
        severitiesBag.add(violation.getSeverity());
    }//  ww w  .  j  ava  2  s  .  c om

    for (RulePriority severity : RulePriority.values()) {
        Metric metric = SeverityUtils.severityToViolationMetric(severity);
        if (context.getMeasure(metric) == null) {
            Collection<Measure> children = context.getChildrenMeasures(MeasuresFilters.metric(metric));
            int sum = MeasureUtils.sum(true, children).intValue() + severitiesBag.count(severity);
            context.saveMeasure(metric, (double) sum);
        }
    }
}

From source file:org.softinica.maven.jmeter.report.analyser.ThroughputAnalyzer.java

@Override
protected JFreeChart createChart(PageDefinition definition, Input input) {
    Map<String, Multiset<Long>> allSeries = new HashMap<String, Multiset<Long>>();
    for (Sample sample : input.getSamples()) {
        Multiset<Long> rps = allSeries.get(sample.getLabel());
        if (rps == null) {
            rps = TreeMultiset.create();
            allSeries.put(sample.getLabel(), rps);
        }/*from w w  w .ja v a  2 s .c  om*/
        rps.add(((sample.getTimestamp() + (long) sample.getValue()) / 1000) * 1000);
    }
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    for (String label : allSeries.keySet()) {
        Multiset<Long> rps = allSeries.get(label);
        TimeSeries series = new TimeSeries(label);
        for (Long key : rps) {
            series.addOrUpdate(new Second(new Date(key)), rps.count(key));
        }
        dataset.addSeries(series);
    }

    return ChartFactory.createTimeSeriesChart(definition.getTitle(), "Time", "Requests/second", dataset);
}