NLTK基础教程——用NLTK和Python库构建机器学习应用 - (EPUB全文下载)
文件大小:0.22 mb。
文件格式:epub 格式。
书籍内容:
NLTK基础教程——用NLTK和Python库构建机器学习应用
第1章 自然语言处理简介
第2章 文本的歧义及其清理
第3章 词性标注
第4章 文本结构解析
第5章 NLP应用
第6章 文本分类
第7章 Web爬虫
第8章 NLTK与其他Python库的搭配运用
第9章 Python中的社交媒体挖掘
第10章 大规模文本挖掘
欢迎来到异步社区!
第1章 自然语言处理简介
现在,让我们先从介绍自然语言处理(NLP)开始吧。众所周知,语言是人们日常生活的核心部分,任何与语言问题相关的工作都会显得非常有意思。希望这本书能带你领略到NLP的风采,并引起学习NLP的兴趣。首先,我们需要来了解一下该领域中的一些令人惊叹的概念,并在工作中实际尝试一些具有挑战性的NLP应用。
在英语环境中,语言处理研究这一领域通常被简称为NLP。对语言有深入研究的人通常被叫作语言学家,而“计算机语言学家”这个专用名词则指的是将计算机科学应用于语言处理领域的人。因此从本质上来说,一个计算机语言学家应该既有足够的语言理解能力,同时还可以用其计算机技能来模拟出语言的不同方面。虽然计算机语言学家主要研究的是语言处理理论,但NLP无疑是对计算机语言学的具体应用。
NLP多数情况下指的是计算机上各种大同小异的语言处理应用,以及用NLP技术所构建的实际应用程序。在实践中,NLP与教孩子学语言的过程非常类似。其大多数任务(如对单词、语句的理解,形成语法和结构都正确的语句等)对于人类而言都是非常自然的能力。但对于NLP来说,其中有一些任务就必须要转向标识化处理、语块分解、词性标注、语法解析、机器翻译及语音识别等这些领域的一部分,且这些任务有一大部分还仍是当前计算机领域中非常棘手的挑战。在本书中,我们将更侧重于讨论NLP的实用方面,因此我们会假设读者在NLP上已经有了一些背景知识。所以,读者最好在最低限度上对编程语言有一点了解,并对NLP和语言学有一定的兴趣。
在阅读完本章之后,我们希望读者能掌握以下内容。
对NLP及其相关概念有个基本的了解。
完成Python和NLTK及其他库的安装。
编写一些非常基本的Python和NLTK代码片段。
如果你从来没有接触过NLP这个概念词,我们在下面给你推荐了两本书,请花一些时间阅读一下其中的任何一本——只需要看看它们的前几章即可。另外,你也应该快速浏览一下维基百科上与NLP相关的页面。
《Speech and Language Processing》,由Daniel Jurafsky与James H. Martin合著。
《Statistical Natural Language Processing》,由Christopher D. Manning与Hinrich Schütze合著。
1.1 为什么要学习NLP
关于这个问题,我们可以先来看看Gartner公司新一轮的趋势报告,你可以很清晰地看到,NLP技术赫然高居榜首。目前,NLP已被认为是业界最为稀缺的技能之一。自大数据的概念问世之后,我们所面对的主要挑战是——业界需要越来越多不仅能处理结构化数据,同时也能处理半结构化或非结构化数据的人才。对于我们所生产出来的那些博客、微博、Facebook订阅、聊天信息、E-mail以及网络评论等,各公司都在致力于收集所有不同种类的数据,以便建立更好的客户针对性,形成有意义的见解。而要想处理所有的这些非结构化数据源,我们就需要掌握一些NLP技能的人员。
身处信息时代,我们甚至不能想象生活中没有Google会是什么样子。我们会因一些最基本的事情而用到Siri;我们会需要用垃圾过滤器来过滤垃圾邮件;我们会需要在自己的Word文档中用到拼写检查器等。在现实世界中所要用到的NLP应用数不胜数,如图1-1所示。
图1-1
在这里,我们可以再列举一些令人惊叹的NLP应用实例。虽然你很可能已经用过它们,但未必知道这些应用是基于NLP技术的。
拼写校正(MS Word/其他编辑器)。
搜索引擎(Google、Bing、Yahoo!、WolframAlpha)。
语音引擎(Siri、Google Voice)。
垃圾邮件分类(所有电子邮件服务)。
新闻订阅(Google、Yahoo!等)。
机器翻译(Google翻译与其他类似服务)。
IBM Watson[1]。
构建上述这些应用都需要非常具体的技能,需要优秀的语言理解能力和能有效处理这些语言的工具。因此,这些不仅是各NLP最具优势领域的未来趋势,同时也是我们用NLP这种最独特技能所能创建的应用种类。
在实现上面提到的某些应用以及其他基本的NLP预处理时,我们有许多开源工具可用。这些工具有些是由相关组织在建立自己的NLP应用时开发的,而有些则纯粹属于开源项目。下面我们就来看一份NLP工具的小清单。
GATE。
Mallet。
Open NLP。
UIMA。
Stanford toolkit。
Genism。
Natural Language Tool Kit (NLTK)。
上述大多数工具都是用Java编写的,在功能上也都很相似。尽管这里有一些工具功能很强大,且提供了各种NLP实用工具,但如果我们考虑到易用性和其对相关概念的解释度的话,NLTK的得分就非常高了。NLTK库是一个非常易学的工具包,这得益于Python本身非常平缓的学习曲线(毕竟NLTK是用它编写的),人们学习起来会非常快。NLTK库中收纳了NLP领域中的绝大部分任务,它们都被实现得非常优雅,且易于使用。正是出于上述的这些原因,NLTK如今已成为了NLP社区最流行的库之一。
在这里,我们会假设读者已经对Python语言有了一定程度的了解。如果你还不了解的话,我们希望你先去学习一下Python。如今在互联网上可以找到大量的Python基础教程,并且能让你对该语言进行一个快速概览的图书也不在少数。当然,我们也会针对不同主题与你探讨Python的一些特性。但就目前而言,只要你掌握了基本的Python知识,如列表、字符串、正则表达式以及 ............
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » NLTK基础教程——用NLTK和Python库构建机器学习应用 - (EPUB全文下载)