In: Computer Science
Word Frequencies (Concordance)
1. Use a text editor to create a text file (ex: myPaper.txt) It should contain at least 2 paragraphs with around 200 or more words.
2. Write a Python program (HW19.py) that
3. Your program will produce a dictionary of words with the number of times each occurs. It maps a word to the number of times the word occurs
NOTES:
BONUS +5 pts:
This is python program which opens mypaper.txt file and find the occurences of words in the file and display it in alphabetical order.
#HW19.py
from collections import *
def frequency_sortedwords(n):
f = open(n, "r")
s=f.read()
l=s.split()
for i in l:
if( ord(i[-1])<65 or ord(i[-1])>90 or ord(i[-1])<97 or ord[-1]>122 or i=='.' or i==','):
i=i[ :-1]
d=Counter(l)
d1=dict(d)
print("\t\t\t\tWord\t\t\t\tNo. of occurence")
for k, v in d1.items():
print ("%40s\t%10d" % ( k, v))
#main
n=input("Enter filename:")
frequency_sortedwords(n)
mypaper.txt
Algorithms are used to manipulate the data contained in data
structures
When working with data structures algorithms are used to perform
operations on the stored dataA complex algorithm is often divided
into smaller units called modules
This process of dividingan algorithm into modules is called
modularization
The key advantages of modularization are as follows:
It makes the complex algorithm simpler to design and
implement
Each module can be designed independently While designing one
module the details of other modules can be ignored thereby
enhancing clarity in design which in turn simplifiesimplementation
debugging testing documenting and maintenance of the overall
algorithm
There are two main approaches to design an algorithm top-down
approach and bottom-up approachTop-down approach: A top-down design
approach starts by dividing the complex algorithm into one or more
modules
These modules can further be decomposed into one or more
sub-modules and this process of decomposition is iterated until the
desired level of module complexity is achieved
Top-down design method is a form of stepwise refinement where we
begin with the
topmost module and incrementally add modules that it calls
Therefore in a top-down approach we start from an abstract design
and then at each step this design is refined into more concrete
levels until a level is reached that requires no further
refinementBottom-up approach
A bottom-up approach is just the reverse of top-down approach In
the bottom-up design we start with designing the most basic or
concrete modules and then proceed towards designing higher level
modules
The higher level modules are implemented by using the operations
performed by lower level modules
Thus in this approach sub-modules are grouped together to form a
higher level module All the higher level modules are clubbed
together to form even higher level modules This process is repeated
until the design of the complete algorithm is obtained