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装饰器 免去调用父类构造函数的麻烦
May 18 Python
Python内置函数的用法实例教程
Sep 08 Python
Python编程pygal绘图实例之XY线
Dec 09 Python
Python enumerate索引迭代代码解析
Jan 19 Python
基于DATAFRAME中元素的读取与修改方法
Jun 08 Python
在Python中使用gRPC的方法示例
Aug 08 Python
python根据文章标题内容自动生成摘要的实例
Feb 21 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
Aug 06 Python
pandas factorize实现将字符串特征转化为数字特征
Dec 19 Python
pytorch逐元素比较tensor大小实例
Jan 03 Python
从训练好的tensorflow模型中打印训练变量实例
Jan 20 Python
Python无头爬虫下载文件的实现
Apr 02 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
Thinkphp使用mongodb数据库实现多条件查询方法
2014/06/26 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
2012/12/21 Javascript
js如何实现设计模式中的模板方法
2013/07/23 Javascript
js改变文章字体大小的实例代码
2013/11/27 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
2015/05/08 Javascript
JavaScript中Function()函数的使用教程
2015/06/04 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
简单的JS轮播图代码
2016/07/18 Javascript
jQuery中 $ 符号的冲突问题及解决方案
2016/11/04 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
前端面试知识点目录一览
2019/04/15 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
详解Python中的相对导入和绝对导入
2017/01/06 Python
python 用opencv调用训练好的模型进行识别的方法
2018/12/07 Python
解决使用export_graphviz可视化树报错的问题
2019/08/09 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
2020/04/07 Python
浅析CSS3 中的 transition,transform,translate之间区别和作用
2020/03/26 HTML / CSS
世界上最大的网络主机公司:1&1
2016/10/12 全球购物
印尼购物网站:iLOTTE
2019/10/16 全球购物
幼儿园家长会邀请函
2014/01/15 职场文书
80后职场人的职业生涯规划
2014/03/08 职场文书
项目转让协议书
2014/10/27 职场文书
2014年客服工作总结范文
2014/11/13 职场文书
给老婆的保证书
2015/01/16 职场文书
如何在Python中创建二叉树
2021/03/30 Python
python3使用diagrams绘制架构图的步骤
2021/04/08 Python
python geopandas读取、创建shapefile文件的方法
2021/06/29 Python
MySql 缓存查询原理与缓存监控和索引监控介绍
2021/07/02 MySQL
输入框跟随文字内容适配宽实现示例
2022/08/14 Javascript