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简单判断序列是否为空的方法
Jun 30 Python
python验证码识别实例代码
Feb 03 Python
使用tensorflow实现线性回归
Sep 08 Python
Django时区详解
Jul 24 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
python输出第n个默尼森数的实现示例
Mar 08 Python
pyecharts调整图例与各板块的位置间距实例
May 16 Python
python爬虫容易学吗
Jun 02 Python
Python装饰器结合递归原理解析
Jul 02 Python
keras 模型参数,模型保存,中间结果输出操作
Jul 06 Python
Python异常处理机制结构实例解析
Jul 23 Python
python map比for循环快在哪
Sep 21 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学习之function的用法
2012/07/14 PHP
php+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
CodeIgniter生成网站sitemap地图的方法
2013/11/13 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
2016/10/31 PHP
php中10个不同等级压缩优化图片操作示例
2016/11/14 PHP
页面版文本框智能提示JS代码
2009/11/20 Javascript
通过身份证号得到出生日期和性别的js代码
2009/11/23 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
2010/10/20 Javascript
js注意img图片的onerror事件的分析
2011/01/01 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
javascript中setAttribute()函数使用方法及兼容性
2015/07/19 Javascript
AngularJs Understanding the Model Component
2016/09/02 Javascript
微信小程序 Video API实例详解
2016/10/02 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
js中的闭包学习心得
2018/02/06 Javascript
angularJS开发注意事项
2018/05/26 Javascript
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
2019/06/18 Javascript
[02:33]2018DOTA2亚洲邀请赛赛前采访——LGD
2018/04/04 DOTA
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
python解析json串与正则匹配对比方法
2018/12/20 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
电工工作职责范本
2014/02/22 职场文书
小学生中国梦演讲稿
2014/04/23 职场文书
面试自我介绍演讲稿
2014/04/29 职场文书
医院院务公开实施方案
2014/05/03 职场文书
小学雷锋月活动总结
2014/07/03 职场文书
奖学金个人总结
2015/03/04 职场文书
2015年评职称工作总结范文
2015/04/20 职场文书
2016父亲节感恩话语
2015/12/09 职场文书
利用Python第三方库实现预测NBA比赛结果
2021/06/21 Python
python绘制云雨图raincloud plot
2022/08/05 Python