新書推薦:

《
城市群高铁网络化的多尺度空间效应与规划应对
》
售價:NT$
505

《
古代教坊与文学艺术研究(国家哲学社会科学成果文库)(全两册)
》
售價:NT$
1775

《
(小历史大世界)日本小史
》
售價:NT$
403

《
慢慢变成大人 一部颠覆传统教育观的权威指南 驳斥传统育儿观念,直击教育核心 直面儿童成长中的深层议题
》
售價:NT$
352

《
口腔临床病例精粹
》
售價:NT$
500

《
下潜,潜入夜海
》
售價:NT$
347

《
Wi-Fi室内定位理论、技术及应用
》
售價:NT$
755

《
中国现代小说的起点:清末民初小说研究
》
售價:NT$
551
|
| 內容簡介: |
|
文本智能处理作为中文信息处理的关键领域,展现出广阔前景;Python以其强大的生态和易用性,已成为主流编程工具。然而,初学者如何系统掌握Python并将其有效应用于文本处理仍面临着挑战,《Python与文本智能处理入门》旨在为初学者提供一条清晰实用的学习路径。《Python与文本智能处理入门》面向初学者,系统梳理了用Python进行中文文本智能处理的完整路径。前4章夯实语言基础—数据结构、流程控制、正则表达式与规范编程范式;第5章及以后深入应用—语料库构建、网络爬虫、数据可视化,覆盖分词、向量化、相似度、分类聚类、情感分析及深度学习,配套案例代码,理实结合,快速上手。
|
| 目錄:
|
|
目录第1章 绪论 11.1 NLP概述 11.2 NLP基本流程 51.3 NLP的编程环境搭建 7第2章 Python编程的数据结构 162.1 数字 162.2 字符串 192.3 列表 242.4 元组 292.5 集合 312.6 字典 332.7 数据类型转换 37第3章 程序语句结构 403.1 顺序结构 403.2 分支结构 413.3 循环结构 443.4 其他语句结构 483.5 综合应用案例 53第4章 正则表达式 564.1 初识正则表达式 564.2 正则表达式函数 564.3 正则表达式的元字符 624.4 正则表达式的应用 66第5章 文本词汇层面的处理(上) 715.1 中文分词简介 715.2 中文分词的主要方法 725.3 中文分词工具jieba 775.4 文本词性标注 815.5 本章小结 84第6章 文本词汇层面的处理(下) 876.1 文本关键词提取 876.2 命名实体识别 936.3 任务:中文命名实体识别 956.4 文本语义角色标记 102第7章 图形绘制与词云图的生成 1117.1 Matplotlib与图形绘制 1117.2 词云图的生成 1147.3 利用词频数据生成词云图 1187.4 本章小结 121第8章 文本向量化和文本语义相似度 1268.1 文本向量化的概念 1268.2 文本离散表示 1268.3 文本分布式表示 1388.4 文本语义相似度计算 141第9章 文本分类与文本聚类 1529.1 文本挖掘 1529.2 文本分类常用算法 1549.3 文本聚类常用算法 1619.4 文本分类与文本聚类的步骤 1719.5 任务:垃圾短信分类 1729.6 任务:新闻文本聚类 1759.7 本章小结 179第10章 文本情感分析 18210.1 文本情感分析简介 18210.2 情感分析的常用方法 18310.3 常用的情感分类模型 19210.4 任务:基于情感词典的情感分析 197第11章 爬虫技术 20111.1 网络爬虫简介 20111.2 运用正则表达式爬取网页数据 20511.3 运用XPath爬取网络小说 20811.4 运用bs4爬取网页数据 21411.5 动态网页数据获取 217第12章 NLP中的深度学习技术 22712.1 前馈神经网络 22712.2 循环神经网络 23012.3 LSTM网络 23212.4 深度学习工具 23412.5 基于LSTM网络的文本分类与文本情感分析 237第13章 语料库的构建与应用 25513.1 语料库的概念 25513.2 语料库的种类与构建原则 25613.3 NLTK及其常用功能 25913.4 语料库资源的获取 26413.5 任务:语料库的构建与使用 265附录 NLTK词性标注对照表 270后记 272
|
| 內容試閱:
|
|
第1章绪论 1.1 NLP概述 1.1.1 NLP的概念 自然语言处理(natural language processing,NLP)是研究用计算机对自然语言(如中文、英文等)的形、音、义等信息进行处理,即对字、词、句、篇章的输入、输出、识别、分析、理解、生成等进行操作和加工的过程。NLP是人工智能领域和计算机科学的一个重要分支,是一门集语言学、计算机科学、数学和统计学于一体的交叉性科学。 NLP的核心目标是实现人机之间自然、流畅的交流,主要涉及两个研究方向:自然语言理解和自然语言生成。自然语言理解研究的是计算机如何理解自然语言文本中包含的意义,自然语言生成研究的是计算机如何生成自然语言文本表达给定的意图、思想等。NLP的目标是让计算机“理解”自然语言,因而其有时也被称为自然语言理解(natural language understanding,NLU)。 1.1.2 NLP的发展简史 1946年世界*台通用电子计算机诞生后,英国学者沃伦?韦弗与美国学者安德鲁?布思在1947年提出了利用计算机进行机器翻译的前瞻性思想,而艾伦?图灵在1950年提出了著名的“图灵测试”,作为判断机器是否具有智能的标准之一。到目前为止,NLP技术已走过逾70年的发展历程,其间可大致划分为三个阶段:萌芽期、发展期及繁荣期。 1.1.2.1 萌芽期(1960年以前) 20世纪40~50年代,除对全球产生深远影响的计算机技术以外,美国有两位学者在各自领域进行了开创性的研究:一位是香农,他在概率和信息论模型的基础上,进行了富有洞察力的研究,其工作对通信理论产生了重大影响,并对后来的NLP技术有间接影响;另一位是乔姆斯基,他提出了转换生成语法理论,对形式语言和自然语言的研究产生了深远影响。这两位学者的杰出贡献为后来NLP技术的发展奠定了理论基础,催生了基于概率和基于规则的两种NLP技术流派。在随后的数十年间,学术界围绕这些技术的发展展开了深入的探讨与辩论。 1.1.2.2 发展期(1960~2000年前后) 20世纪60年代,法国格勒诺布尔-阿尔卑斯大学的著名数学家沃古瓦开始了机器翻译系统的开发。在这一时期,很多国家和组织对机器翻译投入了大量的人力、物力和财力。然而在机器翻译系统的开发过程中,出现了各种各样的问题,并且这些问题的复杂度远远超出了原来的预期。为了解决这些问题,当时人们提出了各种各样的模型和解决方案。虽然*后的结果并不理想,但其为后来的各个相关分支领域的发展奠定了基础,如统计学、逻辑学、语言学等。 20世纪90年代,在计算机技术的快速发展下,基于统计的NLP技术取得了相当大的成果,开始在不同的领域大放异彩。例如,机器翻译领域引入了许多基于语料库的方法,率先取得了突破。1990年,第13届国际计算语言学大会的主题是“处理大规模真实文本的理论、方法与工具”,从而将研究的重心逐渐转向大规模真实文本,传统的基于语言规则的NLP技术开始显得力不从心。 20世纪90年代中期,有两件事促进了NLP研究的复苏与发展:一件事是计算机的运行速度和存储量得到大幅提高,这为NLP改善了物质基础,使得语言处理的商品化开发成为可能;另一件事是1994年万维网联盟成立,在互联网的带动下,产生了很多原来没有的计算模型,大数据和各种统计模型应运而生。在大数据和概率统计模型的影响下,NLP获得迅猛发展。 1.1.2.3 繁荣期(2000年至今) 进入21世纪,一大批互联网公司的涌现对NLP的发展起到了很大的推动作用,如早期的雅虎、后来的谷歌和百度。大量的基于万维网的应用和各种社交工具在不同的方面促进了NLP的发展与进步。在此过程中,数学算法与计算模型的重要性日益凸显,成为推动NLP前行的核心力量。机器学习、神经网络,尤其是深度学习技术,正以前所未有的速度消除着人类与计算机之间的沟通壁垒。 如今人工智能时代已然来临,深度学习技术凭借其强大的数据处理与模式识别能力,在NLP领域展现出了巨大的潜力,并预示着其在未来将持续发挥不可估量的作用。昔日困扰NLP的种种难题,在这一背景下正逐渐变得迎刃而解。不同语言的使用者得以跨越语言的障碍,实现无障碍沟通;而人类与计算机之间的交流,也因这些技术的进步而愈发流畅自然,几乎达到了无缝衔接的境地。 1.1.3 NLP核心研究内容 NLP的应用广泛,研究内容包括很多分支领域,从简单的文本翻译和情感分析,到复杂的对话系统和自动摘要生成。它涉及对语言的多个层面的处理,主要包括机器翻译、信息检索、信息抽取、对话系统、舆情分析、文本分类和情感分析、句法分析和语义分析、语音识别、自动校对、语言大模型、自然语言生成、知识图谱等。 1.1.3.1 机器翻译 机器翻译又称自动翻译,是利用计算机将一种自然语言转换为另一种自然语言的技术。现代机器翻译通常基于神经网络。机器翻译是计算语言学的一个分支,是人工智能的终极目标之一,具有重要的科学研究价值。 1.1.3.2 信息检索 信息检索又称情报检索,是指利用计算机系统从海量文档中找到符合用户需求的相关信息。狭义的信息检索仅指信息查询,广义的信息检索是指将信息按一定的方式进行加工、整理、组织且存储起来,并根据信息用户特定的需求将相关信息准确地查找出来的过程。 1.1.3.3 信息抽取 信息抽取是指从文本中抽取出特定的事件或事实信息,如实体识别、关系抽取和事件抽取。信息抽取与信息检索有着密切的关系,信息抽取系统通常以信息检索系统的输出作为输入,此外,信息抽取技术可以用于提高信息检索系统的性能。 1.1.3.4 对话系统 对话系统(dialog system)能以一问一答的形式,正确回答用户提出的问题。对话系统旨在创建能够与人类进行自然对话的人工智能,通过与用户进行交互,为用户提供个性化的信息服务,包括聊天机器人、虚拟助手和客户服务机器人等。 1.1.3.5 舆情分析 舆情分析是一项十分复杂、涉及问题众多(包括网络文本挖掘、观点挖掘等各方面的问题)的综合性技术。网络环境下舆情信息的主要来源有新闻评论、网络论坛、聊天室、博客、微博、聚合新闻和QQ等。舆情分析可以帮助用户分析哪些话题是目前的热点,分析传播路径及发展趋势,对于不好的舆论导向可以进行有效的监控和引导。 1.1.3.6 文本分类和情感分析 文本分类是机器对文本按照一定的分类体系自动标注类别的过程,而情感分析则是判断文本情感倾向(如正面、负面或中性)的过程。文本分类和情感分析技术具有广泛的用途,公司可以利用该技术了解用户对产品的评价,政府部门也可以利用该技术分析人们对某一事件、政策法规或社会现象的评论,实时了解百姓的态度。 1.1.3.7 句法分析和语义分析 句法分析(syntax analysis)是理解和解析句子结构的过程,包括词性标注、句法树构建等。这有助于用户理解句子的语法结构和语义。语义分析(semantic analysis)关注于理解句子和文本的含义,包括词义消歧、共指消解、语义角色标记等。 1.1.3.8 语音识别 语音识别又称自动语音识别,是指对输入计算机的语音信号进行识别并将其转换成文字表示出来的过程。例如,微信中有一个将语音转化成文字的功能,其原理就是利用NLP、语音识别等技术,在基于语言模型和声学模型的转写引擎下,将持续语流转写成文字。 1.1.3.9 自动校对 自动校对是指对文字拼写、用词、语法或文档格式等进行自动检查、校对和编排的过程。电子信息的形成可通过多种途径实现,*常用的方法是用键盘输入,但键盘输入不免会造成一些输入错误,利用计算机进行文本自动校对的研究就由此产生了。自动校对系统可应用于出版、打字等需要进行文本校对的行业。 1.1.3.10 语言大模型 语言大模型是NLP的基础,用于预测文本中单词序列的概率分布。这包括统计语言模型和基于深度学习的语言模型,如循环神经网络(recurrent neural network,RNN)、长短期记忆(long short-term memory,LSTM)网络和变换器(Transformer)。 1.1.3.11 自然语言生成 自然语言生成(natural language generation,NLG)是生成自然语言文本的过程,可以用于撰写新闻、生成报告或自动回复邮件等。 1.1.3.12 知识图谱 知识图谱(knowledge graph)又称科学知识图谱,在图书情报界称为知识域可视化或知识领域映射地图。它是显示知识发展进程与结构关系的一系列图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。 当前,NLP研究与应用已经取得较为丰硕的成果,但由于NLP也是一个不断发展的领域,新的研究方向和应用场景也在不断涌现,同时该领域也面临着许多新的挑战。实际上,对于NLP的很多问题,人们也不能以非常准确且令人满意的方式加以解决。当然,这并不是说人们不应该对某项技术提出更高的要求和有所期望,但更重要的是应该研究如何建立有效的理论模型和实现方法,这也是NLP这门学科所面临的问题和挑战。 1.2 NLP基本流程 中文NLP的基本流程和英文相比稍有一些不同,主要体现在文本预处理环节。*先,中文文本不像英文单词那样以空格隔开,因而不能像英文那样直接用简单的空格和标点符号完成分词,而是需要用分词算法完成分词。其次,中文采用的编码方式不是UTF-8,而是Unicode,因而在预处理阶段,会出现编码处理的问题。中文NLP的基本流程如图1-1所示。 图1-1 中文NLP的基本流程 1.2.1 语料获取 在进行NLP之前,我们需要获取语料。语料的获取一般有以下几种方法: (1)利用已经建好的数据集或第三方语料库,这样可以省去很多处理成本。 (2)获取网络数据。很多时候要解决的是某种特定领域的应用,仅靠开放语料库无法满足需求,这时就需要通过爬虫技术获取所需要的信息。 (3)制定数据搜集策略搜集数据。可以通过制定数据搜集策略,从业务的角度搜集所需要的数据。 (4)通过与第三方合作获取数据。通过购买的方式获取部分文本数据。 1.2.2 语料预处理 获取语料后还需要对语料进行预处理,常见的语料预处理过程如下。 (1)清洗语料。在绝大多数情况下,获取的文本数据中存在许多无用的内容,如爬取的一些HTML代码、CSS标签和不需要的标点符号等,这些都需要分步骤清洗剔除掉。少量非文本内容可以直接用Python的正则表达式删除,复杂的非文本内容可以通过Python的Beautiful Soup库去除。 (2)中文分词。常用的中文分词软件有很多,如jieba、FoolNLTK、HanLP、THULAC、NLPIR、LTP等,本书使用jieba作为分词工具。jieba是使用Python编写的第三方库,安装方法很简单,使用“pip install jieba”命令即可完成安装 。 (3)词性标注。词性标注是指给词语打上词类标签,如名词、动词、形容词等,常用的词性标注方法有基于规则的算法、基于统计的算法等。 (4)去停用词。停用词就是句子中没必要存在的词,去掉停用词后对理解整个句子的语义没有影响。中文文本中存在大量的虚词、代词或者没有特定含义的动词、名词,在文本分析的时候需要去掉这些词语。 1.2.3 文本向量化 文本数据经过语料预处理后,基本上是干净的文本了,但此时还是无法直接将文本用于任务计算,需要通过某些处
|
|