python实现中文文本分句的例子
作者:Belle_z_z 发布时间:2023-02-15 12:16:24
标签:python,中文,文本,分句
对于英文文本分句比较简单,只要根据终结符"."划分就好,中文文本分句看似很简单,但是实现时会遇到很多麻烦,尤其是处理社交媒体数据时,会遇到文本格式不规范等问题。
下面代码针对一段一段的短文本组成了文档分句
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有风险,操作需谨慎!
闺女同学家养了一只鹦鹉,两只珍珠鸟,一只猫,两只仓鼠。
鹦鹉是老大,珍珠鸟怕它,猫是后进家的,也怕鹦鹉。
仓鼠经常溜出笼子,据说猫会把它逮住塞回笼子。
得到了比较好的分句结果,也不会丢失信息。
来源:https://blog.csdn.net/belle_zhe/article/details/88699077
0
投稿
猜你喜欢
- 本文实例讲述了php实现搜索一维数组元素并删除二维数组对应元素的方法。分享给大家供大家参考。具体如下:定义一个一维数组一个二维数组如下$fr
- 在附加数据库后查看不了数据库关系图,也无法建立数据库关系图 我的解决方法如下: 1、设置兼容级别为90(2005为90)(2000为80)
- 想当初,考研的时候要是知道有这么个好东西,计算定积分。。。开玩笑,那时候计算定积分根本没有这么简单的。但这确实给我打开了一种思路,用编程语言
- 前言from collections import namedtuple()命名元祖的工厂函数:在python中,collections 包
- 因为工作中需要,需要生成一个带表格的图片例如:直接在html中写一个table标签,然后单独把表格部分保存成图片或者是直接将excel中的内
- 最近需要做集团的SRC系统。暂无安全研发,所以只能找我这个小菜兼职开发。系统使用Django框架,在整个过程中,有许多奇特的需求。在某项需求
- 什么是组播点对点连接可以处理很多通信需求,不过随着直接连接数的增加,在多对通信方之间传递相同的消息会变得越来越困难。单独地向各个接收方发送消
- 一、基本概念APScheduler全称Advanced Python Scheduler 作用为在指定的时间规则执行指定的作业。指定时间规则
- 同一进程下的多个线程共享内存数据,多个线程之间没有主次关系,相互之间可以操作;cpu执行的都是线程,默认程序会开一个主线程;进程是程序以及和
- 前言在任何编程语言中,代码需要根据不同的条件在给定的输入中做不同的决定和执行相应的动作。例如,在一个游戏中,如果玩家生命点为0,游戏结束。在
- 一、前言班花加我说她电话坏了让我看看,那肯定义不容辞!【兴奋了半个小时】没别的我就想秀一下技术!五分钟后我修好了,电脑重启之后显示输入密码,
- 一、装饰器的本质:装饰器(decorator)本质是函数闭包(function closure)的语法糖(Syntactic sugar)函
- --语 句 功 能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库
- 在ASP.NET2.0通过SMTP的验证发送EMAIL ,代码如下:’Create a new MailMes
- <% dim conn,mdbfile mdbfile=server.mappath("数据库名称.mdb") s
- JavaScript是一门OOP,而有些人说,JavaScript是基于对象的。1) 如何创建对象:1. 使用constructor,例如:
- 表达式的优先级表达式(Expression)是运算符(operator)和操作数(operand)所构成的序列代码段a = 1b = 2c
- 惊现!表面下的隐藏信息——浅谈信息可视化1910年,病卧床上的魏格那(德国气象学家,以“大陆漂移学说”闻名),无意地注视着墙上的世界地图……
- 然而,微软sql server在处理这类索引时,有个重要的缺陷,那就是把本该编译成索引seek的操作编成了索引扫描,这可能导致严重性能下降
- Symfony2是一个基于PHP语言的Web开发框架,有着开发速度快、性能高等特点。本文以一个程序示例的实现过程详细叙述了Symfony2框