第二章NLP前置技术解析
搜索微信公众号:‘AI-ming3526’或者’计算机视觉这件小事’ 获取更多干货
github:https://github.com/aimi-cn/AILearners
在本章中,你将学到 NLP相关的一些前置技术 很多的数据科学库、框架 、模块
以及工具箱可以有效地实现 NLP 大部分常见的算法与技术,掌握与运用正则表达式,
Numpy 是开始 NLP 工作的好方式。
本章要点包括:
- 选择 Python 作为自然语言开发语言的理由
- 安装与使用Anaconda
- 正则表达式
- Numpy
2.1搭建Python开发环境
对于自然语言处理的学习,很多人会争论用什么样的编程语言实现最好?有些人认为是Java 或者时下流行的 Scala ,我认为 Python才是最佳的选择!
对于学习和从事自然自然语言处理工作来说, Python具有几大优势:
- 提供丰富的自然语言处理库。
- 编程语 相对简单(尤其易于理解)。
- 具有很多数据科学相关的库。
一般来说 Python 可以从 python.org ( https //www python.org 网站下载,但是对于没有任何 python 经验的读者来说,特别推荐安装 Anaconda (此链接内包含多个anaconda版本其中anaconda2内置Python2.x版本,anaconda3内置Python3.x版本)对于初学者来说, Anaconda 使用起来特别方便,而且其涵盖了大部分我们需要的库。
2.1.1Python 的科学计算发行版一Anaconda
有关anaconda的相关介绍
2.1.2Anaconda的下载与安装
此笔记使用的是 Anaconda 的版本是 4.4 ,所包含的 Python 版本是 3.6 ,大家可在上方链接中寻找对应版本下载安装。
请读者根据以上两个链接自行安装和配置anaconda。
2.2正则表达式在 NLP 的基本应用
正则表达式是一种定义了搜索模式的特征序列,主要是用于字符串的模式匹配,或是字符的匹配 随着计算机的普及以及互联网的发展,大量的信息以电子文档方式呈现在人们的面前 NLP 通常所需要处理的语料一部分来自于 we 网页的信息抽取,一部分来自于文本格式的文档 Web 网页具有很强的开发价值,具有时效性强,信息量大,结
构稳定,价值高等特点,文本格式的文档多来源于人为编写或系统生成,其中包含了非结构化文本、半结构化文本以及结构化文本 正则表达式的作用之一是将这些文档内容从非结构化转为结构化以便后 的文本挖掘。
正则表达式的另一个作用就是去除“噪声” 。在处理大量文本片段的时候,有非常多的文字信息与最终输出的文本无关,这些无关的片段称之为“噪声”( 比如 URL 或链接、语气助词、标点符号等)。
正则表达式是处理 NLP 的最基本的手段之一,学习与掌握正则表达式在 Python中的应用,可以帮助我们在格式复杂 的文本中抽取所需的文本信息 比如说抽取以下文本中的年份,每一行的格式不同,因此没有办法通过 Python 提供的字符串方法来抽取,这时候我们往往考虑使用正则表达。
2.2.1 匹配字符串
在Python 中,我们会使用re模块来实现正 表达式 为了让大家更好地理解正则表达式在 Python 中的应用,我们会通过一系列的例子来阐述。
案例中,我们会提到re的一个方法一re.sarch
通过使用 re .search( regex , string)这个方法,我们可以检查这个string字符串是否匹配正 表达式 regex 如果匹配到,这个表达式会返回一个match对象,如果没有匹配到则返回 None
我们先看下准备的有关爬虫介绍的文字信息 句子和句子之间是以句号分隔 具体的文本如下所示:
文本最重要的来源无疑是网络 我们要把网络中的文本获取形成一个文本数据库
利用 一个爬虫抓取到网络中的信息 爬取的策略有广度爬取和深度爬取 根据用户的需
求,爬虫可以有主题爬虫和通用爬虫之分
例1:获取包含“爬虫”这个关键字的句子
查找哪些语句包含“爬虫”这个关键字 Python 的代码实现如下:
<