
本书基于Python编程语言,以实战为导向,主要介绍自然语言处理的各种理论、方法及应用案例。全书共14章:第1~3章侧重介绍自然语言处理所必需的理论基础知识,包括自然语言处理基础、Python基础、语料库基础等内容;第4~10章主要讲解词法分析、词向量与关键词提取、句法分析、语义分析、情感分析等自然语言处理核心技术的原理及实现方法,以及自然语言处理中常用的机器学习和深度学习技术;第11~14章主要介绍自然语言处理比较典型的应用场景,包括机器翻译与写作、智能问答与对话及个性化推荐,以及自然语言处理技术在医疗、司法和金融领域的应用情况。本书设置较多示例,实操性较强,建议读者根据书内讲解动手完成实验,以便巩固所学内容。
前 言 人工智能作为新一轮科技革命和产业变革的重要驱动力量,正在改变世界,人工智能产品和服务在我们的生活中已经随处可见,如搜索引擎、智能客服、智能语音助手、Google翻译等,为我们的生活和工作带来了极大的便利。这些便利的背后是自然语言处理技术的发展,它是人工智能领域的一个重要方向,主要研究实现人与计算机之间用自然语言进行有效通信的各种理论和方法,可以弥补人类交流(自然语言)与计算机理解(机器语言)之间的差距。 我们通过自然语言进行交流,也能获取到自然语言中所包含的信息,这是因为我们的大脑对这些信息进行了人工处理,即我们阅读并理解了它们。而计算机要阅读和理解自然语言则困难得多,远不如人们想象的那么简单。根据工业界的估计,只有21%的数据是以结构化的形式展现的。数据由交流、发微博、发消息等各种方式产生,主要以文本形式存在,而数据的产生方式却是高度无结构化的。这些文本消息,如社交网络上的发言、聊天记录、新闻、博客、文章等,所表达的信息很难直接被获取到,计算机既要阅读并理解它们的意义,又要以自然语言文本来表达给定的意图和思想等,还需要关于外在世界的广泛知识以及运用操作这些知识的能力。 用自然语言与计算机进行通信,虽然面临着一些困难和障碍,但自然语言处理技术不断地取得新的突破和进展。例如,IBM的Waston在电视问答节目中战胜了人类冠军,苹果公司的Siri个人助理被大众广为使用,科大讯飞已经研发出高考机器人等。对自然语言处理的发展,有的人充满期待,希望自然语言处理能够给生活和工作带来更大、更有意义的变革;有的人则表示担心,害怕一些工作岗位未来会被机器人完全取代。尽管人们对自然语言处理的发展看法不一,但研究和学习自然语言处理本身仍然是充满魅力和挑战的。 本书基于Python编程语言,以实战为导向,主要介绍自然语言处理的各种理论、方法及应用案例。全书共14章: 第1~3章侧重介绍自然语言处理所必需的理论基础知识,包括自然语言处理基础、Python基础和语料库基础等内容,并在相应的知识板块中设置实验案例,帮助读者快速熟悉理论知识。 第4~10章主要讲解词法分析、词向量与关键词提取、句法分析、语义分析、情感分析等自然语言处理核心技术的原理及实现方法,以及自然语言处理中常用的机器学习和深度学习技术。该部分内容实操性较强,设置较多的实验案例,建议读者根据书内讲解动手完成实验,以便更好地理解相关技术原理。 第11~14章主要介绍自然语言处理比较典型的应用场景,包括机器翻译与写作、智能问答与对话及个性化推荐,以及自然语言处理技术在医疗、司法和金融领域的应用情况。该部分内容能够帮助读者深度了解自然语言处理技术最终可以实现什么样的功能,可为读者选择自然语言处理相关的研究方向或者从业领域提供参考。 本书适合人工智能相关专业的学生和技术人员,以及人工智能领域的兴趣爱好者阅读。 由于编者水平有限,编写时间较为仓促,书中难免存在疏漏和不足之处,恳请广大读者批评指正。 编 者
目 录 第1章 自然语言处理基础 1 1.1 什么是自然语言处理 1 1.1.1 自然语言处理的概念 1 1.1.2 自然语言处理的研究任务 3 1.2 自然语言处理的发展历程 4 1.3 自然语言处理相关知识的构成 6 1.3.1 基础术语 6 1.3.2 知识结构 7 1.4 探讨自然语言处理的几个层面 8 1.5 自然语言处理与人工智能 10 第2章 Python基础 11 2.1 搭建Python开发环境 11 2.1.1 Python的科学计算发行版—Anaconda 11 2.1.2 Anaconda的下载与安装 13 2.2 正则表达式在自然语言处理中的基本应用 17 2.2.1 匹配字符串 18 2.2.2 使用转义符 20 2.2.3 抽取文本中的数字 21 2.3 Numpy使用详解 22 2.3.1 创建数组 22 2.3.2 获取Numpy中数组的维度 24 2.3.3 获取本地数据 24 2.3.4 正确读取数据 25 2.3.5 Numpy数组索引 25 2.3.6 Numpy数组切片 26 2.3.7 数组比较 26 2.3.8 替代值 27 2.3.9 数据类型的转换 28 2.3.10 Numpy的统计计算方法 29 第3章 语料库基础 30 3.1 语料库基础概述 30 3.2 自然语言工具包NLTK 31 3.2.1 NLTK概述 31 3.2.2 安装NLTK 32 3.2.3 使用NLTK 33 3.2.4 在Python NLTK下使用Stanford NLP 37 3.3 获取语料库 41 3.3.1 访问网站 41 3.3.2 编写程序 42 3.3.3 通过NLTK获取 43 3.4 综合案例:走进《红楼梦》 46 3.4.1 数据采集和预处理 46 3.4.2 构建本地语料库 47 3.4.3 语料操作 47 第4章 词法分析 51 4.1 中文分词 51 4.1.1 中文分词介绍 51 4.1.2 规则分词 52 4.1.3 统计分词 58 4.1.4 混合分词 67 4.1.5 中文分词工具—Jieba 67 4.2 词性标注 70 4.2.1 词性标注概述 70 4.2.2 词性标注规范 71 4.2.3 Jieba分词中的词性标注 72 4.3 命名实体识别 73 4.3.1 命名实体识别概述 73 4.3.2 基于CRF的命名实体识别 75 4.3.3 日期识别实战 77 4.3.4 地名识别实战 81 第5章 词向量与关键词提取 90 5.1 词向量算法word2vec 90 5.1.1 神经网络语言模型 91 5.1.2 C&W模型 92 5.1.3 CBOW模型和Skip-gram模型 93 5.2 关键词提取技术概述 94 5.3 TF-IDF算法 95 5.4 TextRank算法 96 5.5 LSA/LSI/LDA算法 98 5.5.1 LSA/LSI算法 98 5.5.2 LDA算法 99 5.6 提取文本关键词 100 第6章 句法分析 108 6.1 句法分析概述 108 6.1.1 句法分析的基本概念 108 6.1.2 句法分析的基本方法 109 6.2 句法分析的数据集与评测方法 109 6.2.1 句法分析的数据集 110 6.2.2 句法分析的评测方法 111 6.3 句法分析的常用方法 111 6.3.1 基于PCFG的句法分析 112 6.3.2 基于最大间隔马尔可夫网络的句法分析 113 6.3.3 基于CRF的句法分析 114 6.3.4 基于移进-归约的句法分析模型 114 6.4 使用Stanford Parser的PCFG算法进行句法分析 115 6.4.1 Stanford Parser 115 6.4.2 基于PCFG的中文句法分析实战 116 第7章 语义分析 119 7.1 词义消歧 119 7.1.1 基于规则的词义消歧 120 7.1.2 基于统计的词义消歧 121 7.1.3 基于实例的词义消歧 122 7.1.4 基于词典的词义消歧 122 7.2 语义角色标注 124 7.2.1 格语法 124 7.2.2 基于统计机器学习技术的语义角色标注 125 7.3 深层语义推理 126 7.3.1 命题逻辑和谓词逻辑 126 7.3.2 语义网络 127 7.3.3 概念依存理论 129 第8章 情感分析 130 8.1 情感分析的应用领域 130 8.2 情感分析的基本方法 131 8.2.1 词法分析 132 8.2.2 机器学习方法 132 8.2.3 混合分析 132 8.3 实战—电影评论情感分析 133 8.3.1 模型选择 134 8.3.2 载入数据 136 8.3.3 辅助函数 138 8.3.4 模型设置 138 8.3.5 调参配置 140 8.3.6 训练过程 140 第9章 机器学习与自然语言处理 141 9.1 几种常用的机器学习方法 141 9.1.1 文本分类 141 9.1.2 特征提取 142 9.1.3 标注 142 9.1.4 搜索与排序 143 9.1.5 推荐系统 144 9.1.6 序列学习 145 9.2 无监督学习的文本聚类 146 9.3 文本分类实战:中文垃圾邮件分类 148 9.3.1 实现代码 148 9.3.2 评价指标 151 9.4 文本聚类实战:用k-means对豆瓣读书数据聚类 153 第10章 深度学习与自然语言处理 157 10.1 词嵌入算法 157 10.1.1 词向量 157 10.1.2 word2vec 158 10.1.3 词向量模型 159 10.1.4 CBOW和Skip-gram 161 10.2 训练词向量实践 161 10.3 RNN 166 10.3.1 简单RNN 166 10.3.2 LSTM网络 168 10.3.3 Attention机制 172 10.4 seq2seq模型与实战 173 10.4.1 seq2seq模型 173 10.4.2 实战seq2seq问答机器人 174 第11章 机器翻译与写作 194 11.1 机器翻译 194 11.1.1 机器翻译的意义 194 11.1.2 经典的神经网络机器翻译模型 195 11.1.3 机器翻译译文质量评价 200 11.1.4 机器翻译面临的挑战 202 11.2 机器写作 203 11.2.1 什么是机器写作 203 11.2.2 艺术写作 204 11.2.3 当代写作 207 第12章 智能问答与对话 212 12.1 智能问答 212 12.2 智能对话系统 212 12.2.1 对话系统的基本过程 213 12.2.2 对话系统的常见场景 213 12.3 问答系统的主要组成 214 12.4 不同类型的问答系统 215 12.4.1 文本问答系统 216 12.4.2 阅读理解型文本问答系统 220 12.4.3 社区问答系统 223 12.4.4 IBM的“沃森”问答系统 225 12.5 前景与挑战 226 第13章 个性化推荐 227 13.1 推荐系统是什么 227 13.2 个性化推荐的基本问题 227 13.2.1 推荐系统的输入 228 13.2.2 推荐系统的输出 228 13.2.3 推荐的基本形式 229 13.2.4 推荐系统的三大核心 230 13.3 推荐的可解释性 230 13.4 前景与挑战 232 13.4.1 推荐系统面临的问题 232 13.4.2 推荐系统的新方向 233 第14章 行业应用 235 14.1 智慧医疗 235 14.1.1 智慧医疗的产生与概念 235 14.1.2 智慧医疗中的人工智能 237 14.1.3 前景与挑战 239 14.2 智慧司法 240 14.2.1 智慧司法是什么 240 14.2.2 研究与应用方向 241 14.2.3 期望与挑战 247 14.3 智能金融 248 14.3.1 了解智能金融 248 14.3.2 智能金融技术的应用 252 14.3.3 智能金融的前景与挑战 254