要进行中文分词,必须要求数据格式全部都是中文,需求过滤掉特殊符号、标点、英文、数字等。当然了用户可以根据自己的要求过滤自定义字符。
实验环境:python、mysql
实验目的:从数据库读取数据,过滤点无用字符,然后存入到数据库一个表里面。
代码如下:
# -*- coding: UTF-8 -*-
import MySQLdb as mdb
import re
def 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'版权声明:本文为a1b2c3d4123456原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。