将单数转换为复数的 Python 程序

pythonserver side programmingprogramming

在本文中,我们将学习将单数转换为复数的 Python 程序。

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

使用的方法

以下是完成此任务的各种方法 -

  • 使用 regex 模块

  • 使用 NLTK 和 Pattern-en 包

  • 使用 Textblob 模块

  • 使用 inflect 模块

方法 1:使用 regex 模块

python 中的 regex 模块根据搜索字符串或字符串组按指定的模式。如果您的 Python 中尚不存在该模块,则必须安装它,该模块通常随 Python 预安装。

示例

以下程序通过指定适当的正则表达式模式,使用正则表达式模块返回给定单词的复数形式 −

# 导入 re(regex) 模块
from re import *
# 输入要复数化的单词
inputWord = "plant"
print("单词 {", inputWord, "} 的复数形式为:")
# 检查输入单词是否以 s、x、z 结尾或
# 以 ah、eh、ih、oh、uh、dh、gh、kh、ph、rh、th 结尾
# 使用正则表达式模式
if search('[sxz]$', inputWord) or search('[^aeioudgkprt]h$', inputWord):
    # 如果为真,则通过在末尾添加"es"来获取 inputWord 的复数形式
   	print(sub('$', 'es', inputWord))
# 检查输入的单词是否以 ay、ey、iy、oy、uy 结尾
# 使用其他正则表达式模式
elif search('[aeiou]y$', inputWord):
    # 如果为真,则获取单词的复数形式
    # 通过从末尾删除"y"并在末尾添加 ies
    print(sub('y$', 'ies', inputWord))
# 否则,在单词末尾添加"s"以使其成为复数
else:
   print(inputWord + 's')

输出

执行时,上述程序将生成以下输出 -

The plural of the word { plant } is:
plants

但是,使用这种正则表达式方法获取复数形式不是很有效,因为它正确地将某些单词复数化,而在其他情况下却无法做到这一点。因此,我们将寻找更有效的技术来确定单词的复数形式。

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

NLTK 模块

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

模式模块

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

使用以下命令安装模式模块

pip install pattern

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

# 导入 nltk 模块
import nltk
nltk.download('omw-1.4')
# 下载 NLTK 数据以运行包模块的 en 函数
nltk.download('popular')

示例

以下程序使用 NLTK 和 Pattern-en 包返回给定单词的复数形式 -

# 从 pattern-en 导入 pluralize模块
from pattern.en import pluralize
# 将要复数化的单词作为参数传递给
# pluralize() 函数以使单词复数化
print(pluralize('lion'))

输出

执行时,上述程序将生成以下输出 -

lions

方法 3:使用 Textblob 模块

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

以下命令可用于下载此模块。除了 texblob 模块之外,您还需要安装 textblob 模块的语料库功能。

使用以下命令安装 textblob 模块 −

pip install textblob 

示例

以下程序使用 Textblob 模块返回给定单词的复数形式 −

# 从 textblob 模块导入 TextBlob 函数
from textblob import TextBlob
# 将要复数化的单词作为参数传递给 TextBlob() 函数
blobWord = TextBlob('flower')

# 使用 pluralize() 函数打印给定 blob 单词的复数形式
print(blobWord.words.pluralize())

输出

执行时,上述程序将生成以下输出 -

['flowers']

方法 4:使用 inflect 模块

Inflect 模块

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

安装 −

pip install inflect

算法(步骤)

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

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

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

  • 使用 pluralize() 函数通过将输入单词作为参数传递给它来获取给定单词的复数并打印结果单词。

  • 单数名词通过 plural() 函数转换为复数名词,该函数非常合适。

示例

以下程序使用 inflect 模块返回给定单词的复数 −

# 导入 inflect 模块
import inflect
m = inflect.engine()
# 输入要复数化的单词
word = 'dog'
# 将要复数化的单词作为参数传递给 plural()
# 函数,使单词变为复数。
print("'dog' 的复数形式为: ", m.plural(word))

输出

执行时,上述程序将生成以下输出 -

'dog' 的复数形式为:dogs

结论

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


相关文章