Python关于文本中标点符号及其他的替换

要处理文档,需要将一个TXT文档(如用户评论)的评论段将其所有的标点符号前后的评论都分成每一行。如:

帅府护病房,手机动画。  
岁的胡思凡,是对俄方。

 处理成:

帅府护病房 手机动画  
岁的胡思凡 是对俄方

 这样方便Python进一步对文本进行处理。通常有以下两种处理:

 

1 from string import punctuation  
2 import re  
3 lis=['帅府护病房,手机动画。','岁的胡思凡,是对俄方。']  
4 b=["/".join([c for c in x if c not in punctuation])  for x in lis]  
5 print(b)
6 #['帅/府/护/病/房/手/机/动/画/。', '岁/的/胡/思/凡/,/是/对/俄/方/。']   
7 c=[ re.sub(r'[{}]+'.format(punctuation),'/',x ) for x in lis]  
8 print(c)
9 #['帅府护病房/手机动画。', '岁的胡思凡,是对俄方。'] 

显然第一种是对每一个字进行判断,这样达不到预期,而第二种进过对punctuation的print

!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 

其实punctuation就是一个英文的标点库,那么把中文的也加进去就没有任何问题了。

1 import re
2 lis=['帅府护病房,手机动画。','岁的胡思凡,是对俄方。']
3 e=[ re.sub(r'[{}]+'.format(haha),'/',x ) for x in lis]
4 print(e)
5 for i in e:
6     ee=i.split('/')
7     print(ee)

这样print出来的结果是

['帅府护病房', '手机动画', '']
['岁的胡思凡', '是对俄方', '']

 

转载于:https://www.cnblogs.com/yinruyi/p/4318814.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值