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解析发往本机的数据包示例 (解析数据包)
Jan 16 Python
python中import学习备忘笔记
Jan 24 Python
Python中如何优雅的合并两个字典(dict)方法示例
Aug 09 Python
Python中类的初始化特殊方法
Dec 01 Python
Python视频爬虫实现下载头条视频功能示例
May 07 Python
使用matplotlib画散点图的方法
May 25 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
Python过滤序列元素的方法
Jul 31 Python
Python 读取位于包中的数据文件
Aug 07 Python
python解包概念及实例
Feb 17 Python
教你怎么用PyCharm为同一服务器配置多个python解释器
May 31 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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
PHP中header用法小结
2016/05/23 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
iframe 自适应高度[在IE6 IE7 FF下测试通过]
2009/04/13 Javascript
jquery 插件学习(四)
2012/08/06 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
JS通过ajax动态读取xml文件内容的方法
2015/03/24 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
jQuery Validation Plugin验证插件手动验证
2016/01/26 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
通过实例解析js简易模块加载器
2019/06/17 Javascript
vue使用nprogress实现进度条
2019/12/09 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
django接入新浪微博OAuth的方法
2015/06/29 Python
Python中Class类用法实例分析
2015/11/12 Python
基于Python实现一个简单的银行转账操作
2016/03/06 Python
Python实现TCP/IP协议下的端口转发及重定向示例
2016/06/14 Python
python抓取并保存html页面时乱码问题的解决方法
2016/07/01 Python
python中子类继承父类的__init__方法实例
2016/12/15 Python
Python代码实现KNN算法
2017/12/20 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
在Django model中设置多个字段联合唯一约束的实例
2019/07/17 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
酒店服务与管理毕业生求职信
2013/11/02 职场文书
总经理秘书的岗位职责
2013/12/27 职场文书
奠基仪式策划方案
2014/05/15 职场文书
团日活动总结模板
2014/06/25 职场文书
学生考试舞弊检讨书
2015/01/01 职场文书
小学少先队辅导员述职报告
2015/01/10 职场文书
意向协议书
2015/01/27 职场文书
高中运动会前导词
2015/07/20 职场文书