正则表达式在NLP的基本应用
匹配字符串
通过使用re.search(regex,string)这个方法,可以检查这个string字符串是否匹配正则表达式regex。如果匹配到,这个表达式会返回一个match对象,如果没有匹配到则返回None。
1.获取包含关键字的句子
import re
text_string = '文本最重要的来源无疑是网络。我们要把网络中的文本获取形成一个文本数据库。利用一个爬虫抓取到网络中的信息。爬取的策略有广度爬取和深度爬取。根据用户的需求,爬虫可以有主题爬虫和通用爬虫之分。'
regex = '文本'
p_string = text_string.split('。')
for line in p_string:if re.search(regex,line) is not None:print(line)
输出结果为:
文本最重要的来源无疑是网络
我们要把网络中的文本获取形成一个文本数据库
2.匹配任意一个字符
"."代替任何单个字符(换行除外)
import re
text_string = '文本最重要的来源无疑是网络。我们要把网络中的文本获取形成一个文本数据库。利用一个爬虫抓取到网络中的信息。爬取的策略有广度爬取和深度爬取。根据用户的需求,爬虫可以有主题爬虫和通用爬虫之分。'
regex = '用户.' # "."代替任何单个字符(换行除外)
p_string = text_string.split('。')
for line in p_string:if re.search(regex,line) is not None:print(line)
输出结果为:
根据用户的需求,爬虫可以有主题爬虫和通用爬虫之分
3.匹配起始和结尾字符串
"^a"代表的是匹配所有以字母a开头的字符串,"a$"代表的是所有以字母a结尾的字符串
import re
text_string = '文本最重要的来源无疑是网络。我们要把网络中的文本获取形成一个文本数据库。利用一个爬虫抓取到网络中的信息。爬取的策略有广度爬取和深度爬取。根据用户的需求,爬虫可以有主题爬虫和通用爬虫之分。'
regex = '信息$' # "^a"代表的是匹配所有以字母a开头的字符串,"a$"代表的是所有以字母a结尾的字符串
p_string = text_string.split('。')
for line in p_string:if re.search(regex,line) is not None:print(line)
输出结果为:
利用一个爬虫抓取到网络中的信息
4.使用中括号匹配多个字符
"[bcr]at"代表的是匹配"bat""cat"以及"rat"
import re
text_string = ['[重要的]今年第七号台风23日登陆广东东部沿海地区','上海发布车库销售监管通知:违规者暂停网签资格','[紧要的]中国对印连发强硬信息,印度急切需要结束对峙']
regex = '^\[[重紧]..\]' # "[bcr]at"代表的是匹配"bat""cat"以及"rat"
for line in text_string:if re.search(regex,line) is not None:print(line)else:print('not match')
使用转义符
假如要匹配文本中的字符"\",那么使用编程语言表示的正则表达式里将需要4个反斜杠"\\\\":前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。
import re
if re.search("\\\\","I have one nee\dle") is not None:print("match it")
else:print("not match")
Python里可以使用r"\\"表示,匹配一个数字的"\\d"可以写成r"\d"。
import re
if re.search(r"\\","I have one nee\dle") is not None:print("match it")
else:print("not match")
抽取文本中的数字
1.通过正则表达式匹配年份
import re
strings = ['War of 1812','There are 5280 feet to a mile','Happy New Year 2016!']
year_strings = []
for string in strings:if re.search('[1-2][0-9]{3}',string): # {3}代表的是重复之前的[0-9]三次,是[0-9][0-9][0-9]的简化写法year_strings.append(string)
print(year_strings)
输出结果为:
['War of 1812', 'Happy New Year 2016!']
2.抽取所有年份
import re
years_string = '2016 was a good year, but 2017 will be better!'
years = re.findall('[2][0-9]{3}',years_string)
print(years)
输出结果为:
['2016', '2017']
参考资料:https://github.com/nlpinaction/learning-nlp
正则表达式在NLP的基本应用相关推荐
- AI之NLP:自然语言处理技术简介(是什么/学什么/怎么用)、常用算法、经典案例之详细攻略(建议收藏)
AI之NLP:自然语言处理技术简介(是什么/学什么/怎么用).常用算法.经典案例之详细攻略(建议收藏) 目录 NLP是什么? 1.NLP前置技术解析 2.python中NLP技术相关库 3.NLP案例 ...
- NLP将迎来黄金十年,7个案例带你入门(附Python代码)
导读:近日,微软研究院发文称,NLP即将迎来"黄金十年".他们认为,各领域对NLP的需求会大幅度上升,对NLP质量也提出更高要求.如果你想赶上这"黄金十年",现 ...
- AI之NLP:自然语言处理技术简介(是什么/学什么/怎么用)、常用算法、经典案例之详细攻略(建议收藏)daiding
AI之NLP:自然语言处理技术简介(是什么/学什么/怎么用).常用算法.经典案例之详细攻略(建议收藏) 目录 NLP是什么? 1.NLP前置技术解析 2.python中NLP技术相关库 3.NLP案例 ...
- python实践心得体会_“Python自然语言实践”——总结(一),实战
正则表达式在NLP中的基本应用 正则表达式的作用: (1)将文档内容从非结构化转为结构化以便后续的文本挖掘 (2)去除"噪声",在处理大量文本片段的时候,有非常多的文字信息与最终输 ...
- python的基本文本处理操作
基本文本的处理 基本文本的处理 语料库 nltk的基本语料库函数 nltk语料库的导入 文本的词汇多样性 词频统计 utf8和unicode的python实现 python读取本地文件 练习 正则表达 ...
- 我用飞桨Parakeet合成小姐姐声音帮我“读”论文
点击左上方蓝字关注我们 [飞桨开发者说]顾茜,PPDE飞桨开发者技术专家,烟草行业开发工程师,毕业于厦门大学数学科学学院,研究方向为:人工智能在烟草行业的应用. 深度学习的论文读起来总是有点艰难,看不 ...
- 自然语言处理—初始自然语言处理技术—自然语言处理的前置技术
(一)正则表达式在NLP中的应用 正则表达式简介 正则表达式是一种定义了搜索模式的特征序列,主要是用于字符串的模式匹配,或是字符的匹配.正则表达式是处理NLP的最基本的手段之一. 正则表达式的作用之一 ...
- NLP实战:利用Python理解、分析和生成文本 | 赠书
导读:本文内容参考自<自然语言处理实战:利用Python理解.分析和生成文本>一书,由Hobson Lane等人所著. 本书是介绍自然语言处理(NLP)和深度学习的实战书.NLP已成为深度 ...
- 基于Go的语义解析开源库FMR,“屠榜”模型外的NLP利器
(由AI科技大本营付费下载自视觉中国) 作者 | 刘占亮 一览群智技术副总裁 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 如何合理地表示语言的内在意义?这是自然语言处理业 ...
- 优质中文NLP资源集合,做项目一定用得到!
整理 | Jane 出品 | AI科技大本营(公众号id:rgznai100) 今天要给大家在推荐 Github 上一个优质的中文 NLP 工具和资源集合项目--funNLP,已经获得了 5.3k S ...
最新文章
- c语言排序教学过程,C语言中冒泡排序算法教学设计
- 详细配置架设自己的Serv-U FTP服务器图文教程
- 为什么手机垃圾就是治不了?
- 设置clion执行前的cmake命令,和CMAKELIST.txt不冲突
- leetcode —— 12. 整数转罗马数字
- 索尼中国官微吐槽年假被狗吃了 官方称系统故障 理解孩子
- hadoop jar
- 模拟角频率和数字角频率的关系
- 使用Apache + knewcode,用传统C++构建Web网站
- 12v电源正负极区分_UPS不间断电源的安装、配电计算及相关故障处理方法!
- 在64位系统中无法看到Microsoft Excel Application的问题
- 高效开发 — SVN使用教程图文详解【超详细,鼎力推荐】
- GoF 设计模式:23 种设计模式全面解析(超级详细)
- 何凯明MAE局限性被打破,与Swin 结合,训练速度大幅提升!
- python 抖音短视频 去水印_如何去除抖音快手等短视频平台的水印?(工具+原理)...
- CAD用直线绘制矩形
- Java温习——基本语法
- 输入求闰年c语言程序,C语言计算闰年程序
- conan入门(二):conan 服务配置-密码管理及策略
- Android 画图方式
热门文章
- hdu 3642 Get The Treasury(扫描线)
- VS2010利用MFC的MSCcom控件的方法(WIN8系统)
- 从零基础入门Tensorflow2.0 ----五、21交叉特征实战
- excel 使用排序工具实现每隔一行加一行空行
- html怎么设置自动音乐播放器,运用js教你轻松制作html音乐播放器
- 2021年福建高考省检成绩查询,福建省教育考试院:2021年福建高考查分入口、查分系统...
- 实习成长之路:MySQL十二:为什么我删除了表的不少数据,但是大小没变呢?
- Error while executing: am start -n错误解决方案
- Okhttp之CallServerInterceptor简单分析
- ServletContextListener的用法