要處理文檔,需要將一個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出來的結果是
['帥府護病房', '手機動畫', ''] ['歲的胡思凡', '是對俄方', '']