本书的名字会给你带来广阔的联想。作为读者,你会从头学习关于自然语言处理的方方面面。本书用了非常简单的语言来具体阐述NLP中的概念,许多真实有趣的实用样例会加深你对该领域的理解。通过实现这些样例,能提升你的NLP技能。
现在,我来回答一些经常会被问起的NLP领域的问题。这些问题启发了我来写这样一本书。对我来说,让所有读者能够理解我写这本书的初衷,是一件非常重要的事情。
第一个经常被问起的问题是:什么是自然语言处理?第二个是:为什么在开发自然语言处理程序时主要会用Python呢?最后一个重要的问题是:在学习自然语言处理的时候,有哪些资源可用?现在,让我们来看一下答案!
第一个问题的答案是,自然语言,简单来说,就是你所说的、写的、读的或理解的人类自然的语言,同时是交流的媒介。我们使用计算机算法、数学概念、统计技术来处理这些语言,使得机器能够像人一样理解。
现在来回答第二个问题。最简单和直接的原因是Python有大量的库,这些库在你开发自然语言处理应用程序的时候,会让事情变得简单。第二个原因是,如果你有C或是C++的编程经验,你不用再担心会遇到内存泄漏的问题。Python的解释器会为你解决这个问题,你要做的仅仅是关注主要的编程过程。除此之外,Python是一个程序员友好的语言,与其他面向对象的语言比起来,你只需要写少量的代码就可以做更多的事情。因此,所有的这些事实都驱动着人们使用Python来开发自然语言处理应用程序以及其他数据科学相关的应用,以进行更快的建模。
最后一个问题对我来说很重要,因为我经常向朋友解释上面的答案,他们听完后会想学Python,但是有哪些可用的资源呢?我通常会推荐一些书籍、博客、YouTube上的视频,还有Udacity、Coursera等教育平台。但是几天以后,他们还会来问我有没有一个单一的学习资源——书籍或博客。不幸的是,答案是否定的。在那个时刻,我意识到兼顾所有这些资源对他们来说是比较困难的事情。这种痛苦的领悟成了我写作这本书的动力。
所以在这本书里,我尝试着覆盖大多数自然语言处理中的必要知识,这些对每个人来说都是有用的。一个好消息是我提供了很多实用的Python样例,这样读者便既能从理论角度,也能从应用角度出发理解这些概念。阅读、理解、编码是这本书的三个主要部分,会帮助读者轻松学习。本书内容
第1章提供了对自然语言处理和自然语言处理领域其他分支的介绍。我们会看到构建自然语言处理应用程序的各个阶段,并讨论nltk安装的问题。
第2章展示了语料分析的各个方面。我们将会看到不同类型的语料和语料中展现的数据属性,会接触到各种语料格式,像CSV、JSON、XML、LibSVM等。还会看到关于网页爬取的样例。
第3章会帮助你理解自然语言里面最基本的东西,也就是语言学。我们会看到词法分析、句法分析、语义分析、消歧等诸多概念。也会使用nltk来实际地理解这些概念。
第4章会帮助你弄懂各种不同类型的预处理技术以及该怎样定制它们。我们将会看到预处理的各个阶段,像数据准备、数据处理、数据转换。除了这些,你还会从实际应用的角度来理解预处理。
第5章是自然语言处理应用程序里最核心的部分。我们会看到不同的算法和工具是怎样用于生成机器学习算法的输入的,它们会被用来开发自然语言处理应用程序。我们也会理解特征工程里的统计概念,然后会对这些工具和算法进行定制化开发。
第6章会让你理解处理语义问题时遇到的自然语言处理概念。我们会看到word2vec、doc2vec、GIoVe等,以及从《权力的游戏》数据集中获得向量的一些word2vec的实际应用。
第7章会给出很多构建一个规则式系统的细节,以及开发类似自然语言处理系统时,需要牢记的方方面面。我们会看到制定规则的过程和编码规则的过程,也会看到怎样开发一个基于模板的聊天机器人。
第8章会提供给你一些新的机器学习技术。我们会看到用于开发自然语言处理应用程序的各种机器学习算法,也会使用机器学习方法实现一些强大的自然语言处理应用程序。