在文本预处理和特征工程的过程中,我们可能常常会为文本中出现不少的空格、\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(" 逻辑回归 其实是一种用来做 分类 的模型, 而不是做 回归 。 "))
>>>逻辑回归其实是一种用来做分类的模型,而不是做回归。