查看原文
其他

挑战年薪百万-自然语言处理入门一

2017-05-27 Kenny Python爱好者社区

(点击上方Python爱好者社区,可快速关注)

作者:Kenny     智能算法工程师,高级算法挖掘工程师

博客专栏:https://ask.hellobi.com/blog/KennySayHi

   

所谓“自然语言”,是指人们日常交流使用的语言,如英语、印地语随着不断演化,很难用明确的规则来刻画。
从广义上,“自然语言处理”(Natural Language Processing简称NLP)包含所有计算机对自然语言进行的操作,从最简单的通过计数词出现的频率来比较不同的写作风格到最复杂的完全“理解”人所说的话。
基于NLP的技术应用日益广泛,如手机和手持电脑支持输入法联想提示(predictive text)和手写识别、网络搜索引擎能搜到非结构化文本中的信息、机器翻译能把中文文本翻译成西班牙文等。
通过使用程序设计语言和自然语言工具包(NLTK,Natural Language Toolkit)的开源函数库来讲解自然语言处理的各个技术要点。
本书为什么使用Python呢?
Python是一种简单功能强大的变成语言,非常适合处理语言数据。
作为解释语言,Python便于交互式变成;作为面向对象语言,Python允许数据和方法被方面的封装和重用。作为动态语言,Python允许属性等程序运行时才被添加到对象,允许变量自动类型转换,提高开发效率。Python自带强大的标准库,包括图像、数值处理和网络连接等。

1.0.2 开发环境搭建

我们选择Anaconda的优势如下:

1).不需要配置PYTHON环境变量;

2).集成很多packages,省去一一下载的麻烦;

3).packages的安装很简单,conda一键解决;

4).可以配置python版本的环境,方便切换,互不干扰,兼容性强!

 详细的安装步骤如下:

1.下载Anaconda

https://www.continuum.io/downloads

2.然后一路安装就可以了,自己可以选择安装盘。

安装完之后有这几个程序,看下图


py35是我配置的python3.5的环境

3.打开Anaconda Prompt

依次点击:开始--所有程序--Anaconda这个窗口和doc窗口一样的,输入命令就可以控制和配置python,最常用的是conda命令,这个pip的用法一样,此软件都集成了,你可以直接用,点开的话如下图:


我是Anaconda Prompt

4.然后你可以使用conda命令进行一些包的安装和更新,不要担心,so easy!

conda list

列出所有的已安装的packages

conda install name

name是需要安装packages的名字,比如,我安装numpy包,输入上面的命令就是:

conda install numpy

单词之间空一格,然后回车,输入y就可以了

5.下面就是conda的用法,我不在啰嗦了。

多看几遍你就都会了,英文都是简单的单词----conda的用法:https://conda.io/docs/index.html

6.python3.5环境配置的介绍

需要用到conda命令行,下面介绍一下命令行,输入之后,耐心等待安装就可以!

首先在Anaconda Prompt直接输入下面命令既可以:

conda create --name py35 python=3

其中py35是环境名字,python=3是我们需要的版本,然后耐心等待整个程序的安装!

然后激活这个环境:

activate py35

下面的第二行Activating environment “c:\Anaconda2”是默认的变量,python2.7版本的!

下面的第五行Activating environment“c:\Anaconda2\envs\py35”是python3.5版本的!


这是我的环境切换

最后同样使用conda命令安装各种packages就可以了。

7.打开AnacondaNavigator,然后点击Environment,root就是我们安装的环境,py35是我后来安装的环境。如下:

右边是已经安装的packages


安装完毕之后启动,Anaconda然后输入

import nltk

nltk.download()

点击download开始下载语料库

一旦数据被下载到你的机器,你就可以使用Python 解释器加载其中一些。第一步是在

Python 提示符后输入一个特殊的命令,告诉解释器去加载一些我们要用的文本:from nltk.book import * 。这条语句是说“从NLTK 的book模块加载所有的东西”。这个boo

k 模块包含你阅读本章所需的所有数据。在输出欢迎信息之后,将会加载几本书的文本(这将需要几秒钟)。下面连同你将看到的输出一起再次列出这条命令,注意拼写和标点符号的正确性,记住不要输入。

下载完成后,可以在Anaconda验证一下下载成功与否:

2.0 NLTK语法解析

基本语法

搜索文本concordance

除了阅读文本之外,还有很多方法可以用来研究文本内容。词语索引视图显示一个指

定单词的每一次出现,连同一些上下文一起显示。下面我们输入text1 后面跟一个点,再

输入函数名concordance,然后将monstrous 放在括号里,来查一下《白鲸记》中的词

monstrous:

>>>text1.concordance("monstrous")

搜索哪些词出现在相似的上下文中

词语索引使我们看到词的上下文。例如:我们看到monstrous 出现的上下文,如the

___ pictures 和the ___ size。还有哪些词出现在相似的上下文中?我们可以通过在被查询的

文本名后添加函数名similar,然后在括号中插入相关的词来查找到。

text1.similar("monstrous")

研究共有2个或者2个以上的词汇的上下文

>>>text2.common_contexts(['monstrous','very'])

a_lucky be_glad am_glad a_prettyis_pretty

计数

首先,让我们以文本中出现的词和标点符号为单位算出文本从头到尾的长度。我们使用

函数len 获取长度,请看在《创世纪》中使用的例子:

>>> len(text3)

44764

《创世纪》有44764 个词和标点符号或者叫“标识符”。一个标识符是表示一个我们想

要放在一组对待的字符序列——如:hairy、his 或者:)——的术语。当我们计数文本中标

识符的个数时,如to be or not to be 这句话,我们计数这些序列出现的次数。因此,我们

的例句中出现了to 和be各两次,or 和not 各一次。然而在例句中只有4 个不同的词。《创世纪》中有多少不同的词?要用Python 来回答这个问题,我们处理问题的方法将稍有改变。

一个文本词汇表只是它用到的标识符的集合,因为在集合中所有重复的元素都只算一个。P

ython 中我们可以使用命令:set(text3)获得text3 的词汇表。当你这样做时,屏幕上的很

多词就会被掠过。现在尝试以下操作:

>>> sorted(set(text3))

说到做到,新福利来啦:

关注公众号,在公众号菜单点击"免费听课",即可参与活动免费听19.9元收费课程,当然,壕大大可以直接购买听课啦。

壕大大入口:https://edu.hellobi.com/course/186

本次主打课程:

Hellobi Live | 6月6日 自然语言处理之-基于深度学习技术的聊天机器人实现

课程名称:

自然语言处理之-基于深度学习技术的聊天机器人实现

课程背景:

NLP是一个很大的领域,自成一系,本次课程通过一个企业级案例(聊天机器人)带领大家从了解项目场景开始一步步搭建,最后演示聊天机器人实例。通过本课程的学习,让你一举打开NLP的大门。

主讲老师:

Kenny,计算机硕士,曾在某上市公司和世界500强公司分别担任智能算法工程师,高级算法挖掘工程师,具有多年的大数据项目开发实战经验,坚持在代码开发的一线,设计和实现了多个大数据项目。

Kenny博客专栏:https://ask.hellobi.com/blog/KennySayHi

直播时间:

2017年6月6日晚上8点到10点

课程内容:

1、 聊天机器人概括,应用场景,分类,技术发展路线及基于深度学习技术聊天机器人

2、 基于深度学习聊天机器人训练数据收集,清洗

3、 特征工程:文本数据预处理,特征化和数值化后转化为可训练的数据

4、 LSTM组件介绍

5、 Seq2seq算法介绍

6、 Seq2seq模型的优缺点和改进


Python爱好者社区


为大家提供与Python相关的最新技术和资讯。


长按指纹 > 识别图中二维码 > 添加关注

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存