具体描述
自然语言处理是什么?谁需要学习自然语言处理?自然语言处理在哪些地方应用?相关问题一直困扰着不少初学者。针对这一情况,作者结合教学经验和工程应用编写此书。《自然语言处理理论与实战》讲述自然语言处理相关学科知识和理论基础,并介绍使用这些知识的应用和工具,以及如何在实际环境中使用它们。由于自然语言处理的特殊性,其是一门多学科交叉的学科,初学者难以把握知识的广度和宽度,对侧重点不能全面掌握。《自然语言处理理论与实战》针对以上情况,经过科学调研分析,选择以理论结合实例的方式将内容呈现出来。其中涉及开发工具、Python语言、线性代数、概率论、统计学、语言学等工程上常用的知识介绍,然后介绍自然语言处理的核心理论和案例解析,最后通过几个综合性的例子完成自然语言处理的学习和深入。《自然语言处理理论与实战》旨在帮助读者快速、高效地学习自然语言处理和人工智能技术。
《自然语言处理理论与实战》适用于具备一定编程基础的计算机专业、软件工程专业、通信专业、电子技术专业和自动化专业的大学二年级以上的学生、科研工作者和相关技术人员。一些做工程应用的自然语言处理工程师,也可以通过阅读《自然语言处理理论与实战》补充理论知识,理论知识的魅力在于遇到工程难题时,可以知道其背后的原因,快速、准确地解决问题。
作者简介
1 唐聃教授,中科院工学博士。现工作于成都信息工程大学软件工程学院。研究方向包括自然语言处理、信息安全、数据分析。曾参与多项国家863项目和中科院知识创新工程项目、省科技厅和教育厅项目;2016年入选中国科学院西部之光人才计划(中国科学院西部青年学者)。
2 白宁超,工学硕士,四川省计算机研究院开发工程师,曾参与国家自然基金项目和四川省科技支撑计划等多个省级项目。
3 冯暄 高级工程师,四川省计算机研究院信息化工程研究所所长。主持或参与国家级、省级科研项目16项。获得四川省科技进步奖二等奖2项、三等奖1项。
目录信息
1.1 什么是自然语言处理 1
1.1.1 自然语言处理概述 1
1.1.2 自然语言处理的发展历史 3
1.1.3 自然语言处理的工作原理 6
1.1.4 自然语言处理的应用前景 7
1.2 开发工具与环境 7
1.2.1 Sublime Text 和Anaconda 介绍 7
1.2.2 开发环境的安装与配置 8
1.3 实战:第一个小程序的诞生 13
1.3.1 实例介绍 13
1.3.2 源码实现 13
第2 章快速上手Python 15
2.1 初识Python 编程语言 15
2.1.1 Python 概述 15
2.1.2 Python 能做什么 17
2.1.3 Python 的语法和特点 19
2.2 Python 进阶 24
2.2.1 Hello World 24
2.2.2 语句和控制流 24
2.2.3 函数 27
2.2.4 List 列表 29
2.2.5 元组 32
2.2.6 set 集合 33
2.2.7 字典 33
2.2.8 面向对象编程:类 34
2.2.9 标准库 36
2.3 Python 深入——第三方库 36
2.3.1 Web 框架 36
2.3.2 科学计算 37
2.3.3 GUI 37
2.3.4 其他库 37
第3 章线性代数 39
3.1 线性代数介绍 39
3.2 向量 40
3.2.1 向量定义 40
3.2.2 向量表示 42
3.2.3 向量定理 42
3.2.4 向量运算 43
3.3 矩阵 47
3.3.1 矩阵定义 47
3.3.2 矩阵表示 48
3.3.3 矩阵运算 48
3.3.4 线性方程组 51
3.3.5 行列式 51
3.3.6 特征值和特征向量 55
3.4 距离计算 56
3.4.1 余弦距离 56
3.4.2 欧氏距离 57
3.4.3 曼哈顿距离 58
3.4.4 明可夫斯基距离 59
3.4.5 切比雪夫距离 61
3.4.6 杰卡德距离 62
3.4.7 汉明距离 63
3.4.8 标准化欧式距离 64
3.4.9 皮尔逊相关系数 65
第4 章概率论 67
4.1 概率论介绍 67
4.2 事件 68
4.2.1 随机试验 68
4.2.2 随机事件和样本空间 69
4.2.3 事件的计算 70
4.3 概率 71
4.4 概率公理 73
4.5 条件概率和全概率 76
4.5.1 条件概率 76
4.5.2 全概率 77
4.6 贝叶斯定理 78
4.7 信息论 79
4.7.1 信息论的基本概念 79
4.7.2 信息度量 80
第5 章统计学 85
5.1 图形可视化 85
5.1.1 饼图 85
5.1.2 条形图 88
5.1.3 热力图 91
5.1.4 折线图 93
5.1.5 箱线图 96
5.1.6 散点图 99
5.1.7 雷达图 102
5.1.8 仪表盘 104
5.1.9 可视化图表用法 106
5.2 数据度量标准 108
5.2.1 平均值 108
5.2.2 中位数 108
5.2.3 众数 110
5.2.4 期望 111
5.2.5 方差 112
5.2.6 标准差 113
5.2.7 标准分 114
5.3 概率分布 115
5.3.1 几何分布 115
5.3.2 二项分布 116
5.3.3 正态分布 118
5.3.4 泊松分布 121
5.4 统计假设检验 123
5.5 相关和回归 125
5.5.1 相关 125
5.5.2 回归 127
5.5.3 相关和回归的联系 130
第6 章语言学 132
6.1 语音 132
6.1.1 什么是语音 132
6.1.2 语音的三大属性 133
6.1.3 语音单位 134
6.1.4 记音符号 135
6.1.5 共时语流音变 136
6.2 词汇 137
6.2.1 什么是词汇 137
6.2.2 词汇单位 137
6.2.3 词的构造 138
6.2.4 词义及其分类 140
6.2.5 义项与义素 141
6.2.6 语义场 142
6.2.7 词汇的构成 143
6.3 语法 143
6.3.1 什么是语法 143
6.3.2 词类 144
6.3.3 短语 148
6.3.4 单句 150
6.3.5 复句 152
第7 章自然语言处理 155
7.1 自然语言处理的任务和限制 155
7.2 自然语言处理的主要技术范畴 156
7.2.1 语音合成 156
7.2.2 语音识别 156
7.2.3 中文自动分词 157
7.2.4 词性标注 158
7.2.5 句法分析 158
7.2.6 文本分类 159
7.2.7 文本挖掘 160
7.2.8 信息抽取 161
7.2.9 问答系统 161
7.2.10 机器翻译 162
7.2.11 文本情感分析 163
7.2.12 自动摘要 164
7.2.13 文字蕴涵 165
7.3 自然语言处理的难点 165
7.3.1 语言环境复杂 165
7.3.2 文本结构形式多样 166
7.3.3 边界识别限制 166
7.3.4 词义消歧 167
7.3.5 指代消解 168
7.4 自然语言处理展望 169
第8 章语料库 173
8.1 语料库浅谈 173
8.2 语料库深入 174
8.3 自然语言处理工具包:NLTK 176
8.3.1 NLTK 简介 176
8.3.2 安装NLTK 177
8.3.3 使用NLTK 180
8.3.4 在Python NLTK 下使用Stanford NLP 186
8.4 获取语料库 194
8.4.1 国内外著名语料库 195
8.4.2 网络数据获取 197
8.4.3 NLTK 获取语料库 200
8.5 综合案例:走进大秦帝国 208
8.5.1 数据采集和预处理 208
8.5.2 构建本地语料库 208
8.5.3 大秦帝国语料操作 209
第9 章中文自动分词 216
9.1 中文分词简介 216
9.2 中文分词的特点和难点 218
9.3 常见中文分词方法 219
9.4 典型中文分词工具 220
9.4.1 HanLP 中文分词 220
9.4.2 其他中文分词工具 223
9.5 结巴中文分词 224
9.5.1 基于Python 的结巴中文分词 224
9.5.2 结巴分词工具详解 227
9.5.3 结巴分词核心内容 230
9.5.4 结巴分词基本用法 233
第10 章数据预处理 241
10.1 数据清洗 241
10.2 分词处理 242
10.3 特征构造 242
10.4 特征降维与选择 243
10.4.1 特征降维 243
10.4.2 特征选择 243
10.5 简单实例 244
10.6 本章小结 249
第11 章马尔可夫模型 250
11.1 马尔可夫链 250
11.1.1 马尔可夫简介 250
11.1.2 马尔可夫链的基本概念 251
11.2 隐马尔可夫模型 253
11.2.1 形式化描述 253
11.2.2 数学形式描述 255
11.3 向前算法解决HMM 似然度 256
11.3.1 向前算法定义 256
11.3.2 向前算法原理 256
11.3.3 现实应用:预测成都天气的冷热 258
11.4 文本序列标注案例:Viterbi 算法 259
第12 章条件随机场 263
12.1 条件随机场介绍 263
12.2 简单易懂的条件随机场 265
12.2.1 CRF 的形式化表示 265
12.2.2 CRF 的公式化表示 266
12.2.3 深度理解条件随机场 268
第13 章模型评估 269
13.1 从统计角度介绍模型概念 269
13.1.1 算法模型 269
13.1.2 模型评估和模型选择 270
13.1.3 过拟合与欠拟合的模型选择 272
13.2 模型评估与选择 275
13.2.1 模型评估的概念 275
13.2.2 模型评估的评测指标 275
13.2.3 以词性标注为例分析模型评估 276
13.2.4 模型评估的几种方法 278
13.3 ROC 曲线比较学习器模型 279
第14 章命名实体识别 281
14.1 命名实体识别概述 281
14.2 命名实体识别的特点与难点 284
14.3 命名实体识别方法 284
14.4 中文命名实体识别的核心技术 286
14.5 展望 295
第15 章自然语言处理实战 296
15.1 GitHub 数据提取与可视化分析 296
15.1.1 了解GitHub 的API 296
15.1.2 使用NetworkX 作图 299
15.1.3 使用NetworkX 构建兴趣图 301
15.1.4 NetWorkX 部分统计指标 304
15.1.5 构建GitHub 的兴趣图 305
15.1.6 可视化 318
15.2 微博话题爬取与存储分析 320
15.2.1 数据采集 320
15.2.2 数据提取 329
15.2.3 数据存储 332
15.2.4 项目运行与分析 333
附录A Python 与其他语言调用 337
附录B Git 项目上传简易教程 339
参考文献 341
· · · · · · (收起)
读后感
这本书内容全面,本书几乎涵盖了自然语言处理所有相关重要的知识点,逻辑很清晰,目前在读,适合对NLP学习处于成长期的学者阅读,同样也适合当个学习路径看。作为数学专业出身,对代码的动手能力较差,这本书也恰好弥补了我的不足,想学习好NLP,就要多动手,多练习,最后希望...
这本书特别适合自然语言处理学习的初学者,它的架构清晰,循序渐进,学习的同时帮我重新复习了大学拉下的高等数学,本书从最基础的环境搭建做起,理论知识和案例编码的互相支持,使得枯燥的理论和概念变得通俗易懂,书中案例代码能下载的到,只要静下心来慢慢学,学习自然语言...
我也是计算机专业的哈。就书的目录而言,读起来一目了然,结构清晰,这在机器学习和开始就得分了不少。本人还是机器学习的小白,很多数学基础还在慢慢深入了解。这本书涉及了自然语言处理,帮助我学习机器学习的同时,还可以给予我机器学习和自然语言两者间关联规则的启发。所...
该书讲解的非常细致,对于初学者来说是本很好的入门级教材,书中的案例讲解,由浅入深,加强理论知识的同时,增强实践性操作,作为对代码的动手能力较差的个人,这本书弥补了我的不足,慢慢引导我学习,多动手敲代码,多练习,作为入门级教材,极力推荐!在此衷心希望作者继续...
什么是大数据,什么是日然语言处理,如果对这两个概念不是很了解的初学者,这本书是一个不错的选择。作者从一个基础的学者的角度出发,给读者从基础到实践的流程化讲解,不仅适合代码水平一流的码农,更适合动手能力一般的学生。理论与实践相结合,使得讲解更加清楚明了,也使...
用户评价
这本书的另一大亮点在于其前瞻性和包容性。除了介绍经典的自然语言处理技术,作者还触及了一些前沿的研究方向,如深度学习在NLP中的应用、预训练语言模型、以及一些新兴的NLP任务,如机器翻译、问答系统、文本生成等。这些内容让我对NLP的未来发展趋势有了清晰的认识,也激发了我进一步深入研究的动力。我了解到,像BERT、GPT这样的模型,是如何通过海量数据的预训练,极大地提升了NLP的性能。这本书仿佛为我打开了一扇通往未来技术的大门,让我看到了NLP在各个领域的巨大潜力和无限可能。
这本书的结构安排得非常巧妙,它既有理论的高度,又不乏实践的深度。在每一章节的末尾,作者都会提供相关的代码示例或者思考题,引导读者将所学知识应用于实际问题。我尝试着跟着书中的示例,用Python实现了几个简单的自然语言处理任务,比如文本的情感分析和关键词提取。虽然我之前的编程经验有限,但得益于书中的详细讲解和清晰的代码注释,我竟然也能磕磕绊绊地跑通程序,并且得到了令人惊喜的结果。这种“学以致用”的成就感,是任何理论课程都无法比拟的。它让我切实感受到,自然语言处理并非遥不可及的技术,而是可以通过努力学习和实践掌握的强大工具。
这本书的封面设计就充满了学术的严谨和前沿的科技感,深邃的蓝色背景上,银色的线条勾勒出抽象的神经网络结构,隐约可见的文字符号在其中穿梭。翻开扉页,一股知识的芬芳扑面而来,让人迫不及待地想要一探究竟。我本身从事的是数据分析领域,近年来,随着大数据时代的到来,信息爆炸式增长,而如何从海量文本数据中提取有价值的信息,一直是困扰我的难题。在工作中,我常常需要处理大量的用户评论、新闻报道、社交媒体帖子等等,这些非结构化数据蕴含着巨大的商业价值和用户洞察,但手工分析的速度和准确性都难以满足需求。我一直在寻找一本能够系统性地介绍如何利用计算机来理解和处理人类语言的书籍,一本能够 bridging the gap between human intuition and machine processing 的著作。
阅读这本书的过程,就像是在一场精心设计的智慧探险。作者以一种循序渐进的方式,将一个看似复杂而深奥的领域,拆解成了一系列逻辑清晰、引人入胜的模块。从最基础的词汇分析,到词性标注、句法分析,再到更深层次的语义理解和篇章分析,每一步都搭建在前一步的基础上,让读者在不知不觉中掌握了核心概念。我尤其欣赏作者在讲解过程中,不仅仅是罗列概念和算法,更是深入浅出地解释了这些技术背后的原理和思想。比如,在介绍词向量时,作者并没有直接给出公式,而是通过一个生动的比喻,将抽象的数学模型具象化,让我立刻就明白了词语之间的“距离”和“关系”是如何被量化的。这种化繁为简的叙述方式,极大地降低了学习门槛,也让我对这个领域产生了浓厚的兴趣。
这本书的语言风格非常独特,既有学术的严谨,又不失轻松的幽默。作者善于运用生动的比喻和形象的例子,将抽象的概念变得易于理解。读的过程中,我常常会心一笑,感觉到仿佛是在与一位经验丰富的导师在进行一场愉快的对话。他并没有刻意去使用晦涩难懂的专业术语,而是尽量用最简洁明了的语言来表达复杂的思想。这种贴近读者的叙述方式,让我能够全身心地投入到阅读中,没有丝毫的疲惫感。
在我阅读过的众多技术书籍中,这本书无疑是最具启发性的一本。作者不仅仅是在传授知识,更是在传递一种解决问题的思维方式。他鼓励读者批判性地思考,勇于尝试,不怕犯错。在讲解复杂算法时,他总是先抛出一个问题,然后引导读者一步步地分析问题,找出解决方案。这种“引导式”的学习方法,让我受益匪浅。我不再是被动地接受知识,而是主动地参与到学习过程中,思考每一个步骤的合理性。这种思维训练,对于我在日常工作中解决实际问题,也起到了至关重要的作用。
这本书的排版和设计也非常人性化,每一页的内容都恰到好处,不会让人感到拥挤。字体大小适中,行间距合理,即使长时间阅读也不会感到眼睛疲劳。章节之间的过渡自然流畅,索引清晰明了,方便读者查找相关内容。在重要的概念和公式旁,作者还特别设置了加粗和高亮,进一步强调了关键信息。总而言之,这是一本从内到外都体现出匠心精神的图书,无论是内容还是形式,都无可挑剔。
对于任何想要进入自然语言处理领域,或者希望提升自己在这方面知识储备的读者来说,这本书都绝对是一个不容错过的选择。它不仅仅是一本教材,更是一本能够激发你思考、引导你实践、并最终帮助你实现目标的宝贵资源。我将这本书推荐给我的同事们,他们也都对这本书赞不绝口。我们相信,通过学习这本书,我们能够更好地理解和应用自然语言处理技术,在工作中取得更大的突破。
总而言之,这本书的价值远不止于书本本身。它更像是一张通往广阔领域的地图,指引我前进的方向;它又像是一把开启智慧之门的钥匙,让我得以窥探前沿科技的奥秘。我强烈推荐这本书给所有对人工智能、计算机科学、以及语言学感兴趣的朋友们。相信我,你一定会在这本书中找到属于你的惊喜和收获,它将彻底改变你对自然语言处理的认知,并为你未来的学习和工作打开全新的篇章。
作为一名对语言学有着浓厚兴趣的读者,我在这本书中找到了很多共鸣。作者在讲解的过程中,常常会引用一些语言学的理论和概念,并将它们与计算机模型联系起来。这让我意识到,看似冰冷的计算机算法,其实是建立在对人类语言深邃理解的基础之上的。比如,在介绍句法分析时,书中详细讲解了各种语法理论,如成分句法和依存句法,并分析了不同理论如何影响计算机对句子结构的解析。这不仅加深了我对自然语言处理的理解,也让我对语言本身的奥秘有了新的认识。我开始思考,人类大脑是如何在瞬间完成如此复杂的语言处理过程的,而我们的算法又能在多大程度上模拟这一过程。
很好的一本书,从入门到精通,深入浅出,涉及各方面的知识,对自然语言这块有很好的帮助,案例+讲解,初学者也可以很快上手
条理清晰,易懂,值得看
对于一个想学习大数据相关的知识,却又茫然不知所措的初学者来说很适用,这本书深入浅出的讲解了专业性的知识,有理论有示例有代码,提升了我的理论认知又让我手动操作增强了实践性,就觉着这书很赞,极力推荐啊。
非常适合对NLP一问三不知却急于想入门的朋友,这书无疑是指路明灯。对我这个文科生而言,章节设置上至少让我知道了要去补哪些数理知识。看到语言学章节时的亲切感也让我十分欣喜。语言学内容基本按着黄廖本《现代汉语》来的,虽无太多新意,但例子都算举得恰当,让我这个中文口的挑不出太多毛病。 书中部分地方有讹误空缺之处,希望之后能改进。
很不幸购买了这本书,不仅废话多,错误多。没什么营养,作者是怀着什么样的心态写了这本书呢🙃