gives an association whose keys are the distinct words identified in string, and whose values give the number of times those words appear in string.


gives counts of the distinct n-grams consisting of runs of n words in string.

Details and Options

  • WordCounts[string,] identifies words in string in the same way as TextWords.
  • In WordCounts[string,n], words that are considered part of an n-gram must appear consecutively in string, not separated by nonword characters other than whitespace.
  • WordCounts has the option IgnoreCase. With the setting IgnoreCase->True, letters are in effect all converted to lower case before being counted.


open allclose all

Basic Examples  (1)

Count distinct words in a string:

Count distinct 2-grams:

Options  (1)

IgnoreCase  (1)

Count words regardless of case:

Count 2-grams regardless of case:

Applications  (2)

Find the number of times the main characters Sherlock Holmes and John Watson are mentioned in some novels of Arthur Conan Doyle:

Visualize the results:

Retrieve Miguel Cervantes's novel Don Quixote from ExampleData to test the empirical Zipf law:

Generate the frequency table of all words in this text:

Zipf's law asserts that the frequency of a word versus its rank in the frequency table follows approximately a linear relation in a log-log scale. Test this statement on the first 1,000 most frequent words:

The result is close to . Visualize the fit together with the actual data:

Neat Examples  (1)

Find the 20 most frequently occurring words in a body of text:

Do the same for 2-grams:

Introduced in 2015