产品特色
编辑推荐
自然语言处理(NLP)是有关计算语言学与人工智能的研究领域之一。NLP主要关注人机交互,它提供了计算机和人类之间的无缝交互,使得计算机在机器学习的帮助下理解人类语言。
本书详细介绍如何使用Python执行各种自然语言处理(NLP)任务,并帮助读者掌握利用Python设计和构建基于NLP的应用的实践。本书引导读者应用机器学习工具来开发各种各样的模型。对于训练数据的创建和主要NLP应用的实现,例如命名实体识别、问答系统、语篇分析、词义消歧、信息检索、情感分析、文本摘要以及指代消解等,本书都进行了清晰的介绍。本书有助于读者使用NLTK创建NLP项目并成为相关领域的专家。
通过阅读本书,你将能够:
● 实现字符串匹配算法以及标准化技术;
● 实现统计语言建模技术;
● 深刻理解词干提取器、词形还原器、形态分析器以及形态生成器的开发;
● 开发搜索引擎并实现词性标注和统计建模(包含n-gram方法)等相关概念;
● 熟悉诸如树型库建设、CFG建设、CYK以及Earley线图解析算法等相关概念;
● 开发基于NER的系统并理解和应用情感分析的相关概念;
● 理解并实现信息检索和文本摘要等相关概念;
● 开发语篇分析系统以及基于指代消解的系统。
内容简介
自然语言处理是计算语言学和人工智能之中与人机交互相关的领域之一。
本书是学习自然语言处理的一本综合学习指南,介绍了如何用Python实现各种NLP任务,以帮助读者创建基于真实生活应用的项目。全书共10章,分别涉及字符串操作、统计语言建模、形态学、词性标注、语法解析、语义分析、情感分析、信息检索、语篇分析和NLP系统评估等主题。
本书适合熟悉Python语言并对自然语言处理开发有一定了解和兴趣的读者阅读参考。
作者简介
对自然语言处理理论和算法感兴趣的读者,Python程序员对自然语言处理理论和算法感兴趣的读者,Python程序员对自然语言处理理论和算法感兴趣的读者,Python程序员
目录
第1章 字符串操作 1
1.1 切分 1
1.1.1 将文本切分为语句 2
1.1.2 其他语言文本的切分 2
1.1.3 将句子切分为单词 3
1.1.4 使用TreebankWordTokenizer
执行切分 4
1.1.5 使用正则表达式实现
切分 5
1.2 标准化 8
1.2.1 消除标点符号 8
1.2.2 文本的大小写转换 9
1.2.3 处理停止词 9
1.2.4 计算英语中的停止词 10
1.3 替换和校正标识符 11
1.3.1 使用正则表达式替换
单词 11
1.3.2 用另一个文本替换文本的
示例 12
1.3.3 在执行切分前先执行替换操作 12
1.3.4 处理重复字符 13
1.3.5 去除重复字符的示例 13
1.3.6 用单词的同义词替换 14
1.3.7 用单词的同义词替换的
示例 15
1.4 在文本上应用Zipf定律 15
1.5 相似性度量 16
1.5.1 使用编辑距离算法执行相似性度量 16
1.5.2 使用Jaccard系数执行相似性度量 18
1.5.3 使用Smith Waterman距离算法执行相似性度量 19
1.5.4 其他字符串相似性度量 19
1.6 小结 20
第2章 统计语言建模 21
2.1 理解单词频率 21
2.1.1 为给定的文本开发
MLE 25
2.1.2 隐马尔科夫模型估计 32
2.2 在MLE模型上应用平滑 34
2.2.1 加法平滑 34
2.2.2 Good Turing平滑 35
2.2.3 Kneser Ney平滑 40
2.2.4 Witten Bell平滑 41
2.3 为MLE开发一个回退机制 41
2.4 应用数据的插值以便获取混合
搭配 42
2.5 通过复杂度来评估语言模型 42
2.6 在语言建模中应用
Metropolis-Hastings算法 43
2.7 在语言处理中应用Gibbs
采样法 43
2.8 小结 46
第3章 形态学:在实践中学习 47
3.1 形态学简介 47
3.2 理解词干提取器 48
3.3 理解词形还原 51
3.4 为非英文语言开发词干
提取器 52
3.5 形态分析器 54
3.6 形态生成器 56
3.7 搜索引擎 56
3.8 小结 61
第4章 词性标注:单词识别 62
4.1 词性标注简介 62
默认标注 67
4.2 创建词性标注语料库 68
4.3 选择一种机器学习算法 70
4.4 涉及n-gram的统计建模 72
4.5 使用词性标注语料库开发
分块器 78
4.6 小结 80
第5章 语法解析:分析训练资料 81
5.1 语法解析简介 81
5.2 Treebank建设 82
5.3 从Treebank提取上下文无关
文法规则 87
5.4 从CFG创建概率上下文无关
文法 93
5.5 CYK线图解析算法 94
5.6 Earley线图解析算法 96
5.7 小结 102
第6章 语义分析:意义很重要 103
6.1 语义分析简介 103
6.1.1 NER简介 107
6.1.2 使用隐马尔科夫模型的
NER系统 111
6.1.3 使用机器学习工具包训练
NER 117
6.1.4 使用词性标注执行
NER 117
6.2 使用Wordnet生成同义词
集id 119
6.3 使用Wordnet进行词义消歧 122
6.4 小结 127
第7章 情感分析:我很快乐 128
7.1 情感分析简介 128
7.1.1 使用NER执行情感
分析 134
7.1.2 使用机器学习执行情感
分析 134
7.1.3 NER系统的评估 141
7.2 小结 159
第8章 信息检索:访问信息 160
8.1 信息检索简介 160
8.1.1 停止词删除 161
8.1.2 使用向量空间模型进行
信息检索 163
8.2 向量空间评分及查询操作符
关联 170
8.3 使用隐性语义索引开发IR
系统 173
8.4 文本摘要 174
8.5 问答系统 176
8.6 小结 177
第9章 语篇分析:理解才是可信的 178
9.1 语篇分析简介 178
9.1.1 使用中心理论执行语篇
分析 183
9.1.2 指代消解 184
9.2 小结 188
第10章 NLP系统评估:性能分析 189
10.1 NLP系统评估要点 189
10.1.1 NLP工具的评估(词性标注器、词干提取器及形态分析器) 190
10.1.2 使用黄金数据执行解析器
评估 200
10.2 IR系统的评估 201
10.3 错误识别指标 202
10.4 基于词汇搭配的指标 202
10.5 基于句法匹配的指标 207
10.6 使用浅层语义匹配的指标 207
10.7 小结 208
深入探索语言的奥秘:自然语言处理的前沿与实践 在信息爆炸的时代,语言是连接人类思想、传递知识、驱动文明进步的核心载体。我们每天都在与海量的文本和语音信息打交道,从搜索引擎的精准匹配,到智能助手的贴心服务,再到社交媒体的观点分析,自然语言处理(NLP)技术正以前所未有的深度和广度渗透到我们生活的方方面面。本书将带您踏上一段激动人心的探索之旅,深入剖析自然语言处理的原理、算法和应用,为您揭示隐藏在文字背后的巨大潜能。 为何要理解自然语言处理? 人类语言的复杂性在于其多义性、歧义性、语境依赖性以及不断演变的特性。机器要理解并生成人类语言,需要跨越巨大的鸿沟。自然语言处理技术正是致力于弥合这一鸿沟,让计算机能够像人类一样“听懂”和“说出”语言。掌握NLP,意味着您将能: 解锁海量信息的价值: 从数以亿计的文档、网页、社交媒体帖子中提取有价值的信息、发现隐藏的模式、洞察用户的情绪和意图。 构建更智能的交互系统: 开发更自然、更人性化的聊天机器人、语音助手、智能客服,提升用户体验。 推动跨语言交流: 实现更精准、更流畅的机器翻译,打破语言障碍,促进全球信息共享。 革新内容创作与分析: 自动化生成新闻报道、营销文案,或者对现有内容进行深度分析,提供商业洞察。 在科研领域取得突破: 辅助科学研究,如文本挖掘、文献综述、知识图谱构建等,加速知识发现的进程。 本书将带您领略哪些精彩内容? 本书的设计旨在为您提供一个既有深度又有广度的NLP知识体系。我们将从基础概念出发,逐步深入到核心算法和前沿技术,并结合丰富的实战案例,让您在理论学习的同时,也能动手实践,感受NLP的魅力。 第一部分:自然语言处理的基石——理解语言的本质 在开始构建复杂的NLP系统之前,我们必须首先理解语言本身以及计算机如何对其进行初步的处理。 语言的结构与构成: 我们将探讨语言的基本单元,如词语、句子、段语篇,以及它们之间的关系。了解词法分析(分词、词性标注)、句法分析(依存关系分析、成分句法分析)等基础任务,是理解更高级NLP技术的前提。 文本的预处理: 原始文本往往包含大量噪音,如标点符号、大小写、特殊字符、停用词等。本部分将详细介绍各种文本预处理技术,如大小写转换、标点符号去除、停用词移除、词干提取、词形还原等,以确保后续分析的准确性。 词汇的表示: 如何将离散的词语转化为计算机可以理解和处理的数值表示?我们将深入介绍多种词向量模型,从经典的词袋模型(Bag-of-Words)和TF-IDF,到基于神经网络的词向量模型,如Word2Vec(Skip-gram, CBOW)和GloVe。您将理解这些模型如何捕捉词语之间的语义关系,为下游任务提供强大的特征表示。 第二部分:核心NLP任务的深入解析与实践 掌握了基础知识后,我们将聚焦于NLP领域的核心任务,并深入探讨实现这些任务的经典算法和模型。 文本分类与情感分析: 如何判断一篇文章属于哪个类别?如何判断一段文字表达的情感是积极、消极还是中立?我们将学习基于朴素贝叶斯、支持向量机(SVM)、逻辑回归等传统机器学习方法,以及基于循环神经网络(RNN)、长短期记忆网络(LSTM)、门控循环单元(GRU)等深度学习模型在文本分类和情感分析中的应用。 命名实体识别(NER): 从文本中识别出具有特定意义的实体,如人名、地名、组织名、日期等,是信息抽取和知识图谱构建的关键。我们将研究基于条件随机场(CRF)的模型,以及利用BiLSTM-CRF等深度学习架构实现高精度的命名实体识别。 关系抽取: 在识别出实体后,如何进一步理解实体之间的关系?例如,“史蒂夫·乔布斯”和“苹果公司”之间的“创始人”关系。我们将探讨规则匹配、远程监督以及基于深度学习的关系抽取方法。 问答系统(QA): 构建一个能够理解用户问题并从文本中提取答案的系统是NLP领域的一大挑战。我们将介绍不同类型的问答系统,如基于知识图谱的问答、基于信息检索的问答,以及近年来在开放域问答领域取得显著进展的基于阅读理解的模型。 机器翻译(MT): 将一种语言的文本准确地翻译成另一种语言是NLP最具代表性的应用之一。我们将回顾统计机器翻译(SMT)的发展,并重点介绍基于神经网络的机器翻译(NMT),特别是注意力机制(Attention Mechanism)和Transformer模型如何革新了机器翻译的性能。 第三部分:前沿NLP技术与模型 随着深度学习技术的飞速发展,NLP领域涌现出许多革命性的模型和技术。本部分将带您领略NLP的最新前沿。 预训练语言模型(PLM): 以BERT、GPT系列为代表的预训练语言模型,通过在大规模无标注语料上进行预训练,学习到了丰富的语言知识,并在下游任务上表现出惊人的迁移学习能力。我们将深入剖析预训练模型的原理,包括其架构(如Transformer)、预训练任务(如Masked Language Model, Next Sentence Prediction)以及如何进行微调(Fine-tuning)以适应各种NLP任务。 生成式模型与文本生成: 除了理解语言,让计算机生成自然、连贯、有意义的文本也至关重要。我们将探讨序列到序列(Seq2Seq)模型在文本生成中的应用,以及如何利用预训练模型进行文本摘要、故事生成、对话生成等。 多模态NLP: 语言不仅仅存在于文本中,还与图像、语音等其他模态的信息紧密关联。我们将介绍如何结合视觉信息和语言信息,进行图像描述生成、视觉问答等任务,以及多模态预训练模型的最新进展。 负责任的NLP: 随着NLP技术越来越强大,我们必须关注其潜在的伦理和社会问题,如偏见、歧视、隐私泄露等。本部分将探讨如何识别和缓解模型中的偏见,以及如何构建更公平、更安全的NLP系统。 本书的特色与优势: 循序渐进的知识体系: 从基础概念到高级算法,层层递进,确保读者能够牢固掌握每个阶段的学习内容。 丰富的实战案例: 理论结合实践,通过具体的代码示例和项目,帮助读者将所学知识应用于实际问题。 深入的原理剖析: 不仅介绍“如何做”,更深入讲解“为什么这么做”,帮助读者理解算法背后的数学原理和思想。 关注前沿进展: 及时跟进NLP领域的最新研究成果和热门技术,让读者站在技术的最前沿。 面向广泛读者群体: 无论您是计算机科学专业的学生、软件工程师、数据科学家,还是对语言智能充满好奇的业余爱好者,本书都能为您提供有价值的学习资源。 谁适合阅读本书? 计算机科学与相关专业的学生: 为您打下坚实的NLP理论基础,为后续深入研究或就业做好准备。 软件工程师: 学习如何将NLP技术集成到您的产品和服务中,提升应用的智能化水平。 数据科学家与机器学习工程师: 扩展您的技能栈,掌握处理非结构化文本数据的强大工具。 对人工智能和语言技术感兴趣的个人: 开启一段关于智能语言处理的精彩探索,了解AI如何理解和运用人类的语言。 踏上这段旅程,您将不仅学习到NLP的技术细节,更能深刻理解语言的强大力量,以及如何通过技术赋予机器理解和运用这种力量的能力。让我们一起,拨开语言的迷雾,迎接智能时代的到来。
我被这本书的实用性和前瞻性所吸引。作者并没有局限于讲解已有的成熟技术,而是积极地引入了一些最新的研究成果和发展趋势。例如,在介绍预训练语言模型(如 BERT、GPT)时,书中的讲解非常及时,并且详细地阐述了它们是如何改变了 NLP 的研究范式。我特别喜欢书中关于如何 fine-tune 预训练模型来解决下游任务的章节,这为我解决实际问题提供了非常有价值的指导。此外,书中还探讨了在低资源语言环境下进行 NLP 开发的挑战和解决方案,这对于我这种研究非主流语言 NLP 的读者来说,简直是雪中送炭。本书的内容组织清晰,逻辑性强,从入门到精通,各个环节都衔接得非常自然。我感觉这本书不仅适合初学者,也对有一定 NLP 基础的读者有很大的启发作用。书中的一些高级技巧和最佳实践,更是让我受益匪浅。我强烈推荐这本书给任何想要在 Python 中深入学习和实践自然语言处理技术的开发者和研究者。