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 代码性能优化技巧分享
Aug 07 Python
python模拟Django框架实例
May 17 Python
Python 递归函数详解及实例
Dec 27 Python
Python常见字符串操作函数小结【split()、join()、strip()】
Feb 02 Python
pandas求两个表格不相交的集合方法
Dec 08 Python
解决python中画图时x,y轴名称出现中文乱码的问题
Jan 29 Python
python基于SMTP协议发送邮件
May 31 Python
django-rest-swagger对API接口注释的方法
Aug 29 Python
Python HTMLTestRunner可视化报告实现过程解析
Apr 10 Python
浅谈Keras中shuffle和validation_split的顺序
Jun 19 Python
python 实现socket服务端并发的四种方式
Dec 14 Python
Python使用tkinter制作在线翻译软件
Feb 22 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在线代理转向代码
2012/05/05 PHP
PHP中如何定义和使用常量
2013/02/28 PHP
php异步多线程swoole用法实例
2014/11/14 PHP
php中使用base HTTP验证的方法
2015/04/20 PHP
php中使用gd库实现下载网页中所有图片
2015/05/12 PHP
PHP常用算法和数据结构示例(必看篇)
2017/03/15 PHP
jQuery中andSelf()方法用法实例
2015/01/08 Javascript
bootstrap table小案例
2016/10/21 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
基于vue和websocket的多人在线聊天室
2020/02/01 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
Python ftp上传文件
2016/02/13 Python
Python函数中的函数(闭包)用法实例
2016/03/15 Python
Python松散正则表达式用法分析
2016/04/29 Python
浅谈python数据类型及类型转换
2017/12/18 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
python实现贪吃蛇小游戏
2020/03/21 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
马来西亚最大的在线隐形眼镜商店:MrLens
2019/03/27 全球购物
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
瑞士隐形眼镜和护理产品网上商店:Linsenklick
2019/10/21 全球购物
NYX Professional Makeup英国官网:美国平价专业彩妆品牌
2019/11/13 全球购物
先进集体获奖感言
2014/02/13 职场文书
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript
利用Python实现Picgo图床工具
2021/11/23 Python