Example usage for com.google.common.collect HashMultiset create

List of usage examples for com.google.common.collect HashMultiset create

Introduction

In this page you can find the example usage for com.google.common.collect HashMultiset create.

Prototype

public static <E> HashMultiset<E> create() 

Source Link

Document

Creates a new, empty HashMultiset using the default initial capacity.

Usage

From source file:org.apache.niolex.common.guava.GuavaCollections.java

/**
 * @param args//from  w w w.  j a  v  a2s. co  m
 */
public static void main(String[] args) {
    Multiset<String> wordsMultiset = HashMultiset.create();
    wordsMultiset.add("abc");
    wordsMultiset.add("abc");
    wordsMultiset.add("abcd");
    System.out.println("count => " + wordsMultiset.count("abc"));
    System.out.println("count => " + wordsMultiset.count("abcd"));

    BiMap<String, String> biMap = HashBiMap.create();
    biMap.put("good", "morning");
    biMap.put("bad", "afternoon");
    System.out.println("good => " + biMap.get("good"));
    System.out.println("afternoon => " + biMap.inverse().get("afternoon"));

    RangeMap<Integer, String> rangeMap = TreeRangeMap.create();
    rangeMap.put(Range.closed(1, 11), "Nice");
    rangeMap.put(Range.openClosed(11, 15), "Girl");
    System.out.println("11 => " + rangeMap.get(11));
    System.out.println("12 => " + rangeMap.get(12));
    System.out.println("15 => " + rangeMap.get(15));
    System.out.println("16 => " + rangeMap.get(16));

    List<Integer> countUp = Ints.asList(1, 2, 3, 4, 5);
    List<Integer> countDown = Lists.reverse(countUp); // {5, 4, 3, 2, 1}
    System.out.println("countUp => " + countUp);
    System.out.println("countDown => " + countDown);
}

From source file:org.trnltk.experiment.morphology.ambiguity.AmbiguityClassifier.java

public static void main(String[] args) throws IOException, JSONException {
    int numberOfWords = 0;
    int numberOfParseResults = 0;
    final Multiset<ParseResultDifference> differenceSet = HashMultiset.create();
    final Multiset<ParseResultDifference> differenceSetWithoutRootDifferences = HashMultiset.create();

    final File folder = new File("D:\\devl\\data\\1MSentences\\split");

    final File[] files = folder.listFiles();
    if (files == null)
        throw new RuntimeException();

    final StopWatch stopWatch = new StopWatch();
    stopWatch.start();//w ww .j  av  a2s.  c  o  m
    for (int fileIndex = 0; fileIndex < files.length; fileIndex++) {
        File file = files[fileIndex];
        System.out.println("Processing file " + file);
        //            final BufferedReader reader = new BufferedReader(new FileReader(file));
        //            while (reader.ready()) {
        //                reader.readLine();
        //            }
        final ParseResultReader parseResultReader = new ParseResultReader();
        final ParseResultDiffTool parseResultDiffTool = new ParseResultDiffTool();

        final List<WordParseResultEntry> parseResultEntries = parseResultReader
                .getParseResultEntries(Files.newReader(file, Charsets.UTF_8));
        numberOfWords += parseResultEntries.size();
        //noinspection ForLoopReplaceableByForEach
        for (int parseResultEntryIndex = 0; parseResultEntryIndex < parseResultEntries
                .size(); parseResultEntryIndex++) {
            WordParseResultEntry parseResultEntry = parseResultEntries.get(parseResultEntryIndex);
            final List<ParseResult> parseResults = parseResultEntry.getParseResults();
            numberOfParseResults += parseResults.size();
            for (int i = 0; i < parseResults.size(); i++) {
                final ParseResult leftParseResult = parseResults.get(i);
                for (int j = i + 1; j < parseResults.size(); j++) {
                    final ParseResult rightParseResult = parseResults.get(j);

                    final ParseResultDifference difference = parseResultDiffTool.findDifference(leftParseResult,
                            rightParseResult);
                    final boolean added = differenceSet.add(difference);
                    if (added && difference.hasNoRootDifference() && difference.hasPartDifference())
                        differenceSetWithoutRootDifferences.add(difference);
                }
            }
        }
        //noinspection ConstantConditions
        if (fileIndex == 0)
            break;
    }

    stopWatch.stop();
    final long time = stopWatch.getTime();
    System.out.println(stopWatch);
    System.out.println(Long.valueOf(time).doubleValue() / (51));

    System.out.println("Number of words : " + numberOfWords);
    System.out.println("Number of parseResults : " + numberOfParseResults);
    System.out.println("Number of distinct differences : " + differenceSet.elementSet().size());
    System.out.println("numberOfDistinctDifferencesWithoutRootDifference : "
            + differenceSetWithoutRootDifferences.elementSet().size());

    final ImmutableMultiset<ParseResultDifference> sortedDifferenceSetWithoutRootDifferences = Multisets
            .copyHighestCountFirst(differenceSetWithoutRootDifferences);
    for (ParseResultDifference parseResultDifference : sortedDifferenceSetWithoutRootDifferences.elementSet()) {
        final int count = sortedDifferenceSetWithoutRootDifferences.count(parseResultDifference);
        if (count > 100) {
            System.out.println(count);
            System.out.println(parseResultDifference);
        }
    }

}

From source file:com.music.tools.MidiAnalyzer.java

public static void main(String[] args) {
    Score score = new Score();
    Read.midi(score, "C:\\workspace\\music\\analysis\\midi\\jarre\\EQUINOX3.MID");
    for (Part part : score.getPartArray()) {
        System.out.println(part.getTitle() + " : " + part.getInstrument());
    }/*  www.  j a  v a  2  s.co m*/
    Part part = score.getPart(1);

    System.out.println(part.getInstrument());
    part.setTempo(160);
    int previousPitch = 0;
    int prePreviousPitch = 0;
    System.out.println(score.getTimeSignature());
    Multiset<Integer> uniqueIntervals = HashMultiset.create();
    int directionChanges = 0;
    int directionRetentions = 0;

    LinkedList<Double> noteLengths = new LinkedList<>();
    for (Note note : part.getPhrase(0).getNoteArray()) {
        System.out.println(note.getPitch());
        if (!note.isRest()) {
            if (prePreviousPitch != 0) {
                int previousDiff = previousPitch - prePreviousPitch;
                int diff = note.getPitch() - previousPitch;
                if (Math.signum(previousDiff) != Math.signum(diff) && diff != 0 && previousDiff != 0) {
                    directionChanges++;
                    System.out.println(prePreviousPitch + ":" + previousPitch + ":" + note.getPitch());
                } else if (diff != 0 && previousDiff != 0) {
                    directionRetentions++;
                }
            }
            if (note.getPitch() - previousPitch != 0) {
                prePreviousPitch = previousPitch;
            }

            uniqueIntervals.add(previousPitch - note.getPitch());
            previousPitch = note.getPitch();
        }
        noteLengths.add(note.getRhythmValue());
    }

    double normalizedBeatSize = 1d * score.getNumerator() * 4 / score.getDenominator();
    System.out.println("Beat size: " + normalizedBeatSize);
    double currentBeatSize = 0;
    int beats = 0;
    int beatsWithPerfectHalves = 0;
    // reverse, to avoid off-beats
    for (Iterator<Double> it = noteLengths.descendingIterator(); it.hasNext();) {
        currentBeatSize += it.next();
        ;
        if (currentBeatSize >= normalizedBeatSize) {
            currentBeatSize = 0;
            beats++;
        }
        if (currentBeatSize == normalizedBeatSize / 2) {
            beatsWithPerfectHalves++;
        }
    }

    System.out.println("Beats:beats with perfect halves -- " + beats + ":" + beatsWithPerfectHalves);

    Hashtable<String, Object> table = PhraseAnalysis.getAllStatistics(score.getPart(1).getPhrase(0), 1, 0,
            Scales.MAJOR_SCALE);
    for (Entry<String, Object> entry : table.entrySet()) {
        System.out.println(entry.getKey() + "=" + entry.getValue());
    }
    for (Integer interval : uniqueIntervals.elementSet()) {
        System.out.println(interval + " : " + uniqueIntervals.count(interval));
    }

    System.out.println("---");

    System.out.println(directionChanges + " : " + directionRetentions);
    Play.midi(part);
}

From source file:mx.iteso.msc.bda.cassandrademo1.Attendance.java

public static void main(String[] args) {
    // TODO code application logic here
    System.out.println("Open connection to cassandra.");
    session = cassandraConnect();// w w  w .j  a va  2s  . c o m
    System.out.println("Connected.");

    String queryAttendance = "Select * from bda2016.attendance;";
    PreparedStatement allAttendance = session.prepare(queryAttendance);
    BoundStatement boundAllAttendance = allAttendance.bind();
    ResultSet allAttendances = session.execute(boundAllAttendance);

    System.out.println("Records retrieved");
    String idStudent = "";
    Integer totalAssistances = 0;

    //HashMultiset //guava
    HashMultiset<String> aggregate = HashMultiset.create();
    HashMultiset<String> aggregateStudent = HashMultiset.create();
    int assistanceCount = 0;

    for (Row row : allAttendances) {
        String courseName = row.getString("subject");
        String period = row.getString("period");
        String recordId = row.getString("Idstudent");
        aggregate.add(courseName + "_" + period);
        aggregateStudent.add(recordId + "_" + courseName + "_" + period);
        assistanceCount++;
    }

    System.out.println("Total Assistances: " + assistanceCount);

    String insertTotalAssistance = "INSERT INTO bda2016.courseattendance "
            + "(subject, period, totalattendance) values (?, ?, ?);";

    for (Multiset.Entry<String> entry : aggregate.entrySet()) {
        System.out.println("Course: " + entry.getElement() + " Assistance: " + entry.getCount());
        PreparedStatement insertAssistance = session.prepare(insertTotalAssistance);
        BoundStatement boundInsertAssistance = insertAssistance.bind(entry.getElement().split("_")[0],
                entry.getElement().split("_")[1], entry.getCount());
        session.execute(boundInsertAssistance);
    }

    String insertStudentAttendance = "INSERT INTO bda2016.studentattendance "
            + "(idstudent, subject, period, totalattendance) " + "values (?, ?, ?, ?);";

    for (Multiset.Entry<String> entry : aggregateStudent.entrySet()) {
        System.out.println("Student/Course: " + entry.getElement() + " Attendance: " + entry.getCount());
        PreparedStatement insertAssistance = session.prepare(insertStudentAttendance);
        BoundStatement boundInsertAssistance = insertAssistance.bind(entry.getElement().split("_")[0],
                entry.getElement().split("_")[1], entry.getElement().split("_")[2], entry.getCount());
        session.execute(boundInsertAssistance);
    }

    session.close();
    cluster.close();
}

From source file:mx.iteso.msc.bda.cassandrademo1.DenueAggregator.java

public static void main(String[] args) {
    // TODO code application logic here
    System.out.println("Open connection to cassandra.");
    session = cassandraConnect();//from   w  w  w . j ava2 s. c o m
    System.out.println("Connected.");

    String queryAllRecords = "Select * from inegi_denue.denue_1;";
    PreparedStatement allDenue1 = session.prepare(queryAllRecords);
    BoundStatement boundAllDenue1 = allDenue1.bind();
    ResultSet rsAllDenue1 = session.execute(boundAllDenue1);

    System.out.println("Records retrieved");
    String idStratum = "";
    Integer totalStratum = 0;

    //HashMultiset //guava
    HashMultiset<String> aggregate = HashMultiset.create();
    HashMultiset<String> aggregateStudent = HashMultiset.create();
    int stratumCount = 0;

    for (Row row : rsAllDenue1) {
        String stratumName = row.getString("estrato_personal");
        aggregate.add(stratumName);
        aggregateStudent.add(stratumName);
        stratumCount++;
    }

    System.out.println("Total Stratum: " + stratumCount);

    String insertStratum = "INSERT INTO inegi_denue.recordsbystratum " + "(stratumname, recno) values (?, ?);";

    for (Multiset.Entry<String> entry : aggregate.entrySet()) {
        System.out.println("Stratum: " + entry.getElement() + " Record Count: " + entry.getCount());
        PreparedStatement psStratum = session.prepare(insertStratum);
        BoundStatement boundStratum = psStratum.bind(entry.getElement(), entry.getCount());
        session.execute(boundStratum);
    }

    session.close();
    cluster.close();
}

From source file:org.apache.ctakes.relationextractor.eval.PrintRelationStatistics.java

public static void main(String[] args) throws Exception {
    Options options = new Options();
    CmdLineParser parser = new CmdLineParser(options);
    parser.parseArgument(args);// w w w.ja v a 2  s  .com

    CollectionReader reader = CollectionReaderFactory.createReader(XReader.class,
            FilesCollectionReader.PARAM_ROOT_FILE, options.trainDirectory.getPath());

    Multiset<Integer> mentionsBetweenCounts = HashMultiset.create();
    JCas jCas = JCasFactory.createJCasFromPath("../ctakes-type-system/desc/common_type_system.xml");
    while (reader.hasNext()) {
        reader.getNext(jCas.getCas());
        JCas goldView = jCas.getView(GOLD_VIEW_NAME);
        for (BinaryTextRelation relation : JCasUtil.select(goldView, BinaryTextRelation.class)) {
            Annotation arg1 = relation.getArg1().getArgument();
            Annotation arg2 = relation.getArg2().getArgument();
            int mentionsBetween;
            if (arg1.getBegin() < arg2.getBegin()) {
                mentionsBetween = JCasUtil
                        .selectCovered(goldView, EntityMention.class, arg1.getEnd(), arg2.getBegin()).size();
            } else {
                mentionsBetween = -JCasUtil
                        .selectCovered(goldView, EntityMention.class, arg2.getEnd(), arg1.getBegin()).size();
            }
            mentionsBetweenCounts.add(mentionsBetween);
        }
    }

    List<Integer> mentionsBetweenKeys = new ArrayList<Integer>(mentionsBetweenCounts.elementSet());
    Collections.sort(mentionsBetweenKeys);
    for (Integer mentionsBetween : mentionsBetweenKeys) {
        System.err.printf("%d x%d\n", mentionsBetween, mentionsBetweenCounts.count(mentionsBetween));
    }
}

From source file:di.uniba.it.wsd.tool.wn.BuildOccSense.java

/**
 * @param args the command line arguments
 *//*from  w  ww.j  av  a2 s. c o  m*/
public static void main(String[] args) {
    try {
        BufferedReader in = new BufferedReader(new FileReader(new File(args[0])));
        Multiset<String> synset = HashMultiset.create();
        while (in.ready()) {
            String[] values = in.readLine().split("\\s+");
            String[] keys = values[0].split("%");
            String[] poss = keys[1].split(":");
            String offset = null;
            int occ = Integer.parseInt(values[3]);
            if (poss[0].equals("1")) {
                offset = values[1] + "n";
            } else if (poss[0].equals("2")) {
                offset = values[1] + "v";
            } else if (poss[0].equals("3") || poss[0].equals("5")) {
                offset = values[1] + "a";
            } else if (poss[0].equals("4")) {
                offset = values[1] + "r";
            }
            for (int i = 0; i < occ; i++) {
                synset.add(offset);
            }
        }
        in.close();

        BufferedWriter out = new BufferedWriter(new FileWriter(new File(args[1])));
        Iterator<Multiset.Entry<String>> iterator = synset.entrySet().iterator();
        while (iterator.hasNext()) {
            Multiset.Entry<String> entry = iterator.next();
            out.append(entry.getElement()).append("\t").append(String.valueOf(entry.getCount()));
            out.newLine();
        }
        out.close();
    } catch (IOException | NumberFormatException ioex) {
        Logger.getLogger(BuildOccSense.class.getName()).log(Level.SEVERE, "IO Error", ioex);
    }
}

From source file:org.apache.mahout.knn.Vectorize20NewsGroups.java

public static void main(String[] args) throws IOException {
    String weightingCode = args[0];
    boolean normalize = weightingCode.endsWith("c");

    legalHeaders = Sets.newHashSet();//w ww . ja v  a2 s  .  c om
    Iterables.addAll(legalHeaders,
            Iterables.transform(Splitter.on(",").trimResults().split(args[1]), new Function<String, String>() {
                @Override
                public String apply(String s) {
                    return s.toLowerCase();
                }
            }));

    includeQuotes = Boolean.parseBoolean(args[2]);

    CorpusWeighting cw = CorpusWeighting.parse(weightingCode);
    if (cw.needCorpusWeights()) {
        Multiset<String> wordFrequency = HashMultiset.create();
        Set<String> documents = Sets.newHashSet();
        for (String file : Arrays.asList(args).subList(4, args.length)) {
            recursivelyCount(documents, wordFrequency, new File(file));
        }
        cw.setCorpusCounts(wordFrequency, documents.size());
    }

    int dimension = Integer.parseInt(args[3]);

    Configuration conf = new Configuration();
    SequenceFile.Writer sf = SequenceFile.createWriter(FileSystem.getLocal(conf), conf, new Path("output"),
            Text.class, VectorWritable.class);
    PrintWriter csv = new PrintWriter("output.csv");
    for (String file : Arrays.asList(args).subList(4, args.length)) {
        recursivelyVectorize(csv, sf, new File(file), cw, normalize, dimension);
    }
    csv.close();
    sf.close();
}

From source file:org.apache.mahout.knn.tools.Vectorize20NewsGroups.java

public static void main(String[] args) throws IOException {
    String weightingCode = args[0];
    boolean normalize = weightingCode.endsWith("c");

    legalHeaders = Sets.newHashSet();//  w  w w  .j  a  v a2s  . c om
    Iterables.addAll(legalHeaders,
            Iterables.transform(Splitter.on(",").trimResults().split(args[1]), new Function<String, String>() {
                @Override
                public String apply(String s) {
                    return s.toLowerCase();
                }
            }));

    includeQuotes = Boolean.parseBoolean(args[2]);

    CorpusWeighting cw = CorpusWeighting.parse(weightingCode);
    if (cw.needCorpusWeights()) {
        Multiset<String> wordFrequency = HashMultiset.create();
        Set<String> documents = Sets.newHashSet();
        for (String file : Arrays.asList(args).subList(4, args.length)) {
            recursivelyCount(documents, wordFrequency, new File(file));
        }
        cw.setCorpusCounts(wordFrequency, documents.size());
    }

    int dimension = Integer.parseInt(args[3]);

    Configuration conf = new Configuration();
    SequenceFile.Writer sf = SequenceFile.createWriter(FileSystem.getLocal(conf), conf, new Path("output-file"),
            Text.class, VectorWritable.class);
    PrintWriter csv = new PrintWriter("output-file.csv");
    for (String file : Arrays.asList(args).subList(4, args.length)) {
        recursivelyVectorize(csv, sf, new File(file), cw, normalize, dimension);
    }
    csv.close();
    sf.close();
}

From source file:org.apache.mahout.classifier.sgd.TrainNewsGroups.java

public static void main(String[] args) throws IOException {
    File base = new File(args[0]);

    Multiset<String> overallCounts = HashMultiset.create();

    int leakType = 0;
    if (args.length > 1) {
        leakType = Integer.parseInt(args[1]);
    }/*from  www. jav  a 2s .  c o m*/

    Dictionary newsGroups = new Dictionary();

    NewsgroupHelper helper = new NewsgroupHelper();
    helper.getEncoder().setProbes(2);
    AdaptiveLogisticRegression learningAlgorithm = new AdaptiveLogisticRegression(20, NewsgroupHelper.FEATURES,
            new L1());
    learningAlgorithm.setInterval(800);
    learningAlgorithm.setAveragingWindow(500);

    List<File> files = Lists.newArrayList();
    for (File newsgroup : base.listFiles()) {
        if (newsgroup.isDirectory()) {
            newsGroups.intern(newsgroup.getName());
            files.addAll(Arrays.asList(newsgroup.listFiles()));
        }
    }
    Collections.shuffle(files);
    System.out.println(files.size() + " training files");
    SGDInfo info = new SGDInfo();

    int k = 0;

    for (File file : files) {
        String ng = file.getParentFile().getName();
        int actual = newsGroups.intern(ng);

        Vector v = helper.encodeFeatureVector(file, actual, leakType, overallCounts);
        learningAlgorithm.train(actual, v);

        k++;
        State<AdaptiveLogisticRegression.Wrapper, CrossFoldLearner> best = learningAlgorithm.getBest();

        SGDHelper.analyzeState(info, leakType, k, best);
    }
    learningAlgorithm.close();
    SGDHelper.dissect(leakType, newsGroups, learningAlgorithm, files, overallCounts);
    System.out.println("exiting main");

    ModelSerializer.writeBinary("/tmp/news-group.model",
            learningAlgorithm.getBest().getPayload().getLearner().getModels().get(0));

    List<Integer> counts = Lists.newArrayList();
    System.out.println("Word counts");
    for (String count : overallCounts.elementSet()) {
        counts.add(overallCounts.count(count));
    }
    Collections.sort(counts, Ordering.natural().reverse());
    k = 0;
    for (Integer count : counts) {
        System.out.println(k + "\t" + count);
        k++;
        if (k > 1000) {
            break;
        }
    }
}