• 匹配字符串

通过使用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的基本应用相关推荐

  1. AI之NLP:自然语言处理技术简介(是什么/学什么/怎么用)、常用算法、经典案例之详细攻略(建议收藏)

    AI之NLP:自然语言处理技术简介(是什么/学什么/怎么用).常用算法.经典案例之详细攻略(建议收藏) 目录 NLP是什么? 1.NLP前置技术解析 2.python中NLP技术相关库 3.NLP案例 ...

  2. NLP将迎来黄金十年,7个案例带你入门(附Python代码)

    导读:近日,微软研究院发文称,NLP即将迎来"黄金十年".他们认为,各领域对NLP的需求会大幅度上升,对NLP质量也提出更高要求.如果你想赶上这"黄金十年",现 ...

  3. AI之NLP:自然语言处理技术简介(是什么/学什么/怎么用)、常用算法、经典案例之详细攻略(建议收藏)daiding

    AI之NLP:自然语言处理技术简介(是什么/学什么/怎么用).常用算法.经典案例之详细攻略(建议收藏) 目录 NLP是什么? 1.NLP前置技术解析 2.python中NLP技术相关库 3.NLP案例 ...

  4. python实践心得体会_“Python自然语言实践”——总结(一),实战

    正则表达式在NLP中的基本应用 正则表达式的作用: (1)将文档内容从非结构化转为结构化以便后续的文本挖掘 (2)去除"噪声",在处理大量文本片段的时候,有非常多的文字信息与最终输 ...

  5. python的基本文本处理操作

    基本文本的处理 基本文本的处理 语料库 nltk的基本语料库函数 nltk语料库的导入 文本的词汇多样性 词频统计 utf8和unicode的python实现 python读取本地文件 练习 正则表达 ...

  6. 我用飞桨Parakeet合成小姐姐声音帮我“读”论文

    点击左上方蓝字关注我们 [飞桨开发者说]顾茜,PPDE飞桨开发者技术专家,烟草行业开发工程师,毕业于厦门大学数学科学学院,研究方向为:人工智能在烟草行业的应用. 深度学习的论文读起来总是有点艰难,看不 ...

  7. 自然语言处理—初始自然语言处理技术—自然语言处理的前置技术

    (一)正则表达式在NLP中的应用 正则表达式简介 正则表达式是一种定义了搜索模式的特征序列,主要是用于字符串的模式匹配,或是字符的匹配.正则表达式是处理NLP的最基本的手段之一. 正则表达式的作用之一 ...

  8. NLP实战:利用Python理解、分析和生成文本 | 赠书

    导读:本文内容参考自<自然语言处理实战:利用Python理解.分析和生成文本>一书,由Hobson Lane等人所著. 本书是介绍自然语言处理(NLP)和深度学习的实战书.NLP已成为深度 ...

  9. 基于Go的语义解析开源库FMR,“屠榜”模型外的NLP利器

    (由AI科技大本营付费下载自视觉中国) 作者 | 刘占亮 一览群智技术副总裁 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 如何合理地表示语言的内在意义?这是自然语言处理业 ...

  10. 优质中文NLP资源集合,做项目一定用得到!

    整理 | Jane 出品 | AI科技大本营(公众号id:rgznai100) 今天要给大家在推荐 Github 上一个优质的中文 NLP 工具和资源集合项目--funNLP,已经获得了 5.3k S ...

最新文章

  1. c语言排序教学过程,C语言中冒泡排序算法教学设计
  2. 详细配置架设自己的Serv-U FTP服务器图文教程
  3. 为什么手机垃圾就是治不了?
  4. 设置clion执行前的cmake命令,和CMAKELIST.txt不冲突
  5. leetcode —— 12. 整数转罗马数字
  6. 索尼中国官微吐槽年假被狗吃了 官方称系统故障 理解孩子
  7. hadoop jar
  8. 模拟角频率和数字角频率的关系
  9. 使用Apache + knewcode,用传统C++构建Web网站
  10. 12v电源正负极区分_UPS不间断电源的安装、配电计算及相关故障处理方法!
  11. 在64位系统中无法看到Microsoft Excel Application的问题
  12. 高效开发 — SVN使用教程图文详解【超详细,鼎力推荐】
  13. GoF 设计模式:23 种设计模式全面解析(超级详细)
  14. 何凯明MAE局限性被打破,与Swin 结合,训练速度大幅提升!
  15. python 抖音短视频 去水印_如何去除抖音快手等短视频平台的水印?(工具+原理)...
  16. CAD用直线绘制矩形
  17. Java温习——基本语法
  18. 输入求闰年c语言程序,C语言计算闰年程序
  19. conan入门(二):conan 服务配置-密码管理及策略
  20. Android 画图方式

热门文章

  1. hdu 3642 Get The Treasury(扫描线)
  2. VS2010利用MFC的MSCcom控件的方法(WIN8系统)
  3. 从零基础入门Tensorflow2.0 ----五、21交叉特征实战
  4. excel 使用排序工具实现每隔一行加一行空行
  5. html怎么设置自动音乐播放器,运用js教你轻松制作html音乐播放器
  6. 2021年福建高考省检成绩查询,福建省教育考试院:2021年福建高考查分入口、查分系统...
  7. 实习成长之路:MySQL十二:为什么我删除了表的不少数据,但是大小没变呢?
  8. Error while executing: am start -n错误解决方案
  9. Okhttp之CallServerInterceptor简单分析
  10. ServletContextListener的用法