You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
app-ideas/Projects/Word-Frequency-App.md

44 lines
1.8 KiB

# Word Frequency
**Tier:** 1-Beginner
Calculating the frequency of words in a block of text is a technique which has
various uses in algorithms such as searching, sorting, and semantic analysis.
The objective of the Word Frequency app is count the frequency of words in a
block of text and create a tabular display of each unique word in the text
along with its frequency, in descending order by frequency.
## User Stories
- [ ] User can see a text input box, a 'Translate' button, and a word
frequency table.
- [ ] User can enter text (or cut and paste) into the input box. This input
box must allow the entry of large blocks of text (maxiumum of 2048 characters).
- [ ] User can click the 'Translate' button to analyze the word frequency in
the text that has been input.
- [ ] User can see an error message if the text input box is empty.
- [ ] User can see the word frequency table populated when the 'Translate'
button is clicked. Each row in the table contains a word and the number of times
it occurs in the input text.
- [ ] User can see the word frequency table ordered in descending sequence
by word frequency.
## Bonus features
- [ ] User can see a graphical representation of the word frequency in a
bubble chart, column chart, or any other form of graphical representation the
developer chooses.
- [ ] User may choose to enter the URL of a web page whose content is to be
analyzed instead of manually entering text. (Hint: See the
[Podcast Directory](./Podcast-Directory-App.md) application for ideas).
## Useful links and resources
- [Bag of Words Model (Wikipedia)](https://en.wikipedia.org/wiki/Bag-of-words_model)
- [Semantic Analysis (Wikipedia)](https://en.wikipedia.org/wiki/Sentiment_analysis)
## Example projects
- [Word Frequency Counter](https://codepen.io/maxotar/pen/aLrwJM)
- [Bubble Chart](https://codepen.io/Quendoline/pen/pjELpM)