在本文中,我们将了解如何使用 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
相关用法
- Python String format()用法及代码示例
- Python Set remove()用法及代码示例
- Python Set add()用法及代码示例
- Python Set copy()用法及代码示例
- Python Set clear()用法及代码示例
- Python Set difference()用法及代码示例
- Python Set difference_update()用法及代码示例
- Python Set discard()用法及代码示例
- Python Set intersection()用法及代码示例
- Python Set intersection_update()用法及代码示例
- Python Set isdisjoint()用法及代码示例
- Python Set issubset()用法及代码示例
- Python Set issuperset()用法及代码示例
- Python Set pop()用法及代码示例
- Python Set symmetric_difference()用法及代码示例
- Python Set symmetric_difference_update()用法及代码示例
- Python Set union()用法及代码示例
- Python Set update()用法及代码示例
- Python String capitalize()用法及代码示例
- Python String center()用法及代码示例
- Python String casefold()用法及代码示例
- Python String count()用法及代码示例
- Python String endswith()用法及代码示例
- Python String expandtabs()用法及代码示例
- Python String encode()用法及代码示例
注:本文由纯净天空筛选整理自vin8rai大神的英文原创作品 Python Program to Convert Singular to Plural。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。