# Word Frequency in a Python String

This tutorial provides several techniques to count the frequency of each word in a Python string, followed by simple examples.

Here, we have to write a Python program that will accept a string as input and calculate the occurrence of each word in it. We can address this problem with many programming logic. Let’s find out each solution one by one.

## Python Program – Compute Frequency of Words in a String

It is always exciting to solve a problem by taking diverse approaches. A real programmer keeps trying and considers doing things in a better way.

### Using List to count the word frequency in a string

Let’s see how can we use a list to count the occurrences of each word in a string. Following is the step by step detail:

• The first thing, we’ll do it is to convert the string to a list. Python string has a split() method. It takes a string and some separator (actually a space in our case) to return a list.
• Next, we’ll need to use another list that will be empty initially.
• After that, we’ll store unique values of the first list into the second one.
• Finally, we’ll use the Python range to iterate string list having unique values that mean inside a loop.
• In the loop, the count() function will give us the count of each unique word present in the parent string.

See the full logic in the below coding snippet.

```"""
Program:
Python program to count frequency of each word in a string
"""
def get_word_freq(input_string):

# convert the input string into a list of words
input_string_list = input_string.split()

print("*******************")
print("input_string_list = ", input_string_list)
print("*******************n")

unique_string_list = []

# iterate the input string list and find unique words
for i in input_string_list:

# test for duplicate values
if i not in unique_string_list:

# add unique words to second list
unique_string_list.append(i)

print("*******************")
print("unique_string_list = ", unique_string_list)
print("*******************n")

print("*******************")
for i in range(0, len(unique_string_list)):

# compute word frequency in input string
print('Word Frequency [{}]: {}'.format(unique_string_list[i], input_string_list.count(unique_string_list[i])))

print("*******************")

def Driver():
input_string ='python csharp javascript php python javascript csharp python csharp php'
get_word_freq(input_string)

if __name__=="__main__":
Driver()          # call Driver() function
```

The result of the above coding snippet is as follows:

```*******************
input_string_list =  ['python', 'csharp', 'javascript', 'php', 'python', 'javascript', 'csharp', 'python', 'csharp', 'php']
*******************

*******************
unique_string_list =  ['python', 'csharp', 'javascript', 'php']
*******************

*******************
Word Frequency [python]: 3
Word Frequency [csharp]: 3
Word Frequency [javascript]: 2
Word Frequency [php]: 2
*******************```

Sometimes, you might also need to convert a list to string, so have yourself go over it.

### Using Python set method to get the word frequency

Subsequently, we can use Python’s set() function to compute the frequency of each word in a string. Given below are some high-level steps to accomplish the task.

• Again, as in the first method, we did the splitting of the input string, here also, we have to do it.
• After that, we’ll use the Python Set to remove the duplicates from the given string. In Python, the Set, by definition, has unique values and ignores the copies.
• Finally, we’ll traverse over the set values and count the occurrences of each word.

See the full logic in the below coding snippet.

```"""
Program:
Python program to count frequency of each word in a string
"""
def get_word_freq(input_string):

# break the string into list of words
input_string_list = input_string.split()

# gives set of unique words
unique_string_set = set(input_string_list)

print("*******************")
print("input_string_list = ", input_string_list)
print("*******************n")

print("*******************")
print("unique_string_set = ", unique_string_set)
print("*******************n")

for entry in unique_string_set :
print('Frequency of ', entry , 'is :', input_string_list.count(entry))

# driver code
if __name__ == "__main__":

input_string ='python csharp javascript php python javascript csharp python csharp php'

# calling the freq function
get_word_freq(input_string)
```

The result of the above coding snippet is as follows:

```*******************
input_string_list =  ['python', 'csharp', 'javascript', 'php', 'python', 'javascript', 'csharp', 'python', 'csharp', 'php']
*******************

*******************
unique_string_set =  {'csharp', 'javascript', 'python', 'php'}
*******************

Frequency of  csharp is : 3
Frequency of  javascript is : 2
Frequency of  python is : 3
Frequency of  php is : 2```