在本文中,我們將了解如何使用 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。