List of usage examples for com.google.common.collect HashMultiset create
public static <E> HashMultiset<E> create()
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; } } }