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 相关文章推荐
有关wxpython pyqt内存占用问题分析
Jun 09 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
Dec 14 Python
对python list 遍历删除的正确方法详解
Jun 29 Python
Flask模拟实现CSRF攻击的方法
Jul 24 Python
python保存文件方法小结
Jul 27 Python
python3通过selenium爬虫获取到dj商品的实例代码
Apr 25 Python
python实现猜数字游戏
Mar 25 Python
pymysql的简单封装代码实例
Jan 08 Python
Python3 filecmp模块测试比较文件原理解析
Mar 23 Python
Python检测端口IP字符串是否合法
Jun 05 Python
解决pycharm修改代码后第一次运行不生效的问题
Feb 06 Python
解决Django transaction进行事务管理踩过的坑
Apr 24 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
关于尾递归的使用详解
2013/05/02 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
php文档工具PHP Documentor安装与使用方法
2016/01/25 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
用dom+xhtml+css制作的一个相册效果代码打包下载
2008/01/24 Javascript
jquery.boxy插件的iframe扩展代码
2010/07/02 Javascript
JQUBAR1.1 jQuery 柱状图插件发布
2010/11/28 Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
2012/05/13 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
2014/01/10 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
使用jquery+CSS实现控制打印样式
2014/12/31 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
动态更新highcharts数据的实现方法
2016/05/28 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
jquery 动态增加删除行的简单实例(推荐)
2016/10/12 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
vue移动端屏幕适配详解
2019/04/30 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
Python的迭代器和生成器使用实例
2015/01/14 Python
Python的语言类型(详解)
2017/06/24 Python
numpy np.newaxis 的实用分享
2019/11/30 Python
浅谈Python3中print函数的换行
2020/08/05 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
scrapy头部修改的方法详解
2020/12/06 Python
CSS3效果:自定义“W”形运行轨迹实例
2017/03/29 HTML / CSS
玩具反斗城西班牙网上商城:ToysRUs西班牙
2017/01/19 全球购物
国外的一些J2EE面试题一
2012/10/13 面试题
十岁生日家长答谢词
2014/01/17 职场文书
活动志愿者自荐信
2014/01/27 职场文书
大学生毕业自我鉴定范文
2014/02/03 职场文书
天地会口号
2014/06/17 职场文书
优秀团员事迹材料1000字
2014/08/20 职场文书
2015年统计员个人工作总结
2015/07/23 职场文书