长文本划窗切片算法

给定一段长文本,对长文本进行滑动窗口,切成一系列更短的文本,其中切片后的最小文本长度和窗口滑动的步长作为参数,且切分后每段文本都是完整的句子。断句标点可自行限制范围。

这种切割方式可以用于为长文本的数据处理作准备。

实现代码

import re
import numpy as npclass text_cut:def __init__(self,min_len =20,step=10, stop_list = None):self.min_len = min_len #自定义最短长度self.step = step #自定义划窗步长if stop_list and isinstance(stop_list,list):self.stop_list = stop_list #自定义分割标点符else:self.stop_list = ['.','!','|','。','!',';',';','?','?',',']self.split_patten = '[' + ''.join(self.stop_list) + ']'def find_now_index(self,now_point,sum_len_list):for i in range(len(sum_len_list)-1):if now_point >= sum_len_list[i] and now_point < sum_len_list[i+1]:return i+1else:return 0def cut(self,text):if not isinstance(text,str):raise TypeErrorspilt_text = re.split(self.split_patten,text)len_list = np.array([len(x) for x in spilt_text])sum_len_list = np.cumsum(len_list)result_list = []end_point = 0pre_index = 0while end_point <= sum_len_list[-1]:end_point += self.stepnow_index = self.find_now_index(end_point,sum_len_list)if np.sum(len_list[pre_index:now_index]) >= self.min_len:result_list.append(''.join(spilt_text[pre_index:now_index]))pre_index = now_indexreturn result_listdef main():text = '都市快报讯 “二九”过完是“三九”,目前正是一年最冷的时候。有人开玩笑说,每天在户外,感觉自己像一根行走着的棒冰。\
浙江省气象台统计,2021年的第一个10天(1月1日至1月10日),全省平均降水量1毫米,比常年同期偏少93%;全省平均气温3.2℃,比常年同期偏低2.9℃。不仅降水偏少,而且气温偏低。\
在快抱App的杭友圈里,刷屏的帖子不是西湖结冰,就是家里的花缸结冰,或者挂在室外的衣服、毛巾冻住了。\
天寒地冻的日子本周还会继续吗?好消息是,杭州已经明显从“冷冻层”来到了“冷藏层”。杭州市气象台说,目前,冷空气的残余势力已经越来越弱,气温已经在缓慢回升,之所以升温慢,是因为昨天有一股弱冷空气补充影响。'c_ = text_cut()result_list = c_.cut(text)print(result_list)print([len(x) for x in result_list])if __name__ == '__main__':main()#----------------
/usr/local/bin/python3 /Users/zhengyanzhao/PycharmProjects/cut_text/text_cut.py都市快报讯 “二九”过完是“三九”,目前正是一年最冷的时候
有人开玩笑说,每天在户外,感觉自己像一根行走着的棒冰
浙江省气象台统计,2021年的第一个10天(1月1日至1月10日),全省平均降水量1毫米,比常年同期偏少93%
全省平均气温32℃,比常年同期偏低29℃
不仅降水偏少,而且气温偏低在快抱App的杭友圈里,刷屏的帖子不是西湖结冰,就是家里的花缸结冰,或者挂在室外的衣服、毛巾冻住了
天寒地冻的日子本周还会继续吗好消息是,杭州已经明显从“冷冻层”来到了“冷藏层”[29, 26, 55, 20, 62, 39]

【长文本处理】长文本划窗分割算法相关推荐

  1. 自动调整图片方向并划窗剪裁

    ❝ 最近在"2021广东工业智造创新大赛 智能算法赛:瓷砖表面瑕疵质检" 中遇到一些图片,有不同角度偏差.类似卫星图,分辨率特别大,目标却特别小,这就需要对原始图片自动调整角度,划 ...

  2. 直播预告 | 长文本知识抽取:基于语义分割的文档级三元组关系抽取

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

  3. 火狐FireFox和IE浏览器的title属性文本过长显示不全问题

    火狐FireFox和IE浏览器的title属性文本过长显示不全问题 场景 当显示文本的内容过长,可以截断文本,省略号显示,然后给标签设置title属性,鼠标移入的时候显示完整内容.但在火狐和IE浏览器 ...

  4. vim文本太长如何换行

    在Linux系统(centos7)中,有时候用vim编辑文本时,有时候因为文本太长,导致浏览或者编辑不方便. 首先在输入命令 vim -/.vimrc 1 syntax enable 2 syntax ...

  5. vue echarts x轴文本过长,设置超出隐藏显示省略号,鼠标悬浮上显示全部

    1. 原生js版本  源码如下: <!DOCTYPE html> <html lang="en"><head><meta charset= ...

  6. echarts y轴文本过长,设置超出隐藏,然后显示省略号,并且鼠标悬浮上之后显示全部

    Echarts 标签中文本内容太长的时候怎么办 ? 看如下两块有分别说明: 具体代码如下: <!--引入js文件--> <script src="${ctx}/tiles/ ...

  7. 下拉框文本过长折行显示

    下拉筛选框的下拉选择项有字数很长的情况,实现当字数过长时,文本折行显示 vue项目中使用elmentui的下拉框组件.但是下拉框的样式,不在el-select的DOM里面,而是放在了最外层.直接修改下 ...

  8. Java文本处理12-找出文本最长句与最短句并计算方差

    1.任务简介 在分句完成后我们可以统计出每一个句子的长度(指句子包含的汉字数),在此基础上我们可以找出最长的句子和最短的句子,并且可以计算出句子长度的方差,本节任务的第一个程序是将结果打印出来,第二个 ...

  9. html文本过长自动换行,css 长文本及长链接自动换行的几种方法

    方法一:你定死表格的宽度,即给表格一个宽度值(是数值,不是百分比) 方法二:强制不换行 div{//white-space:不换行;normal 默认;nowrap强制在同一行内显示所有文本,直到文本 ...

最新文章

  1. 【大牛招生】李飞飞的实验室招人了!不限专业,有跨学科研究经验优先
  2. 安装exchange server 2003服务器
  3. jmete 学习--基础之名词解释
  4. 安卓第六夜 凡高的自画像
  5. 微矿Qlib:业内首个AI量化投资开源平台
  6. python: ubuntu下把py2.7改成py3
  7. php日历天气预报下载安装手机桌面_日历天气预报下载安装app_手机桌面时钟日历天气软件下载 安卓版 V7.5.1 - 罐头安卓网...
  8. [车联网安全自学篇] Android安全之静态逆向APK应用浅析「手动注入smali」+「IDA Pro静态分析so文件」+「IDA Pro基础使用讲解」
  9. WS小世界网络模型构造算法
  10. matlab无人机路径规划,一种新的优化算法,天牛群算法,比蚁群算法效果好,收敛快
  11. 如何使用快应用内置地图查看、导航位置
  12. 清明服务器维护,清明游戏服务器
  13. 高性能、可扩展、跨平台的实用工具 Gloo 亮相 DockerCon,现代化应用即可拥有!...
  14. 气相色谱仪的基本原理与结构
  15. NPM型的生态就是热带雨林型的生态——WebCell前端框架作者水歌访谈实录
  16. Sim 卡运营商获取
  17. 关于读博士的一些感想
  18. NI-VISA写入与读写错误1073807339
  19. 【知识图谱】命名实体识别(NLP)
  20. 银川计算机中专学校,2021年银川有哪些中专学校,银川比较好的中专学校名单

热门文章

  1. 初识powershell、nuget powershell 调试
  2. wannalfy 挑战赛8 F 白云的树(树形dp)
  3. xshell连不上虚拟机linux的解决办法(用的默认NAT模式)
  4. 【原创】android——SQLite的cmd命令的基本操作
  5. Oracle 启动监听命令
  6. ASP.NET定时调用WebService 运行后台代码
  7. machit r语言_机器学习应该准备哪些数学预备知识?
  8. 服务器中显示存储设备,服务器节点信息集中显示方法、系统、设备及存储介质...
  9. 毕业论文 | 便携式环境烟雾监测器(源码、电路图)
  10. 北斗导航 | 北斗系统信息处理创新技术(学术PPT分享附视频)