在文本预处理和特征工程的过程中,我们可能常常会为文本中出现不少的空格、\t \n 所苦恼。
虽然说String的.strip()方法已经良好地实现了去掉字符串前后的空格的作用,但是由于中文文本本身中间也不应该出现空格, 这一点和英文处理有极大区别。
我写了两个方法,一个是利用python的切片功能复现.strip()方法,功能与其一样;一个是通过运用String对象的可迭代性,可以去除文本内空格的方法。
一、先看.strip()的效果:
mystr = ' Lady GAGA '
mystr_strip = mystr.strip()
print(mystr_strip)
>>>Lady GAGA
二、利用python的切片功能复现.strip()方法:
mystr = ' Lady GAGA '
def trim(str):
while str[:1] == ' ':
str = str[1:]
while str[-1:] == ' ':
str = str[:-1]
return str
print(trim(mystr))
>>>Lady GAGA
三、中文文本去空格(包含空格、\n \t),运用String对象可迭代(iterated)的特性:
mystr = ' Lady GAGA '
def mystr_filter(mystr):
mystr2 = ''
for str in mystr:
if str == ' ':
continue
else:
mystr2 = mystr2 + str
return mystr2
print(mystr_filter(mystr))
>>>LadyGAGA
print(mystr_filter(" 逻辑回归 其实是一种用来做 分类 的模型, 而不是做 回归 。 "))
>>>逻辑回归其实是一种用来做分类的模型,而不是做回归。