在日常工作中有时候会遇到这样的情况,一些中文句子需要通过标点符号将它们断开,效果如下图。

python实现标点符号断开句子方法

如果想通过标点符号将句子断开应该怎么实现呢?如上图,如果想要得到“Python基础教程”,和“Python入门教程(非常详细)”这两个句子,就需要让整句通过“,”断开。如何利用python实现呢?

思路:将全文的想要切开的标点符号替换成固定的符号,例如:“-”,然后通过“-”前后获取不同的句子,实现标点符号断句。

考察知识点:重点考察python的re模块的使用,对正则表达式的运用,以及文件操作。

代码如下:

from pathlib import Path
import re #导入需要的模块
p1=Path(‘1.txt’) #原始文件路径,建议与程序目录相同的相对路径
with p1.open(‘r’) as file: #打开原始文件
    article=file.read() #获取原始文件的文字
mark=[‘?’,‘,’,‘-‘,‘|’,‘_’,‘–’,\n] #这里存放想要切开的标点符号
for m in mark: #遍历文件并将想要切开的标点符号统一替换成“-”
    for n in article:

        if m==n:
            article=article.replace(m,‘-‘)
regex=re.compile(‘[^-]+(?=-|\n)’) #正则表达式匹配句子,并通过“-”符号将句子断开
r=regex.findall(article)

t=set(r) #将得到的句子存放在一个集合中,去除其中的重复项
with open(‘2.txt’,‘w’) as newfile: #新建一个txt文件用于存放新的句子
    a = (i for i in t)

    for x in a:
        newfile.write(x+\n)

通过上面的代码就能实现利用标点符号将句子断开的目的,具体效果如下图。

python实现标点符号断开句子方法

改进点:有时候像“百度百科”、“菜鸟教程”、“知乎”等这样的短句子不是我们想要的。这个可以在正则表达式中固定匹配句子的长度,实现过滤掉字数较少的句子。

评论
头像
验证码:
相关推荐

七年之痒是什么意思

520送什么给女友

第一次见女方父母送什么好




如果未经特殊说明,本站内容皆为原创,转载内容如果侵犯了您的权益,如有侵权请联系管理员删除
联系QQ:2380712278

备案号:皖ICP备19012824号