根据基本的一些音节的特点,逐个封装出提取音节个数的方法,代码如下:

def count(slef,s):total_syllables = 0# qu to tqs = re.sub(r'qu', 'qw', s)# replace endingss = re.sub(r'(es$)|(que$)|(gue$)', '', s)s = re.sub(r'^re', r'ren', s)s = re.sub(r'^gua', r'ga', s)# 前面跟元音的le或lle是不算的s = re.sub(r'([aeiou])(l+e$)', r'\g<1>', s)# print s(s, syllables) = re.subn(r'([bcdfghjklmnpqrstvwxyz])(l+e$)', r'\g<1>', s)total_syllables += syllables# print str(s) + "  " + str(syllables)s = re.sub(r'([aeiou])(ed$)', r'\g<1>', s)(s, syllables) = re.subn(r'([bcdfghjklmnpqrstvwxyz])(ed$)', r'\g<1>', s)total_syllables += syllables# 下面这些情况是算一个的endsp = re.compile(r'(ly$)|(ful$)|(ness$)|(ing$)|(est$)|(er$)|(ent$)|(ence$)')(s, syllables) = endsp.subn(r'', s)# print str(s)+"  "+str(syllables)total_syllables += syllables(s, syllables) = endsp.subn(r'', s)# print str(s) + "  " + str(syllables)total_syllables += syllabless = re.sub(r'(^y)([aeiou][aeiou]*)', r'\g<2>', s)# print str(s) + "  " + str(syllables)s = re.sub(r'([aeiou])(y)', r'\g<1>t', s)# (s, syllables) = re.subn(r'(^y)([bcdfghjklmnpqrstvwxyz])', r'\g<2>', s)# total_syllables += syllables# total_syllables += syllables# print ss = re.sub(r'aa+', r'a', s)s = re.sub(r'ee+', r'e', s)s = re.sub(r'ii+', r'i', s)s = re.sub(r'oo+', r'o', s)s = re.sub(r'uu+', r'u', s)# Dipthongs# 元音联合和三个特殊的情况dipthongs = re.compile(r'(eau)|(iou)|(are)|(ai)|(au)|(ea)|(ei)|(eu)|(ie)|(io)|(oa)|(oe)|(oi)|(ou)|(ue)|(ui)')s, syllables = dipthongs.subn('', s)# print str(s) + "  " + str(syllables)total_syllables += syllables# 大于三个的时候e结尾前面加这些东西的时候后缀不发音比如说:love,ve不发音去掉if len(s) > 3:s = re.sub(r'([bcdfghjklmnpqrstvwxyz])(e$)', r'\g<1>', s)# 收尾把前面铺垫的和元音本身都计算s, syllables = re.subn(r'[aeiouy]', '', s)total_syllables += syllablesreturn total_syllables# print total_syllables

Python 基于语法提取音节个数的方法(可能不完美,欢迎指教)相关推荐

  1. python 遍历内嵌tuple,python特性语法之遍历、公共方法、引用

    一.遍历 通过for...in...的语法结构,我们可以遍历字符串.列表.元组.字典等数据结构. 1.字符串遍历 a_str = "hello world" for char in ...

  2. python用map提取一个数的个十百位数_如何使用python中的map函数?

    我们在使用python过程中,为了避免错误删除,会选择做好一个序列后可以插入另外的序列中做为新序列的一部分内容.方便完成一些复杂的工程或多个片段分别编辑后再串成一个完整工程的操作.之前小编向大家介绍了 ...

  3. python summary结果提取_Python coverage.summary方法代码示例

    # 需要导入模块: from coverage import coverage [as 别名] # 或者: from coverage.coverage import summary [as 别名] ...

  4. python提取数组元素_python简单获取数组元素个数的方法

    python简单获取数组元素个数的方法 更新时间:2015年07月13日 17:54:46 作者:pythoner 这篇文章主要介绍了python简单获取数组元素个数的方法,实例分析了Python中l ...

  5. python辗转相除法求最大公约数的递归函数_Python基于辗转相除法求解最大公约数的方法示例...

    本文实例讲述了Python基于辗转相除法求解最大公约数的方法.分享给大家供大家参考,具体如下: 之前总结过一次高德纳TAOCP中的最大公约数求解,其实课后题中的算法修改要求实现的是辗转相除法求解最大公 ...

  6. python辗转相除_Python基于辗转相除法求解最大公约数的方法示例

    Python基于辗转相除法求解最大公约数的方法示例 本文实例讲述了Python基于辗转相除法求解最大公约数的方法.分享给大家供大家参考,具体如下: 之前总结过一次高德纳TAOCP中的最大公约数求解,其 ...

  7. python辗转相除法求最大公约数最小公倍数_Python基于辗转相除法求解最大公约数的方法示例...

    本文实例讲述了Python基于辗转相除法求解最大公约数的方法.分享给大家供大家参考,具体如下: 之前总结过一次高德纳TAOCP中的最大公约数求解,其实课后题中的算法修改要求实现的是辗转相除法求解最大公 ...

  8. python函数isdisjoint方法_Python学习之---Python中的内置函数(方法)(更新中。。。)...

    add(item)#将item添加到s中,如果item已经在s中,则无任何效果 break#退出循环,不会再运行循环中余下的代码 bool()#将参数转换为布尔型 bytes()#将值转成bytes类 ...

  9. python中出栈的方法,python中栈的原理及实现方法示例

    python中栈的原理及实现方法示例 本文实例讲述了python中栈的原理及实现方法.分享给大家供大家参考,具体如下: 栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素.访问元素.删除元 ...

  10. python 基于ddt实现数据驱动测试

    这篇文章主要介绍了python 基于DDT实现数据驱动测试的方法,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下 简单介绍 ​ ddt(date driver test),所谓数据驱 ...

最新文章

  1. java.io.file jar_IDEA Maven 打包运行 jar java.io.FileNotFoundException: 问题?
  2. MJExtension简介
  3. linux驱动中地址空间转换
  4. (X)HTML嵌套规则
  5. 【转】“线程间操作无效: 从不是创建控件的线程访问它”
  6. 利用html 5 websocket做个山寨版web聊天室(手写C#服务器)
  7. centos python_【建议收藏】Python虚拟环境最全教程,看这篇就够了!
  8. 牛腩视频播放管理系统
  9. Oracle笔记(一) Oracle简介及安装
  10. jdk 动态代理基本例子
  11. 周志华团队和蚂蚁金服合作:用分布式深度森林算法检测套现欺诈
  12. android webview 慢,Android Webview的性能问题
  13. C# 根据出生日期解析 对应星座
  14. 局域网网络流量监控_网工必知:用于监控企业网络的10款最佳工具,拿走!不谢!...
  15. 内核热补丁,真的安全么?| 龙蜥技术
  16. gis核密度分析工具_核密度分析 (Spatial Analyst)
  17. Java 消息队列、缓存、同步(个人理解:空谈)
  18. 推荐一个支付系统技术大全的博主--凤凰牌老熊
  19. 非root权限安装mysql
  20. 机器人布罩_铝型材机器人防护罩案例

热门文章

  1. 人民币转换美金的c语言代码大全,人民币和美元大写格式在线工具,美元美金数字金额转换大写,外币大写金额...
  2. Matlab并行编程
  3. web前端项目 - cypress自动化测试运行构建
  4. 12V转5V降压芯片,12V转3.3V稳压芯片电路图
  5. 2017年“达内杯”台州学院第十届大学生程序设计竞赛 非官方题解
  6. 基于Mplayer的嵌入式流媒体播放器的设计与实现
  7. Sixth season seventeenth episode,Ross‘s self defense concept,Unage!!!?????
  8. 【图像超分辨率】Maintaining Natural Image Statistics with the Contextual Loss
  9. numpy 求向量夹角 区间 [-pi, +pi]
  10. 【考题·习题详解】数论知识+数学推导