Python程序 将单数转换为复数

Python程序 将单数转换为复数

在这篇文章中,我们将学习一个将单数转换为复数的Python程序。

假设你得到了一个单数词,我们必须使用各种Python方法将其转换成复数。

使用的方法

以下是完成这一任务的各种方法 −

  • 使用regex模块

  • 使用NLTK和Pattern-en软件包

  • 使用Textblob模块

  • 使用inflect模块

方法1:使用regex模块

python中的regex模块可以根据指定的模式搜索一个字符串或一组字符串。如果你的Python中还没有这个模块,你必须安装它,这个模块通常预装在Python中。

例子

下面的程序通过指定适当的regex模式,使用regex模块返回给定单词的复数:

# importing re(regex) module
from re import *
# input word to be pluralized
inputWord = "plant"
print("The plural of the word {", inputWord, "} is:")
# checking whether the input word is ending with s,x,z or is
# ending with ah, eh, ih, oh, uh, dh, gh, kh, ph, rh, th
# with the regex pattern
if search('[sxz]', inputWord) or search('[^aeioudgkprt]h', inputWord):
   # If it is true, then get the pluraof the inputWord by adding "es" in end
   print(sub('', 'es', inputWord))
# checking whether the input word is ending with ay,ey,iy,oy,uy
# with the other regex pattern
elif search('[aeiou]y', inputWord):
   # If it is true, then get the plural
   # of the word by removing 'y' from the end and adding ies to end
      print(sub('y$', 'ies', inputWord))
# Else add it just "s" to the word at the end to make it plural
else:
   print(inputWord + 's')

输出

在执行过程中,上述程序将产生以下输出

The plural of the word { plant } is:
plants

但是,使用这种重码方法对于获得复数来说并不十分有效,因为它能正确地将一些单词复数化,而在其他情况下却无法做到这一点。因此,我们将寻找更有效的技术来确定该词的复数。

方法2:使用NLTK和Pattern-en软件包

NLTK模块

NLTK模块创建了Python应用程序来处理人类语言数据,并提供了与语料库和词汇资源的简单接口。

pattern模块

模式模块是一个开源的Python模块,用于进行各种自然语言处理操作。这个模块可以用于各种任务,包括文本处理和数据挖掘。

使用下面的命令安装模式模块

pip install pattern

使用以下代码下载所需的nltk数据 −

# importing nltk module
import nltk
nltk.download('omw-1.4')
# downloading the NLTK data to run the en function of the package module 
nltk.download('popular')

例子

下面的程序使用NLTK和Pattern-en软件包返回给定单词的复数。

# importing pluralize from pattern-en module
from pattern.en import pluralize
# passing the word to be pluralized as an argument to the 
# pluralize() function to make the word plural
print(pluralize('lion'))

输出

在执行过程中,上述程序将产生以下输出

lions

方法3:使用Textblob模块

Textblob Python模块用于处理文本数据,被称为Textblob模块。这是涉及自然语言处理问题的最简单的模块之一。

可以用下面的命令来下载这个模块。除了texblob模块外,你还需要安装textblob模块的corpora功能。

Install the textblob module using the below command −

pip install textblob 

例子

下面的程序使用Textblob模块返回给定单词的复数。

# importing TextBlob function from textblob module 
from textblob import TextBlob
# passing the word to be pluralized as an argument to the TextBlob() function 
blobWord = TextBlob('flower')

# printing the plural word of the given blob word using the pluralize() function
print(blobWord.words.pluralize())

输出

在执行过程中,上述程序将产生以下输出

['flowers']

方法4:使用inflect模块

Inflect模块

Python中的 Inflect 模块用于创建复数名词、单数名词、序数和不定冠词,以及将数字转换成单词。可以用下面的命令来安装这个模块。

安装 –

pip install inflect

算法(步骤)

以下是执行所需任务时需要遵循的算法/步骤。-

  • 使用import关键字来导入 inflect 模块。

  • 使用 engine() 函数设置inflect模块的引擎/源。

  • 使用 pluralize() 函数,将输入的单词作为参数传给它,以获得给定单词的复数,并打印出结果单词。

  • 单数名词由 plural() 函数转换为复数名词,其功能非常恰当。

例子

下面的程序使用inflect模块返回给定单词的复数—-。

# importing inflect module
import inflect
m = inflect.engine()
# input word to be pluralized 
word = 'dog'
# Pass the word to be pluralized as an argument to the plural() 
# function to make the word plural.
print("The plural form of 'dog' is: ", m.plural(word))

输出

在执行过程中,上述程序将产生以下输出

The plural form of 'dog' is:  dogs

结论

在这篇文章中,我们介绍了将给定的单词从单数改为复数的四种不同方法。我们学习了如何使用 pip 命令来安装一个模块。此外,我们还学习了如何从nltk下载数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python 教程