python实现中文文本分句的例子

作者:Belle_z_z 时间:2023-02-15 12:16:24 

对于英文文本分句比较简单,只要根据终结符"."划分就好,中文文本分句看似很简单,但是实现时会遇到很多麻烦,尤其是处理社交媒体数据时,会遇到文本格式不规范等问题。

下面代码针对一段一段的短文本组成了文档分句


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

标签:python,中文,文本,分句
0
投稿

猜你喜欢

  • 日常收集整理的Git常用命令

    2022-10-03 08:12:40
  • python读取并定位excel数据坐标系详解

    2022-02-25 19:01:00
  • Python合并pdf文件的工具

    2021-09-09 23:28:47
  • 浅谈mysql通配符进行模糊查询的实现方法

    2024-01-13 02:56:33
  • Python入门教程(十八)Python的For循环

    2021-07-30 04:09:59
  • PHP求最大子序列和的算法实现

    2023-11-15 04:17:28
  • SQL Server 2005中数据库镜像的四个问题

    2009-02-19 16:48:00
  • VBScript中变量作用域

    2007-11-02 10:03:00
  • [翻译]标记语言和样式手册 Chapter 15 为body指定样式

    2008-02-21 12:36:00
  • Python实现CNN的多通道输入实例

    2021-10-10 11:33:07
  • Mysql最新版8.0.21下载安装配置教程详解

    2024-01-21 23:58:17
  • 理解CSS3线性渐变

    2010-03-28 13:42:00
  • 详解pyinstaller selenium python3 chrome打包问题

    2023-08-12 08:26:40
  • MySQL绿色解压缩版安装与配置操作步骤

    2024-01-14 07:00:15
  • Apifox Echo学习curl httpie 命令使用详解

    2022-06-19 22:33:00
  • request基本使用及各种请求方式参数的示例

    2021-03-31 02:32:52
  • Python实现的多线程端口扫描工具分享

    2023-03-30 04:32:19
  • Python基于递归算法实现的汉诺塔与Fibonacci数列示例

    2021-07-01 15:57:12
  • 瞬间的设计 I

    2009-12-25 18:54:00
  • Python 中如何写注释

    2022-07-10 21:53:11
  • asp之家 网络编程 m.aspxhome.com