追求文本分析路径,但不知道从哪里开始?尝试使用此字符串处理入门,首先了解在基本级别上使用Python操纵和处理字符串的知识。
自然语言处理和文本分析是当前研究和应用的热门领域。这些领域需要各种特定的技能和概念,在进行有意义的练习之前,需要透彻理解。但是,在此之前,必须进行基本的字符串操作和处理。
我认为,有两种不同类型的广泛的计算字符串处理技能需要掌握。首先是正则表达式,这是一种基于模式的文本匹配方法。
另一种独特的计算字符串处理技能是能够利用给定编程语言的标准库进行基本的字符串操作。因此,本文是简短的Python字符串处理入门,适用于那些追求更深入的文本分析职业的人。
请注意,有意义的文本分析超出了字符串处理的范围,这些更高级技术的核心可能不需要您经常自己操作文本。但是,文本数据预处理是成功的文本分析项目的重要且耗时的部分,这些上述字符串处理技巧在这里将是无价的。从根本上理解文本的计算处理在概念上对于理解更高级的文本分析技术也非常重要。
以下许多示例都使用Python标准库字符串模块,因此方便参考是一个好主意。
剥离空格是基本字符串处理要求。您可以使用lstrip()
方法(左)去除前导空格,使用rstrip()
(右)去除尾随空格,并使用去除前导和尾随strip()
。
s = ' This is a sentence with whitespace. \n'
print('Strip leading whitespace: {}'.format(s.lstrip()))
print('Strip trailing whitespace: {}'.format(s.rstrip()))
print('Strip all whitespace: {}'.format(s.strip()))
Strip leading whitespace: This is a sentence with whitespace.
Strip trailing whitespace: This is a sentence with whitespace.
Strip all whitespace: This is a sentence with whitespace.
有兴趣剥离除空格以外的其他字符吗?相同的方法很有用,可以通过传入要剥离的字符来使用。
s = 'This is a sentence with unwanted characters.AAAAAAAA'
print('Strip unwanted characters: {}'.format(s.rstrip('A')))
Strip unwanted characters: This is a sentence with unwanted characters.
format()
如有必要,请不要忘记查看字符串文档。
(https://docs.python.org/3/library/stdtypes.html#str.format)
将字符串拆分为较小的子字符串列表通常是有用的,并且在Python中使用该split()
方法可以轻松实现。
s = 'MOOC is a fantastic resource'
print(s.split())
['MOOC', 'is', 'a', 'fantastic', 'resource']
默认情况下,split()
在空白处分割,但也可以传入其他字符序列。
s = 'these,words,are,separated,by,comma'
print('\',\' separated split -> {}'.format(s.split(',')))
s = 'abacbdebfgbhhgbabddba'
print('\'b\' separated split -> {}'.format(s.split('b')))
',' separated split -> ['these', 'words', 'are', 'separated', 'by', 'comma']
'b' separated split -> ['a', 'ac', 'de', 'fg', 'hhg', 'a', 'dd', 'a']
需要上述操作的对立面吗?您可以使用join()
方法将列表元素字符串连接到Python中的单个字符串中。
s = [ 'MOOC','is','a','fantastic','resource' ]
print(''. join(s))
MOOC is a fantastic resource
那不是事实!并且,如果您想将列表元素之间使用空格以外的其他内容进行联接?这件事可能有点陌生,但也很容易完成。
s = ['Eleven', 'Mike', 'Dustin', 'Lucas', 'Will']
print(' and '.join(s))
Eleven and Mike and Dustin and Lucas and Will
Python没有内置的字符串反向方法。但是,由于可以像列表一样对字符串进行切片,因此可以以与列表元素可以反转的简洁方式进行反转。
s = 'Kaggle'
print('The reverse of Kaggle is {}'.format(s[::-1]))
The reverse of KDnuggets is: elggaK
大小写之间的转换可以用upper()
,lower()
和swapcase()
方法。
s = 'Kaggle'
print('\'Kaggle\' as uppercase: {}'.format(s.upper()))
print('\'Kaggle\' as lowercase: {}'.format(s.lower()))
print('\'Kaggle\' as swapped case: {}'.format(s.swapcase()))
'Kaggle' as uppercase: KAGGLE
'Kaggle' as lowercase: kaggle
'Kaggle' as swapped case: kAGGLE
这是系列文章的第一篇,下一篇文章我将继续更新剩下的五个技巧。