Word frequency Python
Word frequency Python
In this tutorial, we will write the Python program to count the occurrence of a word (word frequency) in a given sentence. We will learn all the approaches which we are going to use to write such a program. In the output of the program, the user will get the word frequency for each word used in the sentence.
Example::
"An apple a day keeps the doctor away but doctor should also eat an apple every day."
In the above-given sentence:
- An occurred two times
- Apple occurred two times
- A occurred only one time
- Doctor occurred two times
- Day also occurred two times, etc.
So, we can see that that's how the occurrence of the words or word frequency from a sentence is counted.
We will write a program where we will get the frequency of each word present in the sentence in the way mentioned above as an output of it. We will use the following approaches in our program to get the word frequency in the output:
1). Using the Python list approach
2). Using Python set approach
3). Using the Python dictionary approach
Let's learn about all these approaches in detail and write a Python program with each of them.
Method 1: Using Python list:
In this method, we will follow the following steps for developing a Python program to get the word frequency in the output:
Step 1: We will get the sentence or set of words as string type from the user in the input form.
Step 2: We will split the words of the given string into a list by using string.split() function on the string with delimiter space.
Step 3: Now, we will initialize an empty list in the program.
Step 4: After that, if any word is not present in the new empty list that we have initialized then, we will append the word from the given string.
Step 5: We will use iteration on the new list and then use the count () function.
Step 6: We will print the frequency of each word in the output by the print statement.
Now, let's understand the implementation of these steps or approach by using them in the following program:
Example –
# Define a default function for word frequency
def worfreq (String):
# Break the string into a list of words using string.split () function
String = String.split ()
NewList = [] # initializing an empty list
# Using for loops till all the given values in string
for j in String:
# Checking the duplicity using empty list
if j not in NewList:
# Appending values in the empty list
NewList.append (j)
# Iterating over the new list
for j in range (0, len (NewList)):
# Using count () function and printing result in the output
print ('Frequency of', NewList [j], 'word is :', String.count (NewList [j]))
def main ():
# Taking sentence as user input
mkr = input ("Enter your input sentence: ")
worfreq (mkr) # calling out default function
if __name__=="__main__":
main () # calling the main function
Output:
Enter your input sentence: An apple is mango but mango is not an apple Frequency of An word is : 2 Frequency of apple word is : 2 Frequency of is word is : 2 Frequency of mango word is : 2 Frequency of but word is : 1 Frequency of not word is : 1
As we can see in the output, we have got word frequency for every word that we have given in the sentence as the user input in the program.
Method 2: Using Python set
In the Python set approach, we will use to store the collection of unique words from the sentence provided in the program. We will use the following steps in this method to write the program:
Step 1: As the first method, here we will also take the sentence in string form as user input and split the words from the given sentence using string.split() function with delimiter space.
Step 2: Now, we will use the set() function to remove all the duplicate or multiple occurred words from the sentence and store the unique words inside the sentence.
Step 3: After that, we will iterate over the defined set of unique words and use the count () function to get the word frequency.
Step 4: We will use the print statement to print the word frequency as a result in output.
Let's understand this method by implementing the above steps in the following example program:
Example –
# Define a default function for word frequency
def worfreq (String):
# Break the given string into a list of words using string.split () function
NewList = String.split ()
# Defining a set for unique words of the sentence
UqWords = set (NewList)
# Iterating over the set of unique words
for words in UqWords :
# Using count () function for word frequency
print ('Frequency of ', words , 'word is:', NewList.count (words)) # printing result in output
def main ():
# Taking sentence as user input
mkr = input ("Enter your input sentence: ")
worfreq (mkr) # calling out default function
if __name__=="__main__":
main () # calling the main function
Output:
Enter your input sentence: An apple is mango but mango is not An apple Frequency of but word is: 1 Frequency of apple word is: 2 Frequency of not word is: 1 Frequency of is word is: 2 Frequency of An word is: 2 Frequency of mango word is: 2
Method 3: Using Python dictionary
In this method, we will use the Python dictionary and its functions to get the word frequency from a given sentence. Now, let's understand the implementation of this approach by using it in the following program:
Example –
# Define a default function for word frequency
def count (elemen):
# Checking if words in the sentence have '.' at last and if so then we will ignore it
if elemen [-1] == '.':
elemen = elemen [0:len (elemen) - 1]
# Using dictionary keys for checking duplicity in given sentence
if elemen in dictation:
dictation [elemen] += 1
# Defining elements inside the empty dictionary
else:
dictation.update ({elemen: 1})
# Taking sentence as user input
mkr = input ("Enter your input sentence: ")
# Define an empty dictionary
dictation = {}
# Splitting all words of the given string using string.split ()
NewList = mkr.split ()
# Counting each word from string using count function
for elemen in NewList:
count (elemen)
# Getting the word frequency as key values from new dictionary
for AllKey in dictation: # iterating over keys from dictionary
print ("Frequency of ", AllKey, "word is", end = " ")
print (":", end = " ")
print (dictation [AllKey], end = " ") # printing result in output
print ()
Output:
Enter your input sentence: An apple is mango but mango is not An apple Frequency of An word is : 2 Frequency of apple word is : 2 Frequency of is word is : 2 Frequency of mango word is : 2 Frequency of but word is : 1 Frequency of not word is : 1
Explanation –
As we can see in the output, we have got word frequency for each word that is present in the sentence that we gave as the user input in the program. So, that’s how we can use the dictionary approach in a Python program to get the word frequency.
