用python进行数据预处理,过滤特殊符号,英文和数字。(适用于中文分词)

来源:互联网 发布:securecrt安装 Mac 版 编辑:程序博客网 时间:2024/04/19 16:22

要进行中文分词,必须要求数据格式全部都是中文,需求过滤掉特殊符号、标点、英文、数字等。当然了用户可以根据自己的要求过滤自定义字符。
实验环境:python、mysql

实验目的:从数据库读取数据,过滤点无用字符,然后存入到数据库一个表里面。

代码如下:

# -*- coding: UTF-8 -*-import MySQLdb as mdbimport  redef createStatistics():    """ 创建新的微博内容表 """    try:        con = mdb.connect('localhost', 'root', '数据库密码', '数据库',charset='utf8');#        with con:            #获取连接的cursor,只有获取了cursor,我们才能进行各种操作            cur = con.cursor()            #创建一个数据表 writers(id,name)            cur.execute("DROP TABLE IF EXISTS new")            cur.execute("CREATE TABLE new (\            uid varchar(255) NOT NULL,\            mid varchar(255) NOT NULL,\            time date ,\            content text CHARACTER SET utf8 NOT NULL\            ) ENGINE=MyISAM DEFAULT CHARSET=latin1;")            cur.execute("SELECT * FROM old")            numrows = int(cur.rowcount)            rows = cur.fetchall()            r1 = u'[a-zA-Z0-9’!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘’![\\]^_`{|}~]+'#用户也可以在此进行自定义过滤字符            r2 = u'\s+;'            for i in range(numrows):                tem=re.sub(r1, '', rows[i][3]) #过滤内容中的各种标点符号                cur.execute("INSERT INTO new(uid,mid,time,content) VALUES(%s, %s, %s, %s)", (rows[i][0], rows[i][1], rows[i][2], tem))    except mdb.Error,e:        print "Mysql Error %d: %s" % (e.args[0], e.args[1])        con.close()createStatistics()print 'done'
1 0
原创粉丝点击