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


猜你喜欢
- 下面这个例子描述的是在Godaddy-Linux托管帐户上使用JSP连接到某个MySQL数据库。 <%@ page
- 1. 简介(Introduction)官方原文本文翻译了原文并加入了自己的理解。主要介绍多个 Go协程之间对同一个变量并发读写时需要注意的同
- 1、requests 的常见用法requests 除了 url 之外,还有 params, data 和 files 三个参数,用于和服务器
- 背景:Email地址存于MSSql一用户信息表中,数量上万。公司自有服务器,集SMTP,POP3,WWW,FTP,MSSql,DNS等多种服
- 一、这种布局的优点项目中的每个应用都相对独立,方便以后拿出来重用。这样的布局会促使你在开发过程中考虑每个应用的重用性。开发、测试、生产等不同
- 手写数字识别(小白入门)今早刚刚上了节实验课,关于逻辑回归,所以手有点刺挠就想发个博客,作为刚刚入门的小白,看到代码运行成功就有点小激动,这
- 默认情况下,Python 源码文件以 UTF-8 编码方式处理。在这种编码方式中,世界上大多数语言的字符都可以同时用于字符串字面值、变量或函
- 一、引子Django 分页查询并返回 json ,需要将返回的 queryset 序列化, demo 如下:# coding=UTF-8im
- 有一张工资表SALARY如下, (NO 员工编号 ,MONEY 工资)NO NAME &nbs
- 本文实例讲述了Python实现的对一个数进行因式分解操作。分享给大家供大家参考,具体如下:在数学中,我们可能会对一个数进行因式分解,如何用P
- 0x00:事先说明你已经攻陷了对方主机且获得了最高权限。对方的本地防火墙会丢弃所有的外来数据包。这个后门不会仅绑定在某一个端口上。这段代码很
- 一、Celery介绍和基本使用 Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如
- python类class定义及其初始化定义类,功能,属性一般类名首字母大写class Calculator:#名字和价格是属性
- 本文转自微信公众号:"算法与编程之美"1、前言侧滑是一个非常实用的选项组件,它在Android App应用中非常广泛,常
- asyncore即是一个异步的socket封装,特别是dispatcher类中包含了很多异步调用的socket操作方法。模块常见方法这个模块
- MySQL 复制详解及简单实例 主从复制技术在MySQL中被广泛使用,主要用于同步一台服务器上的数据至多台从服务器,可以用于实现负
- nilGo中,每个指针都有2个基本信息,指针的类型和指针的值(type,value);当执行==时,需要比较类型与值(只有类型与值都相等时,
- 工具:Pycharm,Django1.11.9.1.下载django_admin_bootstrappedpip install djang
- 想想你在一家公司里做表格,现在有一个下面这样的excel表摆在你面前,这是一个员工每个月工资的表,现在假设,你要做的事情,是填充好后面几个月
- 1. 引言Python目前是世界上使用最多的编程语言之一。它能够以更少的工作量和更少的代码行数来完成许多事情。它还可以使用很少的代码行来方便