作者Pear888 (皮尔掰)
看板Python
标题[问题] 截取中文字 资料清洗
时间Tue Nov 21 22:57:16 2017
小弟想要把网路上截取的留言做资料清洗
只留下中文字
在网路上看到以下编码
#!/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://webptt.com/cn.aspx?n=bbs/Python/M.1511276238.A.472.html
1F:推 skyHuan: 用re.sub删掉不要的符号呢 11/21 23:37
2F:→ skyHuan: chstring = re.sub(r'[a-zA-Z0-9(){}《》::%?=※\s+\.\ 11/21 23:43
3F:→ skyHuan: !\/_$%^*(+\"\']+|[+——!,?、~@#¥%……&*()。,「 11/21 23:43
4F:→ skyHuan: 」-]+','',sample) 11/21 23:43
5F:→ Pear888: 好像可以耶感谢,只剩表情符号这样不能处理~~ 11/22 01:02
6F:→ Pear888: 好像不行 中文字有的会变乱码耶 11/22 01:54
7F:推 cyf0531: 我是用 Zhon punctuation 你可以试试 11/22 17:52
8F:推 vi000246: 你可以用负向匹配的 把不是中文的字元取代掉 11/22 18:12
9F:推 vi000246: re.sub('[^\u4e00-\u9fff]+', '', s) 11/22 18:15
10F:推 TitanEric: 感觉楼上的方法不错 11/22 23:22
11F:推 goldflower: 首先应该可以考虑搬家到python3了 11/23 04:24
12F:→ goldflower: 然後用cyf大说的zhon和string内的puctuation就能解大 11/23 04:25
13F:→ goldflower: 部分 最後利用table+translate的方式来做 11/23 04:26
14F:→ goldflower: 这方法应该是python中跑最快的 re稍慢一点 11/23 04:26
15F:→ goldflower: 像numpy jupyter pandas...不少都说以後不支援py2了 11/23 04:27
16F:→ Pear888: C大 G大可以示范一下zhon的作法吗~小弟新手print re.sub 11/23 11:01
17F:→ Pear888: (ur"[%s]+" %punctuation, "", line.decode("utf-8")) 没 11/23 11:01
18F:→ Pear888: 有替代效果 11/23 11:01
20F:推 goldflower: 呃为啥gist会被锁啊 = = 晚点有空再弄 11/23 16:51
22F:→ Pear888: 用python3编译可以了感谢!接着要处理emoji了~ 11/24 11:05
23F:推 goldflower: 我发现我punctuation另一个没建只用maxunicode哈哈 11/24 15:04
24F:→ goldflower: 这样根本没用到zhon的东西XD 反正就跟eng_table一样 11/24 15:04