看板 Python 關於我們 聯絡資訊
小弟想要把網路上截取的留言做資料清洗 只留下中文字 在網路上看到以下編碼 #!/usr/bin/env python # -*- encoding: utf8 -*- import re sample = u'I am from 美国。We should be friends. 朋友。' for n in re.findall(ur'[\u4e00-\u9fff]+',sample): print n 1.想請問這unicode是只有簡體字的範圍嗎 還是可以改成大五碼嗎 2.有其他推薦方法可以只留下中文字 去處全形標點符號跟表情符號嗎 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.226.7 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1511276238.A.472.html
skyHuan: 用re.sub刪掉不要的符號呢 11/21 23:37
skyHuan: chstring = re.sub(r'[a-zA-Z0-9(){}《》::%?=※\s+\.\ 11/21 23:43
skyHuan: !\/_$%^*(+\"\']+|[+——!,?、~@#¥%……&*()。,「 11/21 23:43
skyHuan: 」-]+','',sample) 11/21 23:43
Pear888: 好像可以耶感謝,只剩表情符號這樣不能處理~~ 11/22 01:02
Pear888: 好像不行 中文字有的會變亂碼耶 11/22 01:54
cyf0531: 我是用 Zhon punctuation 你可以試試 11/22 17:52
vi000246: 你可以用負向匹配的 把不是中文的字元取代掉 11/22 18:12
vi000246: re.sub('[^\u4e00-\u9fff]+', '', s) 11/22 18:15
TitanEric: 感覺樓上的方法不錯 11/22 23:22
goldflower: 首先應該可以考慮搬家到python3了 11/23 04:24
goldflower: 然後用cyf大說的zhon和string內的puctuation就能解大 11/23 04:25
goldflower: 部分 最後利用table+translate的方式來做 11/23 04:26
goldflower: 這方法應該是python中跑最快的 re稍慢一點 11/23 04:26
goldflower: 像numpy jupyter pandas...不少都說以後不支援py2了 11/23 04:27
Pear888: C大 G大可以示範一下zhon的作法嗎~小弟新手print re.sub 11/23 11:01
Pear888: (ur"[%s]+" %punctuation, "", line.decode("utf-8")) 沒 11/23 11:01
Pear888: 有替代效果 11/23 11:01
goldflower: https://goo.gl/Uw6uuc 不過python2我記得語法要改 11/23 16:44
goldflower: 呃為啥gist會被鎖啊 = = 晚點有空再弄 11/23 16:51
goldflower: https://tinyurl.com/y7dvolu9 11/23 16:53
Pear888: 用python3編譯可以了感謝!接著要處理emoji了~ 11/24 11:05
goldflower: 我發現我punctuation另一個沒建只用maxunicode哈哈 11/24 15:04
goldflower: 這樣根本沒用到zhon的東西XD 反正就跟eng_table一樣 11/24 15:04