前言:
现在大家对“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中文预处理