Question
Save the file WordCount.java and mobydick.txt files, and then modify the word count program to print every word that appeared in the book at least
Save the file WordCount.java and mobydick.txt files, and then modify the word count program to print every word that appeared in the book at least 10 times, in sorted order from least to most occurrences.
As an additional item for the WordCount program, please adapt a Scanner change that reduces the problem of punctuation making words seem different when they're not. If your scanner object is called input, use the following line to change its parsing for the purpose:
input.useDelimiter("[^a-zA-Z']+");
This will cause input to treat any string of characters that are not letters or apostrophes (single quote) as white space. It's not perfect, but it does reduce the punctuation noise.
WordCount.Java FILE
/* * Your file header comment block goes above this line * * WordCount uses a map to implement a word count, so that the user can see * which words occur the most frequently in the book "Moby Dick". Note the use * of a class constant to govern the output size. */
import java.io.*; import java.util.*;
public class WordCount { // minimum number of occurrences needed to be printed public static final int OCCURRENCES = 1000; public static void main(String[] args) throws FileNotFoundException { System.out.println("This program displays the most"); System.out.println("frequently occurring words from"); System.out.println("the book Moby Dick."); System.out.println(); // read the book into a map Scanner in = new Scanner(new File("mobydick.txt")); Map wordCountMap = getCountMap(in); for (String word : wordCountMap.keySet()) { int count = wordCountMap.get(word); if (count > OCCURRENCES) { System.out.println(word + " occurs " + count + " times."); } } } // Reads book text and returns a map from words to counts public static Map getCountMap(Scanner in) { Map wordCountMap = new TreeMap();
while (in.hasNext()) { String word = in.next().toLowerCase(); if (!wordCountMap.containsKey(word)) { // never seen this word before wordCountMap.put(word, 1); } else { // seen this word before; increment count int count = wordCountMap.get(word); wordCountMap.put(word, count + 1); } } return wordCountMap; } }
mobydick.txt FILE
1851 MOBY DICK; OR THE WHALE by Herman Melville CHAPTER 1 Loomings
Call me Ishmael. Some years ago- never mind how long precisely- having little or no money in my purse, and nothing particular to interest me on shore, I thought I would sail about a little and see the watery part of the world. It is a way I have of driving off the spleen and regulating the circulation. Whenever I find myself growing grim about the mouth; whenever it is a damp, drizzly November in my soul; whenever I find myself involuntarily pausing before coffin warehouses, and bringing up the rear of every funeral I meet; and especially whenever my hypos get such an upper hand of me, that it requires a strong moral principle to prevent me from deliberately stepping into the street, and methodically knocking people's hats off- then, I account it high time to get to sea as soon as I can. This is my substitute for pistol and ball. With a philosophical flourish Cato throws himself upon his sword; I quietly take to the ship. There is nothing surprising in this. If they but knew it, almost all men in their degree, some time or other, cherish very nearly the same feelings towards the ocean with me. There now is your insular city of the Manhattoes, belted round by wharves as Indian isles by coral reefs- commerce surrounds it with her surf. Right and left, the streets take you waterward. Its extreme downtown is the battery, where that noble mole is washed by waves, and cooled by breezes, which a few hours previous were out of sight of land. Look at the crowds of water-gazers there. Circumambulate the city of a dreamy Sabbath afternoon. Go from Corlears Hook to Coenties Slip, and from thence, by Whitehall, northward. What do you see?- Posted like silent sentinels all around the town, stand thousands upon thousands of mortal men fixed in ocean reveries. Some leaning against the spiles; some seated upon the pier-heads; some looking over the bulwarks of ships from China; some high aloft in the rigging, as if striving to get a still better seaward peep. But these are all landsmen; of week days pent up in lath and plaster- tied to counters, nailed to benches, clinched to desks. How then is this? Are the green fields gone? What do they here? But look! here come more crowds, pacing straight for the water, and seemingly bound for a dive. Strange! Nothing will content them but the extremest limit of the land; loitering under the shady lee of yonder warehouses will not suffice. No. They must get just as nigh the water as they possibly can without falling And there they stand- miles of them- leagues. Inlanders all, they come from lanes and alleys, streets avenues- north, east, south, and west. Yet here they all unite. Tell me, does the magnetic virtue of the needles of the compasses of all those ships attract them thither? Once more. Say you are in the country; in some high land of lakes. Take almost any path you please, and ten to one it carries you down in a dale, and leaves you there by a pool in the stream. There is magic in it. Let the most absent-minded of men be plunged in his deepest reveries- stand that man on his legs, set his feet a-going, and he will infallibly lead you to water, if water there be in all that region. Should you ever be athirst in the great American desert, try this experiment, if your caravan happen to be supplied with a metaphysical professor. Yes, as every one knows, meditation and water are wedded for ever.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started