[问题] 截取中文字 资料清洗

楼主: Pear888 (皮尔掰)   2017-11-21 22:57:16
小弟想要把网络上截取的留言做资料清洗
只留下中文字
在网络上看到以下编码
#!/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.有其他推荐方法可以只留下中文字
去处全角标点符号跟表情符号吗
感谢!
作者: skyHuan (Huan)   2017-11-21 23:37:00
用re.sub删掉不要的符号呢chstring = re.sub(r'[a-zA-Z0-9(){}《》::%?=※\s+\.\!\/_$%^*(+\"\']+|[+——!,?、[email protected]#¥%……&*()。,“”-]+','',sample)
楼主: Pear888 (皮尔掰)   2017-11-22 01:02:00
好像可以耶感谢,只剩表情符号这样不能处理~~好像不行 中文字有的会变乱码耶
作者: cyf0531 (46Celsius)   2017-11-22 17:52:00
我是用 Zhon punctuation 你可以试试
作者: vi000246 (Vi)   2017-11-22 18:12:00
你可以用负向匹配的 把不是中文的字符取代掉re.sub('[^\u4e00-\u9fff]+', '', s)
作者: TitanEric (泰坦)   2017-11-22 23:22:00
感觉楼上的方法不错
作者: goldflower (金色小黄花)   2017-11-23 04:24:00
首先应该可以考虑搬家到python3了然后用cyf大说的zhon和string内的puctuation就能解大部分 最后利用table+translate的方式来做这方法应该是python中跑最快的 re稍慢一点像numpy jupyter pandas...不少都说以后不支援py2了
楼主: Pear888 (皮尔掰)   2017-11-23 11:01:00
C大 G大可以示范一下zhon的作法吗~小弟新手print re.sub(ur"[%s]+" %punctuation, "", line.decode("utf-8")) 没有替代效果
作者: goldflower (金色小黄花)   2017-11-23 16:44:00
https://goo.gl/Uw6uuc 不过python2我记得语法要改呃为啥gist会被锁啊 = = 晚点有空再弄https://tinyurl.com/y7dvolu9
楼主: Pear888 (皮尔掰)   2017-11-24 11:05:00
用python3编译可以了感谢!接着要处理emoji了~
作者: goldflower (金色小黄花)   2017-11-24 15:04:00
我发现我punctuation另一个没建只用maxunicode哈哈这样根本没用到zhon的东西XD 反正就跟eng_table一样

Links booklink

Contact Us: admin [ a t ] ucptt.com