自然语言处理—初始自然语言处理技术—自然语言处理的前置技术_# 任务1:抽取years_string中所有的年份并输出# 任务2:匹配text_string中包-程序员宅基地

技术标签: 正则表达式  自然语言处理  

(一)正则表达式在NLP中的应用

正则表达式简介

正则表达式是一种定义了搜索模式的特征序列,主要是用于字符串的模式匹配,或是字符的匹配。正则表达式是处理NLP的最基本的手段之一。

正则表达式的作用之一是将文档内容从非结构化转为结构化以便后续的文本挖掘。

正则表达式的另一个作用就是去除“噪声”。在处理大量文本片段的时候有非常多的文字信息与最终输出的文本无关,这些无关的片段称之为“噪声”,比如 URL 或链接、语气助词、标点符号等。

匹配字符串

在python中,使用re模块来实现正则表达式。

通过使用re.search(regex,string)这个方法,我们可以检查这个string字符串是否匹配正则表达式regex。如果匹配搭配,这个表达式会返回一个match对象,如果没有匹配到则返回None。

例如:获取包含“爬虫”这个关键字的句子。

import re
text_string="文本最重要的来源无疑是网络。我们要把网络中的文本获取形成一个文本数据库。利用一个爬虫抓取到网络中的信息。爬取的策略有广度爬取和深度爬取。根据用户的需求,爬虫可以有主题爬虫和通用爬虫之分"
regex='爬虫'
p_string= text_string.split('。')      # 以句号为分隔符通过split切分
for line in p_string :
  if re.search( regex,line) is not None:     # search方法是用来查找匹配当前行是否匹配这个 regex,返回的是一个 match对象
        print(line)     # 如果匹配到,打印这行信息

输出:

利用一个爬虫抓取到网络中的信息

根据用户的需求,爬虫可以有主题爬虫和通用爬虫之分

抽取文本中的数字

“[0-9]”代表的是从0到9的所有数字,那相对的“[a-z]”代表的是从 a 到 z 的所有小写字母。在自然语言处理中,通过使用正则表达式,抽取文本中的数字,可以提取日期、关键性数据等等。

例如:通过正则表达式匹配年份。

import re
year_strings=[]
strings=['War of 1812','There are 5280 feet to a mile',' Happy New Year 2016!']
for string in strings:
    if re.search("[1-2][0-9]{3}", string):#字符串有英文有数字,匹配其中的数字部分,并且是在1000~2999之间,{3}代表的是重复之前的[0-9]三次,是[0-9][0-9][0-9]的简化写法。
        year_strings.append(string)
print(year_strings)

输出:

[‘War of 1812’, ‘ Happy New Year 2016!’]

例题:

  • 抽取文本中的年份:使用正则表达式找出文本中的年份并输出;
  • 匹配包含”文本”的句子:找出文本中包含有“文本”的句子,文本以句号作为分割,将匹配的句子输出。

 测试输入:

2016 was a good year, but 2017 will be better!

目前有很多的文本数据库。它们都是十分重要的;

预期输出: [‘2016’, ‘2017’]

import re

# 任务1:抽取years_string中所有的年份并输出
years_string = input()
years=re.findall('[2][0-9]{3}',years_string)
print(years)
# 任务2:匹配text_string中包含“文本”的句子,并使用print输出,以句号作为分隔
text_string = input()
regex = '文本'

p_string=text_string.split('。')
for line in p_string:
    if re.search(regex,line) is not None:
        print(line)

任务1中用了re.findall函数,re.findall(pattern,string,flags=0),findall()函数是逐行匹配的,返回string中所以与pattern相匹配的全部子串,返回形式为数组。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_49410604/article/details/120518148

智能推荐

物联网Coap框架 ------- Californium结构分析-程序员宅基地

文章浏览阅读555次。一.Calinfornium简介Californium 是一款基于Java实现的Coap技术框架,该项目实现了Coap协议的各种请求响应定义,支持CON/NON不同的可靠性传输模。在同等的Coap协议的技术实现中,Calinfornium框架在众多框架中以性能最优。如下:二.Californium的项目结构目前Californium 项目的托管地址在:http..._[pserver(main)#5] o.e.californium.core.network.udpmatcher : error receiving

PHP的getimagesize读取远程图片慢的解决方法_php getimagesize远程图片-程序员宅基地

文章浏览阅读238次。PHP的getimagesize读取远程文件,使用的方法本质上跟file_get_contents一样,所以都会出现非常耗时的情况。_php getimagesize远程图片

计算机应用技术专业与计算机网络技术专业的区别_计算机网络红人计算机应用区别-程序员宅基地

文章浏览阅读5.7k次,点赞7次,收藏17次。计算机应用技术比较偏向软件方向,培养掌握计算机应用专业必要的基础理论、常用计算机软件操作和编程语言,培养目标是具有较强实践技能的高级计算机应用型人才。专业课主要有:计算机软硬件技术基础、Linux操作系统、数据库系统SQL、数据结构与C程序设计、计算机网络原理、高级语言汇编、Java语言程序设计、图形图像应用处理(PhotoShop)、微机原理与接口技术、C语言、数据结构、操作系统、平面设计、VB..._计算机网络红人计算机应用区别

docker获取不到镜像,pod容器(dop-registry)起不来_docker容器regpositories网址出不来-程序员宅基地

文章浏览阅读916次,点赞18次,收藏13次。是 Docker 官方维护的一个服务,用于存储和分发 Docker 官方镜像,包括一些常见的操作系统、编程语言运行时环境等。通过使用 Docker 官方镜像注册表,用户可以方便地访问和获取到官方维护的镜像,用于构建、运行和部署他们的容器化应用程序。kube-flannel是一个在Kubernetes集群中用于网络通信的网络解决方案。kube-flannel使用了一个虚拟的overlay网络,它允许Kubernetes节点之间的容器在不同的主机上进行通信,同时保持网络的简单性和性能。_docker容器regpositories网址出不来

Reduction to two dimensions and Phase plane analysis_phase plane analysis matlab-程序员宅基地

文章浏览阅读805次。Two dimensional neuron modelsReduction to two dimensionsGeneral approach_phase plane analysis matlab

Android动画---如何正确使用平移动画(关于fillBefore和fillAfter的一点说明)(转载)...-程序员宅基地

文章浏览阅读85次。转载地址:http://blog.csdn.net/fengkuanghun/article/details/7878862如何实现将View向上平移自身高度一半的距离?TranslateAnimation translate = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0, ...

随便推点

python hasattr_Python hasattr()函数-程序员宅基地

文章浏览阅读443次。版本E:\Projects\testTool>python --versionPython 3.6.2定义先看一下官网是如何定义的:hasattr(object, name)**The arguments are an object and a string. The result is True if the string is the name of the object's attri..._python has_attr

Java Web使用过滤器防止Xss攻击,解决Xss漏洞 防止解决XSS注入攻击的过滤器filter XssHttpServletRequestWrapper_解决xss过滤符合-程序员宅基地

文章浏览阅读2.5k次,点赞11次,收藏64次。前段时间,博主在帮忙朋友给一个国营单位做的一个项目中,在上线的前期,客户要求检测漏洞,因此找到了专业的测评公司,测出来好多漏洞,其中就有xss攻击,我讲自己处理的方式分享给大家,便于大家少走弯路。package com.yl.filter;import java.io.BufferedReader;import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.InputStreamReader;i_解决xss过滤符合

微信小程序:上传图片报:当前系统代理不是安全代理,是否信任?_代理微信不能发图片-程序员宅基地

文章浏览阅读1.5k次。微信小程序:上传图片报:当前系统代理不是安全代理,是否信任?最近在做表单上传的功能,期中涉及到图片的上传,小谷的思路是将图片存到服务器,路径存到数据库中,但是发现wx.request提交数据没有问题,但是wx.upfile就出现了上面的问题。当前系统代理不是安全代理,是否信任?。之后小谷百度了,其中主要是两个问题1.重装系统,(不能根本解决问题,二次开机可能还会出现)2.删除中策表中的文件..._代理微信不能发图片

Maven2.0 Built-in property 汇总-程序员宅基地

文章浏览阅读129次。该文章汇总了Maven2.0中常用的一些Property, 所以这些properties都是从Maven的官方文档和Maven的用户邮件中搜集过来的. 注意, 因为所有的pom.*属性在Maven3中已经不推荐了, 所以下面只介绍project.* Build-in Properties: 内带的属性${basedir}, pom.xml文件所在的目录${version}, ..._maven built-in

H5流媒体播放器EasyPlayer视频播放暂停时,画面仍显示码率的问题优化_easyplayer有声音无画面-程序员宅基地

文章浏览阅读561次。EasyPlayer性能稳定、播放流畅,可支持的视频流格式有RTSP、RTMP、HLS、FLV、WebRTC等,具备较高的可用性。_easyplayer有声音无画面

CentOS7 MySQL 增量备份与恢复-程序员宅基地

文章浏览阅读900次,点赞17次,收藏14次。针对以上面试题,小编已经把面试题+答案整理好了。

推荐文章

热门文章

相关标签