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 03 Python
python使用rpc框架gRPC的方法
Aug 24 Python
Python调用C++,通过Pybind11制作Python接口
Oct 16 Python
浅谈python中拼接路径os.path.join斜杠的问题
Oct 23 Python
python 判断参数为Nonetype类型或空的实例
Oct 30 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
Apr 15 Python
python argparser的具体使用
Nov 10 Python
PyTorch的SoftMax交叉熵损失和梯度用法
Jan 15 Python
Python编程快速上手——疯狂填词程序实现方法分析
Feb 29 Python
使用python实现飞机大战游戏
Mar 23 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
Mar 24 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
Aug 17 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
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
基于Zend的Config机制的应用分析
2013/05/02 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
php实现的后台表格分页功能示例
2017/10/23 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
2018/05/23 PHP
图片自动缩小 点击放大
2008/07/07 Javascript
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
javascript 基础篇2 数据类型,语句,函数
2012/03/14 Javascript
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
javascript加载xml 并解析各节点的值(实现方法)
2016/10/12 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
js实现纯前端压缩图片
2020/11/16 Javascript
JS如何监听div的resize事件详解
2020/12/03 Javascript
Redis使用watch完成秒杀抢购功能的代码
2018/05/07 Python
Python用csv写入文件_消除空余行的方法
2018/07/06 Python
Python双链表原理与实现方法详解
2020/02/22 Python
django-利用session机制实现唯一登录的例子
2020/03/16 Python
Python虚拟环境库virtualenvwrapper安装及使用
2020/06/17 Python
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
MADE荷兰:提供原创设计师家具
2018/04/03 全球购物
英国地毯卖家:The Rug Seller
2019/07/18 全球购物
行政助理岗位职责
2013/11/10 职场文书
采购部部门职责
2013/12/15 职场文书
药剂专业自荐信范文
2014/04/16 职场文书
2014幼儿园教师师德师风演讲稿
2014/09/10 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
党员干部四风问题整改措施思想汇报
2014/10/12 职场文书
如何在Python中创建二叉树
2021/03/30 Python
OpenCV-Python模板匹配人眼的实例
2021/06/08 Python
Python基础之条件语句详解
2021/06/16 Python
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android
画错魏国疆域啦!《派对咖孔明》动画因作画失误于官网致歉
2022/04/07 日漫