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实现指定文件夹下的指定文件移动到指定位置
Sep 17 Python
Python3编码问题 Unicode utf-8 bytes互转方法
Oct 26 Python
利用nohup来开启python文件的方法
Jan 14 Python
基于Python的Post请求数据爬取的方法详解
Jun 14 Python
Python使用python-docx读写word文档
Aug 26 Python
python global关键字的用法详解
Sep 05 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
Nov 11 Python
python实现简单坦克大战
Mar 27 Python
Python日志:自定义输出字段 json格式输出方式
Apr 27 Python
Python实现我的世界小游戏源代码
Mar 02 Python
python glom模块的使用简介
Apr 13 Python
Python常遇到的错误和异常
Nov 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
PHP 事务处理数据实现代码
2010/05/13 PHP
php安全之直接用$获取值而不$_GET 字符转义
2012/06/03 PHP
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
2017/08/11 PHP
Yii框架函数简单用法分析
2019/09/09 PHP
使用prototype.js进行异步操作
2007/02/07 Javascript
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
JS函数验证总结(方便js客户端输入验证)
2010/10/29 Javascript
如何用ajax来创建一个XMLHttpRequest对象
2012/12/10 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
2013/11/19 Javascript
jQuery中ajax的使用与缓存问题的解决方法
2013/12/19 Javascript
利用函数的惰性载入提高javascript代码执行效率
2014/05/05 Javascript
JavaScript也谈内存优化
2014/06/06 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
2016/09/19 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
2016/12/17 Javascript
AngularJS路由Ui-router模块用法示例
2017/05/29 Javascript
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
Openlayers测量距离与面积的实现方法
2020/09/25 Javascript
Vue 实例中使用$refs的注意事项
2021/01/29 Vue.js
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
Python 查找字符在字符串中的位置实例
2018/05/02 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
Python 控制终端输出文字的实例
2019/07/12 Python
flask框架中的cookie和session使用
2021/01/31 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
基于html5 DeviceOrientation 实现微信摇一摇功能
2015/09/25 HTML / CSS
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
科长个人四风问题整改措施思想汇报
2014/10/13 职场文书
自我工作评价范文
2015/03/06 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书
学生会部长竞选稿
2015/11/19 职场文书
Python中Selenium对Cookie的操作方法
2021/07/09 Python
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS