NLP(01)_python基本文本处理操作

NLP处理的对象是文本字符串内容,大家需要熟悉一些基本的文本字符串操作,这里以python为例,帮大家复习以下的中英文字符串操作:

  • 替换
  • 截取
  • 复制
  • 连接
  • 分割
  • 排序
  • 比较
  • 查找
  • 包含
  • 大小写转换

1. 清理与替换

	en_str = " hello world, hello, my name is HanXiaoyang! "
    # 去空格及特殊符号  

    en_str.strip().lstrip().rstrip(',')
	-> 'hello world, hello, my name is HanXiaoyang!'
    
    # 字符串替换
    
	en_str.replace('hello', 'hi')
	-> 'hi world, hi, my name is HanXiaoyang!
    
    # 去空格及特殊符号  
    
	zh_str = " 大家好,我叫陆超 "
	zh_str.strip().lstrip().rstrip(',') 
	-> '大家好,我叫陆超'

    # 字符串替换
    
	zh_str.strip().replace('陆超', '寒小阳')
	->大家好,我叫寒小阳 '
    
    # 删除
    
	zh_str.strip().replace('大家好,', '')
	-> '我叫陆超'


2.截取

    my_str = "大家好,我是李雪琴,我在北京大学,你吃饭没呢?"
    
    # 从左往右index从0开始,可以用index进行切片(左闭右开)
	my_str[0:3]
	->'大家好'
    
    # 从左往右index从0开始,可以用index进行切片(左闭右开)
	my_str[4:4+5]
	->'我是李雪琴'
	
	# 从右往左index从-1开始,可以用index进行切片(左闭右开)
	my_str[-1-5:-1]
	->'你吃饭没呢'
	
	# 间隔截取
	my_str[::2]
	->'大好我李琴我北大,吃没?'
	
	# 翻转
	my_str[::-1]
	->'?呢没饭吃你,学大京北在我,琴雪李是我,好家大'

3.连接与分割

	str1 = "大家好,我是陆超,真好!"
	str2 = "大家好,我是李雪琴,你吃饭没呢?"
	str1+str2
	->'大家好,我是陆超,真好!大家好,我是李雪琴,你吃饭没呢?'
    
    # 通过join的方式连接
	strs = ['我是陆超', "我是李雪琴", "我是xxx,好high哟,感觉人生已经达到了高潮,感觉人生已经达到了巅峰"]
	";".join(strs)
	->'我是陆超;我是李雪琴;我是xxx,好high哟,感觉人生已经达到了高潮,感觉人生已经达到了巅峰'
	
	# 通过split的方式切分
	tmp_str = "我是陆超;我是李雪琴;我是毛毛姐,好high哟,感觉人生已经达到了高潮,感觉人生已经达到了巅峰"
	tmp_str.split(";")
	->['我是陆超', '我是李雪琴', '我是毛毛姐,好high哟,感觉人生已经达到了高潮,感觉人生已经达到了巅峰']

4.比较与排序

	en_strs = ['ABc', 'aCd', 'CdE', 'xYz']
	
    # 以字母序排列,注意是以返回值形态返回排序结果,不改变原list
	sorted(en_strs)
	->['ABc', 'CdE', 'aCd', 'xYz']
    
    # 自定义排序方式
	def sort_fun(x):
		return x[1].lower()
	    	
	sorted(en_strs, key=sort_fun)
	->['ABc', 'aCd', 'CdE', 'xYz']
		    
	sorted(en_strs, key=lambda x:x[2].lower())
	->['ABc', 'aCd', 'CdE', 'xYz']

5.查找与包含

# 查找可以用index和find,两者作用一样,但当使用index时字符串中不包含待查找字串时会报错,find不会。
	zh_str = "我是陆超;我是李雪琴;我是毛毛姐,好high哟,感觉人生已经达到了高潮,感觉人生已经达到了巅峰"
	    
	zh_str.index("陆超")
	->2
	
	#zh_str.index("来了老弟")
   ---------------------------------------------------------------------------
	ValueError  Traceback (most recent call last)
	<ipython-input-29-fa2c269b272d> in <module>()
	----> 1 zh_str.index("来了老弟")
			    
	ValueError: substring not found
			    
			    
    zh_str.index("毛毛姐")
	->13
      
    zh_str.find("毛毛姐")
    ->13
        
	zh_str.find("来了老弟")
	->-1

6.大小写与其他变化

 	en_str = 'hello, my name is Patrick'
    
 	en_str.lower()   
    -> 'hello, my name is patrick'
    
    en_str.upper()
    ->'HELLO, MY NAME IS PATRICK'
    
    en_str.capitalize()
    ->'Hello, my name is patrick'
    
    #想要查询python字符串的其他方法直接输入help(str)显示出str的所有用法
    help(str)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值