-
Notifications
You must be signed in to change notification settings - Fork 0
/
PY0101EN-3-4-TextAnalysis.py
38 lines (32 loc) · 1.4 KB
/
PY0101EN-3-4-TextAnalysis.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# TEXT ANALYSIS ----------- CREATING A CLASS WITH METHODS
# You have been recruited by your friend, a linguistics enthusiast,
# to create a utility tool that can perform analysis on a given piece of text.
# Complete the class 'analysedText' with the following methods -
class analysedText(object):
# Constructor - Takes argument 'text',makes it lower case and removes all punctuation.
# Assume only the following punctuation is used - period (.),
# exclamation mark (!), comma (,) and question mark (?). Store the argument in "fmtText"
def __init__ (self, text):
# remove punctuation
formattedText = text.replace('.','').replace('!','').replace('?','').replace(',','')
# make text lowercase
formattedText = formattedText.lower()
self.fmtText = formattedText
# freqAll - returns a dictionary of all unique words in the text
# along with the number of their occurences.
def freqAll(self):
# split text into words
wordList = self.fmtText.split(' ')
# Create dictionary
freqMap = {}
for word in set(wordList): # use set to remove duplicates in list
freqMap[word] = wordList.count(word)
return freqMap
# freqOf - returns the frequency of the word passed in argument.
def freqOf(self,word):
# get frequency map
freqDict = self.freqAll()
if word in freqDict:
return freqDict[word]
else:
return 0