当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Singular转Plural用法及代码示例


在本文中,我们将了解如何使用 Python 的 Inflect 模块对给定单词进行复数形式。

给定单词复数的各种方法

  • 使用正则表达式
  • 使用NLTK和Pattern-en包
  • 使用文本块
  • 使用变形

方法1:在Python中使用regex对给定单词进行复数形式

Regex 使用特定模式查找字符串或字符串集的 Python 模块称为 regex 模块。该模块通常随 Python 一起预装,但以防万一您的 Python 中不存在该模块。

逐步实施:

第一步:首先导入re库。

from re import *

第 2 步:现在,定义该单词并将其声明在变量中。

word="#Define the word"

步骤3:然后,运行if-else循环来检查字符串末尾是否包含某些字母,并将它们替换为某些字符以使其成为复数。在此步骤中,我们检查单词是否以 s、x 或 z 结尾或以 ‘ah’, ‘eh’, ‘ih’, ‘oh’, ‘uh’, ‘dh’, ‘gh’, ‘kh’, ‘ph’, ‘rh’, ‘th’ 结尾,然后在末尾添加 es 以使该单词成为复数。

if search('[sxz]$', word) or search('[^aeioudgkprt]h$', word):
   print( sub('$', 'es', word))

第4步:接下来,我们检查单词是否以‘ay’, ‘ey’, ‘iy’, ‘oy’或‘uy’结尾。如果是,那么我们从单词中删除 y 并用 ‘ies’ 替换它,使其成为复数。

elif search('[aeiou]y$', word):
   print( sub('y$', 'ies', word))

步骤5:最后,对于剩下的情况,我们在最后添加s,使其成为复数。

else:
   print( word + 's')

例子:

Python


# Python program to pluralize a
# given word using regex module
# Import the libraries
from re import *
# Declare the word in a variable
word = "apple"
# Check if word is ending with s,x,z or is
# ending with ah, eh, ih, oh,uh,dh,gh,kh,ph,rh,th
if search('[sxz]$', word) or search('[^aeioudgkprt]h$', word):
    # Make it plural by adding es in end
    print(sub('$', 'es', word))
# Check if word is ending with ay,ey,iy,oy,uy
elif search('[aeiou]y$', word):
    # Make it plural by removing y from end adding ies to end
    print(sub('y$', 'ies', word))
# In all the other cases
else:
    # Make the plural of word by adding s in end
    print(word + 's')

输出:

apples

这种方法对于获取单词的复数不是太有效,因为它适当地对某些单词进行了复数,但在某些情况下也会失败。因此,我们将寻找更有效的方法来查找单词的复数形式。

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

所需模块:

  • NLTK:构建 Python 程序以处理人类语言数据并为语料库和词汇资源提供 easy-to-use 接口的模块称为 NLTK 模块。
  • Pattern:Python 的一个开源模块用于执行各种自然语言处理任务,称为模式模块。该模块可用于文本处理、数据挖掘和各种其他操作。

逐步实施:

步骤1:首先导入模块,即NLTK。

import nltk

步骤2:现在,您需要下载NLTK数据来运行package模块的en函数。这只是一次性步骤。您不需要在每个程序中都这样做。

nltk.download('popular')

步骤3:然后,导入pattern.en模块的复数函数。

from pattern.en import pluralize

步骤 4:最后,使用 pluralize() 函数并打印输出来使单词变为复数。

print (pluralize('#Define the word'))

例子:

Python


# Python program to pluralize a given
# word using pattern-en package
# Import the NLTK module
from pattern.en import pluralize
import nltk
# Installing NLTK data to import
# and run en module of pattern
nltk.download('popular')
# Importing the pattern en module
# Define the word and make it plural
# by using pluralize() function
print(pluralize('child'))

输出:

children

方法3:在Python中使用textblob对给定单词进行复数形式

Textblob 用于处理文本数据的 Python 模块称为 Textblob 模块。它是执行自然语言处理任务的最简单的模块之一。可以使用以下命令下载该模块。除了textblob模块之外,您还需要安装textblob模块的语料库函数。

逐步实施:

步骤1:首先,导入库textblob。

from textblob import TextBlob

第 2 步:现在,定义单词并将其存储在变量中。

blob = TextBlob('#Define the word')

第三步:最后,用words将单词变成复数。 pluralize()函数并打印结果。

print(blob.words.pluralize())

例子:

Python


# Python program to pluralize a given
# word using textblob module
# Importing the libraries
from textblob import TextBlob
# Define the word and store in variable
blob_word = TextBlob('cat')
# Make the word plural by using pluralize() function
print(blob_word.words.pluralize())

输出:

[cats]

方法 4:在 Python 中使用 Inflect 对给定单词进行复数形式

Inflect Python 模块,不仅用于生成复数、单数名词、序数词和不定冠词,还用于将数字转换为单词,称为 Inflect 模块。该模块可以通过以下命令安装:

逐步实施:

第一步:首先导入需要的库,即inflect。

import inflect

步骤2:现在,声明导入模块的方法。

p = inflect.engine()

步骤3:最后,使用plural()函数打印字符串的复数。 plural() 函数通过将单数名词转换为复数名词来正常工作。

print("Plural of string: ", p.plural('#string-text'))

例子:

示例 1:

在这个例子中,我们在变量a中定义了字符串text,即“child”,然后使用inflect模块的plural()函数打印结果。

Python


# Program to pluralize a given
# word in Python
# Import the libraries
import inflect
# Declare method of inflect module
p = inflect.engine()
# Define the string and store it in variable
a = 'child'
# Print the plural of the string defined
print("Plural of child: ", p.plural(a))

输出:

children

示例 2:

在此示例中,我们将字符串输入设为“apple”,以查看 plural() 函数是否正常工作。

Python


# Program to pluralize a given
# word in Python
# Import the libraries
import inflect
# Declare method of inflect module
p = inflect.engine()
# Print the plural of the word apple
print("Plural of apple: ", p.plural('apple'))

输出:

Plural of apple: apple

示例 3:

在此示例中,我们将字符串输入作为“tooth”,以查看 plural() 函数是否正常工作。

Python


# Program to pluralize a given
# word in Python
# Import the libraries
import inflect
# Declare method of inflect module
p = inflect.engine()
# Print the plural of the word tooth
print("Plural of tooth: ", p.plural('tooth'))

输出:

Plural of tooth: teeth

示例4:

在此示例中,我们将字符串输入作为“watch”,以查看 plural() 函数是否正常工作。

Python


# Program to pluralize a given
# word in Python
# Import the libraries
import inflect
# Declare method of inflect module
p = inflect.engine()
# Print the plural of the word watch
print("Plural of watch: ", p.plural('watch'))

输出:

Plural of watch: watches

实施例5:

在此示例中,我们通过在变量中获取用户的输入来使程序动态化。然后,我们将该变量转换为复数。

Python


# Program to pluralize a given
# word in Python
# Import the libraries
import inflect
# Declare method of inflect module
p = inflect.engine()
# Make program dynamic by taking input from user
word = input("Enter a word: ")
print("Plural of entered word: ", p.plural(word))

输出:

Plural of entered word: oxen


相关用法


注:本文由纯净天空筛选整理自vin8rai大神的英文原创作品 Python Program to Convert Singular to Plural。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。