龙空技术网

4个步骤教你轻松完成文本挖掘预处理(附python代码)

科技州与数据州 110

前言:

现在大家对“python中文预处理”大约比较珍视,看官们都想要了解一些“python中文预处理”的相关内容。那么小编在网摘上网罗了一些关于“python中文预处理””的相关内容,希望朋友们能喜欢,大家快快来学习一下吧!

各位数据挖掘小伙伴,当你好不容易从网页上爬取了一大堆文本意见,然后摩拳擦掌准备大干一番时,忽然发现文本里面有很多乱七八糟的东西,比如:标点、重复词句、字符、无意义短句等等,是不是感觉有点无助。像图1。

下面介绍4个步骤,教你搞定上面问题。

步骤1.删掉中文里面的字母、数字、符号等噪声

咱们做中文含义分析时,不用管英语、字符、数字这些内容。这里主要使用正则表达式来删除标点符号、英文和数字。

关键代码包括:

r='[\\s+\\.!\\/_,$%^*(+\\"\\')]+|[::+——()?【】“”!,。?、~@#¥%……&*()]+'

r1='[^\\u4e00-\\u9fa5]'

for a_string in filelist:

a_string=str(a_string)

temp = re.sub(r,'',a_string) #删除标点符号

temp = re.sub(r1,'',temp) #删除英文和数字

filelist2.append(temp)

步骤2. 把重复的语句删掉

相同的话说两遍肯定没有意义,所以后面的完全重复语句通通删掉。

关键代码包括:

data = pd.DataFrame(data[0].unique())

步骤3. 连续的相同字词压缩

像“哈哈哈哈”、“很好很好很好”这种不严肃的表达,都需要精简为人话。

这里自己写了一个find_chinese程序,主要原理就是反复比对,实现文本机械压缩。

关键代码是这样的:

for a_string in filelist:

a_string=str(a_string)

temp1 = a_string.strip('\\n')

temp2 = temp1.lstrip('\\ufeff')

temp3 = temp2.strip('\\r')

temp4 = wenben.find_chinese(temp3)

temp5 = ""

if temp4!='':

temp5 = wenben.delete_copy(temp4)

filelist2.append(temp5)

步骤4. 无意义的短句子删除

有时候评论内容特别草率,像:“很好”、“不错”。所以我们认为少于4个字的文本没有意义,需要删掉。

关键代码是这样的:

for a_string in filelist:

a_string=str(a_string)

if(a_string == ''):

continue

else:

if(len(a_string)<4):

continue

else:

filelist2.append(a_string)

最后,看到的就是清清爽爽的文字材料了。像下图这样:

接下来,就可以进行更细致的文本挖掘啦。

标签: #python中文预处理