Python Program to Convert Singular to Plural

In this article, we will learn a Python Program to Convert Singular to Plural using various methods and libraries.

Converting singular words to plural forms is a common task in natural language processing. While basic rules like adding 's' work for many words, English has complex pluralization rules that require more sophisticated approaches.

Methods Used

The following are the various methods to accomplish this task ?

  • Using the regex module

  • Using NLTK and Pattern-en Packages

  • Using the TextBlob module

  • Using inflect module

Method 1: Using the regex module

The regex module searches for string patterns and can handle basic pluralization rules. However, it has limitations with irregular words and complex cases.

Example

The following program returns the plural of the given word using regex patterns ?

import re

def pluralize_with_regex(word):
    # Check if word ends with s, x, z or consonant + h
    if re.search('[sxz]$', word) or re.search('[^aeioudgkprt]h$', word):
        return re.sub('$', 'es', word)
    # Check if word ends with consonant + y
    elif re.search('[^aeiou]y$', word):
        return re.sub('y$', 'ies', word)
    # Check if word ends with vowel + y
    elif re.search('[aeiou]y$', word):
        return word + 's'
    # Default case: add 's'
    else:
        return word + 's'

# Test with different words
words = ['plant', 'box', 'city', 'toy', 'church']
for word in words:
    plural = pluralize_with_regex(word)
    print(f"The plural of '{word}' is: {plural}")
The plural of 'plant' is: plants
The plural of 'box' is: boxes
The plural of 'city' is: cities
The plural of 'toy' is: toys
The plural of 'church' is: churches

Limitation: This regex method fails with irregular plurals like "child" ? "children" or "mouse" ? "mice".

Method 2: Using NLTK and Pattern-en Packages

The pattern module provides advanced natural language processing capabilities including accurate pluralization.

Install the pattern module ?

pip install pattern

Example

from pattern.en import pluralize

# Test with various words including irregular ones
words = ['lion', 'child', 'mouse', 'goose', 'person']

for word in words:
    plural = pluralize(word)
    print(f"The plural of '{word}' is: {plural}")
The plural of 'lion' is: lions
The plural of 'child' is: children  
The plural of 'mouse' is: mice
The plural of 'goose' is: geese
The plural of 'person' is: people

Method 3: Using the TextBlob module

The TextBlob module provides simple APIs for natural language processing tasks including pluralization.

Install the textblob module ?

pip install textblob

Example

from textblob import TextBlob

# Test pluralization with TextBlob
words = ['flower', 'leaf', 'tooth', 'foot']

for word in words:
    blob_word = TextBlob(word)
    plural = blob_word.words.pluralize()
    print(f"The plural of '{word}' is: {plural[0]}")
The plural of 'flower' is: flowers
The plural of 'leaf' is: leaves
The plural of 'tooth' is: teeth
The plural of 'foot' is: feet

Method 4: Using inflect module

The inflect module is specifically designed for English word inflection and provides excellent pluralization capabilities.

Install the inflect module ?

pip install inflect

Example

import inflect

# Create inflect engine
p = inflect.engine()

# Test with various words
words = ['dog', 'woman', 'ox', 'sheep', 'fish']

for word in words:
    plural = p.plural(word)
    print(f"The plural of '{word}' is: {plural}")
The plural of 'dog' is: dogs
The plural of 'woman' is: women
The plural of 'ox' is: oxen
The plural of 'sheep' is: sheep
The plural of 'fish' is: fish

Comparison

Method Accuracy Installation Required Best For
Regex Basic No Simple cases only
Pattern-en High Yes Comprehensive NLP
TextBlob High Yes Simple API
Inflect Very High Yes Word inflection tasks

Conclusion

For accurate pluralization, use specialized libraries like inflect or pattern.en rather than regex. The inflect module provides the most comprehensive solution for English word inflection including irregular plurals.

Updated on: 2026-03-27T00:06:43+05:30

5K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements