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制作简单的朴素基数估计器的教程
Apr 01 Python
python实现在控制台输入密码不显示的方法
Jul 02 Python
在Django的上下文中设置变量的方法
Jul 20 Python
python编码最佳实践之总结
Feb 14 Python
python学习之编写查询ip程序
Feb 27 Python
Python人脸识别初探
Dec 21 Python
Python遍历numpy数组的实例
Apr 04 Python
如何用Python破解wifi密码过程详解
Jul 12 Python
python+numpy实现的基本矩阵操作示例
Jul 19 Python
Python提取PDF内容的方法(文本、图像、线条等)
Sep 25 Python
pycharm运行scrapy过程图解
Nov 22 Python
在jupyter notebook中调用.ipynb文件方式
Apr 14 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操作符与控制结构代码
2011/12/30 PHP
深入PHP许愿墙模块功能分析
2013/06/25 PHP
php文件上传的简单实例
2013/10/19 PHP
php后门URL的防范
2013/11/12 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
JavaScript实现随机点名器
2020/03/25 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
Python 过滤字符串的技巧,map与itertools.imap
2008/09/06 Python
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
python爬虫基本知识
2018/03/05 Python
Python logging模块用法示例
2018/08/28 Python
python判断列表的连续数字范围并分块的方法
2018/11/16 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
Pytorch根据layers的name冻结训练方式
2020/01/06 Python
基于Python把网站域名解析成ip地址
2020/05/25 Python
Python 串口通信的实现
2020/09/29 Python
python代码实现图书管理系统
2020/11/30 Python
成人毕业生自我鉴定
2013/10/18 职场文书
行政助理求职自荐信
2013/10/26 职场文书
管理部部长岗位职责
2013/12/05 职场文书
祖国在我心中演讲稿
2014/01/15 职场文书
财务总经理岗位职责
2014/02/16 职场文书
药剂专业个人求职信范文
2014/04/29 职场文书
党支部综合考察材料
2014/05/19 职场文书
品牌转让协议书
2014/08/20 职场文书
政风行风建设整改方案
2014/10/27 职场文书
独生子女证明范本
2015/06/19 职场文书
世界十大狙击步枪排行榜
2022/03/20 杂记