将一篇文章分割成多条完成的句子(中文英文兼容)

将一篇文章分割成多条完成的句子(中文英文兼容)

paperClub

2022.10.27 18:06:10字数 877

编辑文章

利用正则表达式将一篇文章分割成多条完成的句子。

例如:如下一篇文章,需要分割成一句一句的文字:

paperClub分享一款免费的强大办公工具。我们开发了一款简单的办公小工具,paperBox,下面给大家演示一下他的功能。这里主要涉及两种情况:

(1)图片直接进行等比缩放,图片缩放为原来的0.5倍,或 缩放为原来的2倍;

(2)需要固定图像的长和宽,同时保存图片不变形,如将原来 600 x 800的图片调整为宽 300, 高300,同时保持图片不变形和扭曲,这情况主要见于证件照缩放等应用场景。

(3)PaperClub shares a powerful free office tool. We have developed a simple office gadget, paperBox. Let's demonstrate its functions. There are mainly two situations involved here

———————————————————————————————————————————————

分割结果:

第 1 句:paperClub分享一款免费的强大办公工具。

第 2 句:我们开发了一款简单的办公小工具,paperBox,下面给大家演示一下他的功能。

第 3 句:这里主要涉及两种情况:

第 4 句:(1)图片直接进行等比缩放,图片缩放为原来的0.5倍,或 缩放为原来的2倍;

第 5 句:(2)需要固定图像的长和宽,同时保存图片不变形,如将原来 600 x 800的图片调整为宽 300, 高300,同时保持图片不变形和扭曲,这情况主要见于证件照缩放等应用场景。

第 6 句:(3)PaperClub shares a powerful free office tool.

第 7 句: We have developed a simple office gadget, paperBox.

第 8 句: Let's demonstrate its functions.

第 9 句: There are mainly two situations involved here

-----------------------------------------------------------------

方法:

import re

from typingimport List

def docment_cutter(sentences:str) -> List:

""" 将一篇文章分割成多条完成的句子。"""

  sentences = re.sub('([。!?\?])([^”’])', r"\1\n\2", sentences)

sentences = re.sub('([\.;])(\s)', r"\1\n\2", sentences)# 英文断句

  sentences = re.sub('(\.{6})([^”’])', r"\1\n\2", sentences)# 英文省略号

  sentences = re.sub('(\…{2})([^”’])', r"\1\n\2", sentences)# 中文省略号

  sentences = re.sub('([。!?\?][”’])([^,。!?\?])', r'\1\n\2', sentences)

sentences = sentences.rstrip()

return list(filter(bool, sentences.split("\n")))

texts ="""paperClub分享一款免费的强大办公工具。我们开发了一款简单的办公小工具,paperBox,下面给大家演示一下他的功能。这里主要涉及两种情况:

(1)图片直接进行等比缩放,图片缩放为原来的0.5倍,或 缩放为原来的2倍;

(2)需要固定图像的长和宽,同时保存图片不变形,如将原来 600 x 800的图片调整为宽 300, 高300,同时保持图片不变形和扭曲,这情况主要见于证件照缩放等应用场景。

(3)PaperClub shares a powerful free office tool. We have developed a simple office gadget, paperBox. Let's demonstrate its functions. There are mainly two situations involved here

"""

sentences = docment_cutter(texts)

for i, sentencein enumerate(sentences):

print(f"第 {i+1} 句:{sentence}")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值