python实现中文文本分句的例子


Posted in Python onJuly 15, 2019

对于英文文本分句比较简单,只要根据终结符"."划分就好,中文文本分句看似很简单,但是实现时会遇到很多麻烦,尤其是处理社交媒体数据时,会遇到文本格式不规范等问题。

下面代码针对一段一段的短文本组成了文档分句

import re
def cut_sent(infile, outfile):
  cutLineFlag = ["?", "!", "。","…"] #本文使用的终结符,可以修改
  sentenceList = []
  with open(infile, "r", encoding="UTF-8") as file:
    oneSentence = ""
    for line in file:
      if len(oneSentence)!=0:
        sentenceList.append(oneSentence.strip() + "\r")
        oneSentence=""
      # oneSentence = ""
      for word in words:
        if word not in cutLineFlag:
          oneSentence = oneSentence + word
        else:
          oneSentence = oneSentence + word
          if oneSentence.__len__() > 4:
            sentenceList.append(oneSentence.strip() + "\r")
          oneSentence = ""
  with open(outfile, "w", encoding="UTF-8") as resultFile:
    print(sentenceList.__len__())
    resultFile.writelines(sentenceList)

如果段尾3没有终结符但是换行了,这句话可能会丢失,所有加入如下代码:

if len(oneSentence)!=0:
   sentenceList.append(oneSentence.strip() + "\r")
     oneSentence=""

会得到比较好的处理结果

要处理的文本:

自从微信出了三天可见功能,我的朋友圈就越来越冷清越来越冷清越来越冷清,点开都没什么可看的了。今天我把屏蔽的代购一个一个一个都放出来了,快过年了,热闹点
一女性,想DIY矫正门牙缝隙,在家自己制取模型,结果悲剧了,因为用的是石膏,自己无法取出,来我院求助,医生废了九牛二虎之力才搞定……DIY有风险,操作需谨慎!
闺女同学家养了一只鹦鹉,两只珍珠鸟,一只猫,两只仓鼠。鹦鹉是老大,珍珠鸟怕它,猫是后进家的,也怕鹦鹉。仓鼠经常溜出笼子,据说猫会把它逮住塞回笼子。

处理后的文本:

自从微信出了三天可见功能,我的朋友圈就越来越冷清越来越冷清越来越冷清,点开都没什么可看的了。
今天我把屏蔽的代购一个一个一个都放出来了,快过年了,热闹点
一女性,想DIY矫正门牙缝隙,在家自己制取模型,结果悲剧了,因为用的是石膏,自己无法取出,来我院求助,医生废了九牛二虎之力才搞定…
DIY有风险,操作需谨慎!
闺女同学家养了一只鹦鹉,两只珍珠鸟,一只猫,两只仓鼠。
鹦鹉是老大,珍珠鸟怕它,猫是后进家的,也怕鹦鹉。
仓鼠经常溜出笼子,据说猫会把它逮住塞回笼子。

得到了比较好的分句结果,也不会丢失信息。

以上这篇python实现中文文本分句的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简单介绍Python中的JSON模块
Apr 08 Python
python使用pymysql实现操作mysql
Sep 13 Python
Python输出带颜色的字符串实例
Oct 10 Python
Python字典操作详细介绍及字典内建方法分享
Jan 04 Python
Python中将dataframe转换为字典的实例
Apr 13 Python
python3监控CentOS磁盘空间脚本
Jun 21 Python
Python中请不要再用re.compile了
Jun 30 Python
在python Numpy中求向量和矩阵的范数实例
Aug 26 Python
python网络编程 使用UDP、TCP协议收发信息详解
Aug 29 Python
python打印直角三角形与等腰三角形实例代码
Oct 20 Python
python3.6使用SMTP协议发送邮件
May 20 Python
Python生成pdf目录书签的实例方法
Oct 29 Python
Python如何筛选序列中的元素的方法实现
Jul 15 #Python
python内存动态分配过程详解
Jul 15 #Python
python实现动态数组的示例代码
Jul 15 #Python
python移位运算的实现
Jul 15 #Python
python与C、C++混编的四种方式(小结)
Jul 15 #Python
解决Python3 控制台输出InsecureRequestWarning问题
Jul 15 #Python
python导包的几种方法(自定义包的生成以及导入详解)
Jul 15 #Python
You might like
PHP实现获取FLV文件的时间
2015/02/10 PHP
php实现三级级联下拉框
2016/04/17 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
JavaScript中string转换成number介绍
2014/12/31 Javascript
使用JavaScript刷新网页的方法
2015/06/04 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
2017/01/24 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
Node.js查找当前目录下文件夹实例代码
2017/03/07 Javascript
深入理解vue中slot与slot-scope的具体使用
2018/01/26 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
2019/05/29 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
详解vue中v-model和v-bind绑定数据的异同
2020/08/10 Javascript
[42:34]VP vs VG 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python实现识别图片内容的方法分析
2018/07/11 Python
python如何读取bin文件并下发串口
2019/07/05 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
2020/03/03 Python
浅析python 定时拆分备份 nginx 日志的方法
2020/04/27 Python
python爬取音频下载的示例代码
2020/10/19 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
行政助理的岗位职责
2014/02/18 职场文书
本溪关门山导游词
2015/02/09 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
小学德育工作总结2015
2015/05/12 职场文书
写给同事的离职感言
2015/08/04 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP