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出来的结果是

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM