做nlp的时候,我们数据往往是一篇文章或者一大段文字,在进行其他处理之前,你需要先对文章进行切割或者处理(去除多余字符、特殊符号,分句和分词),或者是分句以句子级别为最小单位进行后续处理。那么如何进行分句呢?

比如有下面一段文本:First, it takes time to accomplish a task —— the earlier you begin,the more likely you will reach your goal earlier. Otherwise you call never be sure of your success. Second, when diligence becomes a habit, nothing will be difficult to a determined and persistent person. For example, you will never feel bored and tired at doing social investigation if you really enjoy it. Third, looking at the matter from another perspective, we will find that social resources are always limited and opportunities are always for those prepared minds.

如何进行分句呢?下面介绍两种方法:

一、规则匹配

一般情况下我们可以通过python的split等函数快速完成切分任务,主要的分割特征如下:大概这些句子分割符(. ? !);

可以使用split函数进行分割,可以得到新的列表,例如下面的函数;

def sentence_split(str_centence):

list_ret = list()

for s_str in str_centence.split('.'):

if '?' in s_str:

list_ret.extend(s_str.split('?'))

elif '!' in s_str:

list_ret.extend(s_str.split('!'))

else:

list_ret.append(s_str)

return list_ret

得到的结果如下:分句结果

二、nltk中sent_tokenize库进行分句

第二种方法就是这种基本需求一般已经有现有的库,我们可以用nltk中的sent_tokenize库来实现分句,使用如下代码所示:

from nltk.tokenize import sent_tokenize

def sentence_token_nltk(str):

sent_tokenize_list = sent_tokenize(str)

return sent_tokenize_list

结果如下:

两个方法完整代码如下:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2018/8/11 下午3:18

# @Author : yizhen

# @Site :

# @File : split_sentence.py

# @Software: PyCharm

import codecs

from nltk.tokenize import sent_tokenize

def sentence_token_nltk(str):

sent_tokenize_list = sent_tokenize(str)

return sent_tokenize_list

def sentence_split(str_centence):

list_ret = list()

for s_str in str_centence.split('.'):

if '?' in s_str:

list_ret.extend(s_str.split('?'))

elif '!' in s_str:

list_ret.extend(s_str.split('!'))

else:

list_ret.append(s_str)

return list_ret

def main():

with codecs.open('test.txt', 'r', encoding='utf-8') as fp:

str = fp.read().strip()

sentence_str = sentence_token_nltk(str)

sentence_str_2 = sentence_split(str)

print(sentence_str)

if __name__ == '__main__':

main()

python英文分句_教你如何对英文段落进行分句相关推荐

  1. 微信python天天学_教你使用python实现微信每天给女朋友说晚安

    本文为大家分享了教你用微信每天给女朋友说晚安的python实战,供大家参考,具体内容如下 但凡一件事,稍微有些重复.我就考虑怎么样用程序来实现它. 这里给各位程序员朋友分享如何每天给朋友定时微信发送& ...

  2. python文本分类_教你用python做文本分类

    什么是文本分类 一个文本分类问题就是将一篇文档归入预先定义的几个类别中的一个或几个.通俗点说,就是拿一篇文章,问计算机这文章要说的究竟是体育,经济还是教育.文本分类是一个监督学习的过程,常见的应用就是 ...

  3. python opencv手册_教你用Python实现5毛钱特效(给你的视频来点料)

    一.前言 请务必看到最后.Python牛已经不是一天两天的事了,但是我开始也没想到,Python能这么牛.前段时间接触了一个批量抠图的模型库,而后在一些视频中找到灵感,觉得应该可以通过抠图的方式,给视 ...

  4. python url拼接_教你写python爬虫——用python爬原图

    环境:python3.6 + pycharm "猎物":http://www.polayoutu.com (仅学习用) 动机1:想要爬一些尺寸比较大(不是尺度)的美图养养眼,仅此而 ...

  5. python中的字体英文名_获取中文字体的英文名字

    (方法在分割线后面,前面叙事) 今天用了很久电脑,突然就觉得看着Windows下Chrome的字体觉得很不舒服,跟Mac下的差太远了,于是就开始折腾怎么设置浏览器字体. 先讲一下流程,我的操作方案是: ...

  6. 用python输出圣诞树_教你怎样用Python画了一棵圣诞树,赶紧来学习

    文中的文本及图片来源于互联网,仅作学习培训.沟通交流应用,不具备一切商业行为,如有什么问题请立即在线留言以作解决. 下列文章内容来源于IT新手入门 共享给大伙儿一篇文章,教你如何用Python画了一棵 ...

  7. 教孩子学编程 python语言版_教孩子学编程 PYTHON语言版 PDF_IT教程网

    资源名称:教孩子学编程 PYTHON语言版 PDF 资源目录: 第1章Python基础--认识环境1 1.1认识Python3 1.2用Python编写程序5 1.3运行Python程序5 1.4本章 ...

  8. python换脸教程_教你如何用200行Python代码“换脸”教程

    原标题:教你如何用200行Python代码"换脸"教程 本文将介绍如何编写一个只有200行的Python脚本,为两张肖像照上人物的"换脸". 这个过程可分为四步 ...

  9. python豆瓣影评_教你用python登陆豆瓣并爬取影评

    教你用python登陆豆瓣并爬取影评 一起来 日常学python 这是我的第二篇原创文章 在上篇文章爬取豆瓣电影top250后,想想既然爬了电影,干脆就连影评也爬了,这样可以看看人们评价的电影,再加上 ...

最新文章

  1. windows mobile做一个摄象头预览程序
  2. HTTP 302重定向的一个具体例子
  3. ajax返回数据报406,ajax – 406返回JSON对象时出错 – 意外内容
  4. Java关于Properties用法的总结(一)
  5. linux配置4g网络命令_树莓派移动网络连接(配置4G网卡)
  6. ruby hash方法_Ruby中带有示例的Hash.keys方法
  7. Flutter打包apk中的一些巨坑
  8. html5怎么联网,HTML5--离线web应用
  9. 公交车管理系统C语言
  10. 45_局域网ip正则表达式
  11. 【第3讲】 噪声滤波器的原理
  12. 大二网页制作实习总结
  13. STM32F1系列以及CM3内核的时钟与中断内容详解
  14. DIY人体红外报警器手机接收通知 防贼防盗防老王 物联网 智能家居
  15. Vue项目中created生命周期重复执行,未缓存下来
  16. 我人生的 5 位老师,祝教师节快乐!
  17. PSINS惯性系初始对准与代码解读
  18. 【多元统计分析】因子分析——SPSS上机实验(过程+结果分析)
  19. 想运行游戏,在Pycharm中安装Pygame库一直报错,我只是忽视了它
  20. 乐视清空酷派股份;B站将于2018年赴美上市;苹果关闭所有iPhone降级通道丨价值早报

热门文章

  1. 同步交互与异步交互(简单易懂)
  2. Orman Clark的垂直导航菜单:CSS3版本
  3. Python list 常见用法
  4. java 线程 组成_java多线程
  5. openflow交换机 ryu_ryu(示例代码)
  6. 基因组学两个理念:生命是序列的;生命是数字的。
  7. 1719C - Fighting Tournament
  8. 六大云端 Jupyter Notebook 平台测评
  9. 盘点CDEC 2019七宗最:创新与使命
  10. C语言 深度剖析数据在内存中的存储(2)