文本数据预处理步骤通常包括文本去重、机械压缩去词、短句删除等。其中机械压缩去词实际上要处理的语料就是语料中有连续累赘重复的部分,比如:
‘为什么为什么为什么安装费这么贵,毫无道理’ 。其中的为什么就是重复词对之后的分析无意义。
考虑到这类重复词一般出现在句首和句尾,因此只对开头和结尾的连续重复词进行机械压缩去词处理。
本代码是根据《python数据分析与挖掘实战》一书中给出的去词规则自行编写的,目前不能去除如‘哈哈今天天气真好’中的‘哈哈’这类句首叠词。下面给出去除句首重复词的代码
def forward(string):
a = string # 令 a = string[::,-1] 即可进行句尾去词
l1 = [a[0]]
l2 = []
n = 1
while n < len(a):
if a[n] == l1[0]:
if len(l2) == 0:
l2.append(a[n])
n += 1
else:
if l1 == l2:
l2 = []
else:
l1 = [a[n]]
l2 = []
n += 1
else:
if l1 == l2:
if len(l1) >= 2:
l1.append(a[n])
l2 = []
n += 1
else:
l1.append(l2[0])
l1.append(a[n])
l2 = []
n += 1
else:
if len(l2) == 0:
l1.append(a[n])
n += 1
else:
if len(l2) < len(l1):
l2.append(a[n])
n += 1
else:
if l1 == l2 :
l1.append(a[n])
l2 = []
n += 1
else:
l1.extend(l2[1:])
l2 = []
if l1 != l2:
temp1 = l1+l2
else:
temp1 = l1
return ''.join(temp1)