主题中的问题 - 我正在尝试在Google App Engine中使用python for app。我知道PyEnchant库用于自然语言识别,但我不知道我是否可以将它用于我的问题以及如何使用它。
答案 0 :(得分:10)
结帐inflect 0.2.4库。
感染0.2.4
正确生成复数,单数名词,序数,无限期 文章;将数字转换为单词
答案 1 :(得分:7)
Ashwini提到了有用的inflect库,但没有解释如何检查给定的单词是复数还是单数形式。
如果你知道这个单词是单数或复数,你可以使用:
singular_noun(word)
如果单词不是复数,这将返回False
,因此理论上你的单词应该是单数。
请注意我的示例中显示的经典复数形式,可以是单数或复数形式的缺点,以及一般情况下对于未识别的形式它将返回False的事实。
import inflect
inflect = inflect.engine()
english_words = ["hat", "hats",
"hero", "heroes",
"cherry", "cherries",
"dish", "dishes",
"stadium", "stadia", "stadiums",
"mitochondrion", "mitochondria",
"sheep", "a sheep", "the sheep",
"whjkjhkjh", "msipelling"]
for en in english_words:
if inflect.singular_noun(en) is False:
print (en, "is singular")
else:
print (en, "is plural")
>>>
hat is singular
hats is plural
hero is singular
heroes is plural
cherry is singular
cherries is plural
dish is singular
dishes is plural
stadium is singular
stadia is singular
stadiums is plural
mitochondrion is singular
mitochondria is singular
sheep is plural
a sheep is plural
the sheep is plural
whjkjhkjh is singular
答案 2 :(得分:2)
你不会说你的问题是英语句子语境中的孤立词语还是单词。
例如“羊”可以是单个也可以是复数。但是:
羊在场上
是单数和
羊群在野外
是复数。
对于后者,您需要一个词性标注器,它将识别句子中名词的作用。有许多免费和商业版本,维基百科有an excellent list。 NLTK可能是Python的自然选择。
如果您只有孤立的单词,那么您可以做的最好是参考许多词典(例如 Wordnet表示单数和复数形式的名词。