在处理文本时,会遇到需要将文本以 句子 为单位进行切分(分句)的场景,而文本又可以分为 中文文本英文文本 ,处理的方法会略有不同。本文会介绍 Python 是如何处理 分句 的。

分句的关键是找到合适的结束符号,比如:中文里的 ,英文里的 . 等,而且,在这一点上中英也是有很大区分的。

这里介绍一种纯用 Python 实现的分句函数。

def cut_sentences(content):# 结束符号,包含中文和英文的end_flag = ['?', '!', '.', '?', '!', '。', '…']content_len = len(content)sentences = []tmp_char = ''for idx, char in enumerate(content):# 拼接字符tmp_char += char# 判断是否已经到了最后一位if (idx + 1) == content_len:sentences.append(tmp_char)break# 判断此字符是否为结束符号if char in end_flag:# 再判断下一个字符是否为结束符号,如果不是结束符号,则切分句子next_idx = idx + 1if not content[next_idx] in end_flag:sentences.append(tmp_char)tmp_char = ''return sentencescontent = '在处理文本时,会遇到需要将文本以 句子 为单位进行切分(分句)的场景,而文本又可以分为 中文文本 和 英文文本 ,处理的方法会略有不同。本文会介绍 Python 是如何处理 分句 的。'
sentences = cut_sentences(content)
print('\n\n'.join(sentences))在处理文本时,会遇到需要将文本以 句子 为单位进行切分(分句)的场景,而文本又可以分为 中文文本 和 英文文本 ,处理的方法会略有不同。本文会介绍 Python 是如何处理 分句 的。

这个函数可以通过修改 end_flag (结束符号),来自定义特定的句子切分方式,比如加入 等符号。

当然,也可以用正则表达式来完成分句,使用 re.split 的方法。

import redef cut_sentences(content):sentences = re.split(r'(\.|\!|\?|。|!|?|\.{6})', content)return sentencescontent = content = '在处理文本时,会遇到需要将文本以 句子 为单位进行切分(分句)的场景,而文本又可以分为 中文文本 和 英文文本 ,处理的方法会略有不同。本文会介绍 Python 是如何处理 分句 的。'
sentences = cut_sentences(content)
print('\n\n'.join(sentences))在处理文本时,会遇到需要将文本以 句子 为单位进行切分(分句)的场景,而文本又可以分为 中文文本 和 英文文本 ,处理的方法会略有不同。本文会介绍 Python 是如何处理 分句 的。

这里还可以安利大家一个非常不错的处理中文标点符号的第三库: zhon,可以通过 pip install zhon 安装,功能也算非常丰富。

我们使用 zhon 来实现中文分句。

import re
import zhonrst = re.findall(zhon.hanzi.sentence, '我买了一辆车。妈妈做的菜,很好吃!')
print(rst)['我买了一辆车。', '妈妈做的菜,很好吃!']

大家可以阅读 zhon 的官方文档,了解更多的使用案例。

安利大家一本掘金小册《深入理解NLP的中文分词:从原理到实践》,让你从零掌握中文分词技术,踏入NLP大门。

如果因为以上内容对你有所帮助,希望点个赞、评个论、转个发,关个注,多谢多谢!

此公众号每周分享一篇干货文章,实实在在把一个课题说明白,讲清楚,望关注!

在Python里如何切分中文文本句子(分句)、英文文本分句(切分句子)相关推荐

  1. Python代码 | 文本操作 统计英文文本中,每个字母出现的次数

    Python代码 | 文本操作 统计英文文本中,每个字母出现的次数 # -*- coding: utf-8 -*- # 使用oepn获取文件路径 # path=open("arrogant. ...

  2. 使用python+stanfordcorenlp+dependency_parse(依赖句法分析)实现英文长句切分

    一.问题引入–英文长句切分 其实英文里面也是有一些短语,比如:I traveled to New York last year 其中 New York 可以作为一个短语来看待,在情感分析以及别的任务里 ...

  3. python将复杂格式中文文本文件翻译为英文

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 文章目录 前言 一.注册百度翻译账号,获取id和key 二.翻译文本文件 1.调用百度翻译api 2.将翻译后的文本文 ...

  4. python 英语分词_NLTK(一):英文分词分句

    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处. 一.NLTK 的安装 如果是python 2.x 的环境,安装命令如下: sudo pip install nltk 如果是pyt ...

  5. python里我最容易搞不清楚问题之一的encode和decode

    因为我自己整理在笔记本上好几次,但是今天看到的时候,又凌乱了.所以还是再次重新整理到博客上. 在计算机的世界里: 1 bytes(字节) == 8 bite(比特):每个bite里存放0或1. 于是一 ...

  6. python进行文本预处理_用python做NLP:中文文本预处理

    数据挖掘入门与实战  公众号: datadw 一 得到原始文本内容 def FileRead(self,filePath): f = open(filePath) raw=f.read() retur ...

  7. 如何用Python和BERT做中文文本二元分类?| 程序员硬核评测

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑ 作者 | 王树义 来源 | 王树芝兰(ID:nkwangshuyi) 兴奋 去年, Google 的 B ...

  8. 中文文本摘要提取 (文本摘要提取 有代码)基于python

    任务简介 文本摘要旨在将文本或文本集合转换为包含关键信息的简短摘要.文本摘要按照输入类型可分为单文档摘要和多文档摘要.单文档摘要从给定的一个文档中生成摘要,多文档摘要从给定的一组主题相关的文档中生成摘 ...

  9. python中可以用中文作为变量-python里能不能用中文

    现代计算机和编程的起源和推动力量主要源自美国,再加上26个字母很便于表示(算上大小写,6位bit就够了),因此英语一直是编程领域的不二之选.但这就给部分非英语国家的编程学习者带来一些困扰.以至于有些人 ...

最新文章

  1. 2022-2028年中国丁二烯橡胶行业市场规模研究及前瞻分析报告
  2. 蓝桥杯:安慰奶牛(最小生成树)
  3. Neutron Router 工作原理 - 每天5分钟玩转 OpenStack(142)
  4. Tomcat--HTTPS的简单应用
  5. [转] .NET 3.5中MSChart组件的ImageLocation属性含义
  6. 配合OAuth2进行单设备登录拦截
  7. dd命令快速生成一个大文件
  8. phpcmsV9中的CSS_PATH是如何定义的
  9. 如何判断模糊图像_深圳企业宣传片拍摄制作教你如何使用手动聚焦
  10. SAP License:企业ERP系统
  11. JS正则验证手机号码或者电话号码(转)
  12. POJ1915(Knight Moves)
  13. 60度斜坡怎么计算_坡度计算公式图解
  14. PDF怎么翻译成中文?这些方法值得收藏
  15. idea是什么软件_从零开始学java——基础篇(03)之idea安装
  16. AHU计科(伪)新生指南
  17. php 文字动画,CSS3绘制2018新年快乐文字动画特效
  18. html中dfn标签,怎么时用html dfn标签
  19. wxid中文是什么_微信号wxid怎么登录?wxid与微信号是什么关系?
  20. 小米手机6的主要参数与特性

热门文章

  1. 如何实现视觉识别颜色
  2. 不要再问芝士和奶酪有什么区别了!一次解释清楚
  3. 【日成海外营销】如何利用TikTok进行红人营销?
  4. 「游戏建模」如何使用zbrush为模型制作衣服上的褶皱
  5. MoveIt教程[11]:Visualizing Collisions
  6. 一个女孩写给女孩的话
  7. 微信小程序获取OneNet数据显示温湿度
  8. Error querying database. Cause: org.apache.ibatis.reflection.ReflectionException: There is no gette
  9. CSDN官方积分方法
  10. 《非暴力沟通》读后感