python将英语中的复数名词变成单数名词

英语复数名词的常见构成方式

  • 元音字母和大多数除s,z,x,sh,ch之外的辅音字母(或字母组合)直接加-s,清辅音后的s读作/s/ ,元音和浊辅音后的s读作/z/。如:bag-bags,biscuit-biscuits,egg-eggs.

当单数名词结尾为se,ze,ge,ce时(其词尾辅音为/s,z,ʃ,ʒ/等),加s后读作/iz/

如vase-vases,fridge-fridges

  • 当单数名词结尾为s,z,x,sh,软音ch时(其词尾辅音为/s,z,ʃ,ʒ/等)加-es(读/iz/), 如:box-boxes, peach-peaches. (o有时也是,但es读音为/z/如hero-heroes)例外:stomach-stomachs(因ch读作/k/)

  • 不规则变化,如:ox-oxen, child-children, man-men,mouse-mice,louse-lice

  • 不变化,如:deer-deer, sheep-sheep以及集体名词people-people,Chinese-Chinese。

  • 在中间加s,用于连词,如:hanger_on-hangers_on,maid_of_honor-maids_of_honor.

  • 可数名词以辅音字母+y结尾,把y去掉再加ies,如:hobby-hobbies,factory-factories.

  • 含有oo的可数名词,把oo变成ee,如:foot- feet,tooth-teeth.

  • 以f或fe结尾的单词,将f或fe去掉,加上ves,如:scarf-scarves,knife-knives

另外,英语有不少词汇借自其它语言,欧洲语言祖先之一的拉丁词汇有不少被完整地引入其中,复数变化规则也没改。

  • 词尾um或on,复数变为a,如album-alba,minimum-minima,phenomenon-phenomena

  • 词尾为us,复数变为i,如radius-radii,narcissus-narcissi

  • 词尾为a,复数加e,如alga-algae,larva-larvae

所有各种形式的复数名词都可以变成单数名词。具体程序如下

from nltk import word_tokenize, pos_tag
from nltk.corpus import wordnet
from nltk.stem import WordNetLemmatizer# 获取单词的词性
def get_wordnet_pos(tag):if tag.startswith('J'):return wordnet.ADJelif tag.startswith('V'):return wordnet.VERBelif tag.startswith('N'):return wordnet.NOUNelif tag.startswith('R'):return wordnet.ADVelse:return Nonesentence = 'feet' # 举个例子
tokens = word_tokenize(sentence)  # 分词
tagged_sent = pos_tag(tokens)  # 获取单词词性wnl = WordNetLemmatizer()
lemmas_sent = []
for tag in tagged_sent:wordnet_pos = get_wordnet_pos(tag[1]) or wordnet.NOUNlemmas_sent.append(wnl.lemmatize(tag[0], pos=wordnet_pos))  # 词形还原print(" ".join(lemmas_sent))

python将英语中的复数名词变成单数名词相关推荐

  1. python复数的表达形式_用Python将文本文件中的复数形式转换为单数形式

    看起来您对Python很熟悉,但我仍将尝试解释一些步骤.让我们从第一个问题开始.当您使用.read()读入多行文件(在您的例子中是单词,数字csv)时,您将把整个文件体读入一个大字符串.def ope ...

  2. 英语中’s和s’的区别

    我们经常能在英语句子中看到s'与's,它们之间有如下区别: 1.s'与's所表示的单复数不同,s'是指复数名词的所有格,而's通常是单数名词的所有格. 名词所有格用以表示名词之间的所有关系.当一个名词 ...

  3. c语言 单词变复数_DEV-C++中编写了一段C程序,其中设置了用文件进行... 请编一个程序,可以将英语规则名词由单数变成复数......

    导航:网站首页 > DEV-C++中编写了一段C程序,其中设置了用文件进行... 请编一个程序,可以将英语规则名词由单数变成复数... DEV-C++中编写了一段C程序,其中设置了用文件进行.. ...

  4. 第1节:英语中的名词,冠词和数词,代词

    标题图 网络英语学习笔记 简书专题-英语协会:往后余生,努力学习 名词 在英语的学习中,和中文一样,有名词这一说,名词在英语中分为专有名词和普通名词,什么是专有名词呢?如某个人,地方,机构等这些专有的 ...

  5. 第2节:英语中的形容词,副词,动词,动名词,动词不定式

    标题图 网络英语学习笔记 简书专题-英语协会:往后余生,努力学习 第1节:英语中的名词,冠词和数词,代词 形容词 形容词是用来修饰名词的,什么是形容词呢?是用来描述事物或者人的性质和特征的 ,形容词分 ...

  6. 少儿英语-思维导图学语法-特殊名词变复数

    "通过思维导图,轻松学语法" 正文: 今天我们将一起探索英语中那些特殊的名词复数形式.学习特殊名词的复数变换可以让我们的英语更加地道和流利.让我们来看看一些有趣的例子吧! &quo ...

  7. 名词用作动词举例_英语中名词做动词用的55个例句

    英语中名词做动词用的 55 个例句 英语中名词做动词用的 55 个例句 1. Don't baby your child. 2. After dinner, please bus trays to D ...

  8. python对英语的要求_对英文【对英文英语头条】- 对英文知识点 - 中企动力

    小学英语学习需要基础牢固扎实,注重语音准确到位,语法概念的循序植入,成绩一定会有质的提升! 一.语音 英语和汉语的最大差异首先就是语音的差异,单词的发音至关重要.从英文字母开始重新复习,首先对26个英 ...

  9. python语言中、复数类型中实数部分_python学习03.02:Python数值类型(整形、浮点型和复数)及其用法...

    实际开发中,我们经常需要使用数字记录游戏中用户的得分.游戏中角色的生命值.伤害值等信息,Python 语言提供了数值类型用于保存这些数值. 需要注意的是,Python 中这些数值类型都是不可改变的,也 ...

最新文章

  1. yolo python_YOLO目标检测快速上手
  2. unity 优秀开源项目
  3. C++风格与C风格文件读写效率测试-vs2015,vs2017
  4. 如何创建一个标准的Windows服务
  5. Autodesk View and Data API二次开发学习指南
  6. 不同抽样间隔T对正弦信号进行抽样
  7. homestead.yaml配置详解
  8. python画叮当猫_怎么画卡通哆啦A梦(机器猫、蓝胖子、叮当猫) 专家详解
  9. cesium 实现雷达波
  10. 马蜂窝都斌出席广西自驾游大会:大数据将成自驾市场增长新引擎
  11. 计算机无法关机 总是自动启动不了怎么办,电脑不能关机,小编教你电脑关机后总是重启怎么办...
  12. 高等代数--线性空间
  13. CentOS7安装FTP服务开启21端口
  14. word 编辑过程中变为只读_WPS?教程 | WPS?云办公如何多人协同编辑
  15. 2020复旦机试题:斗牛
  16. h5网页调起扫一扫最简单的方法
  17. 什么决定了局域网特性
  18. JS学习笔记 - Extends
  19. php版本kms,使用 AWS KMS 加密和解密 AWS SDK for PHP 数据密钥 - 适用于 PHP 的 AWS 开发工具包...
  20. 企业级360°全方位用户画像:项目介绍[二]

热门文章

  1. tomcat启动异常:子容器启动失败(a child container failed during start)
  2. 【日拱一卒行而不辍20220924】自制操作系统
  3. 中移在线2020春季校招java开发岗面经
  4. BUUCTF:很好的色彩呃?
  5. 呃呃,阿里p6学习路线啊
  6. 开发一个简单网站--第三章:相知
  7. 《Adobe Fireworks CS6中文版经典教程》——1.3使用属性面板
  8. 拨云搜索:帮你查找记忆中的小说
  9. pyspark学习笔记,欢迎朋友们留言交流探讨!
  10. 一个数据块影响的数据范围的查询方法/ROWID分解方法