1
从高中开始接触数学和统计学以来,我就一直对数字着迷。分析学(analytics)、数据科学以及最近的文本分析技术均出现较晚,大概是在几年前,当时关于大数据(big data)和数据分析的炒作越来越猛烈,甚至有些疯狂。就个人而言,我认为其中很多都是过度炒作,但是也有一些令人兴奋的东西,因为这些技术在新工作、新发现以及解决人们先前认为不可能解决的问题方面展现了巨大的可能性。
自然语言处理(Natural Language Processing,NLP)一直深深吸引着我,因为人脑科学和人类认知能力确实令人着迷。如果尝试在机器中重塑这种传递信息、复杂思维和情绪的能力,那一定是令人惊喜的。当然,尽管我们在认知计算(cognitive computing)和人工智能(Artificial Intelligence,AI)方面的发展突飞猛进,但现在尚且无法实现这一点。仅通过图灵测试可能是不够的,机器真正能复制人的方方面面吗?
当今,对于NLP和文本分析应用,迫切需求从非结构化、原始文本数据中提取有用信息和可行见解的能力。到目前为止,我一直在努力解决各种问题,面临诸多挑战,并随着时间的推移吸取了各种各样的经验教训。本书涵盖了我在文本分析领域学到的大部分知识,仅仅从一堆文本文档中建立一个花哨的词云是不够的。
在学习文本分析方面,最大的问题或许不是信息缺乏,而是信息过多,通常这称为信息过载(information overload)。海量的资源、文档、论文、书籍和期刊包含了大量的理论资料、概念、技术和算法,它们常常使该领域的新手不知所措。解决问题的正确技术是什么?文本摘要如何真正有效?哪些才是解决多类文本分类的最佳框架?通过将数学和理论概念与现实用例的Python实现相结合,本书尝试解决这个问题,并帮助读者避免迄今为止我所遇到的一些急迫问题。
本书采用了全面的和结构化的介绍方法。首先,它在前几章中介绍了自然语言理解和Python结构的基础知识。熟悉了基础知识之后,其余章节将解决文本分析中的一些有趣问题,包括文本分类、聚类、相似性分析、文本摘要和主题模型。本书还将分析文本的结构、语义、情感和观点。对于每个主题,将介绍基本概念,并使用一些现实世界中的场景和数据来实现涵盖每个概念的技术。本书的构想是呈现一幅文本分析和NLP的蓝海,并提供必要的工具、技术和知识以处理和解决工作中遇到的问题。我希望你能觉得本书很有帮助,并祝你在文本分析的世界中旅途愉快!
计算机/数据分析
使用Python从数据中发掘有用的洞见,了解自然语言处理和文本分析相关的技术,理解和获得解决特定问题的最佳技能。
本书全方位讲解文本、语言语法、结构和语义等基本概念和高级概念,并详细阐释文本分类、聚类、主题建模和文本摘要等算法和技术。
本书遵循结构化和综合性的讲解方式,即使缺少相关经验,你也不会感到茫然无措。从自然语言和Python的基础知识开始,进而介绍先进的分析理念和机器学习概念。你将了解每种技术和算法的概况,理解它们如何使用,同时从微观视角理解相关数学概念并应用它们来解决现实问题。
本书特色:
全面介绍自然语言处理(NLP)和文本分析的主要概念与技术。
包含丰富的真实案例实现技术,例如,构建分类新闻文章的文本分类系统,使用主题建模和文本摘要分析app或游戏评论,进行热门电影概要的聚类分析和电影评论的情感分析。
介绍基于Python及一些流行NLP和文本分析开源库(如自然语言工具包(nltk)、gensim、scikit-learn、spaCy和Pattern)的实现。
自然语言处理和文本分析是当今人工智能研究和应用的重要方向,因其在人机交互方面的广泛应用和前景,吸引了学术界和产业界投入巨大的力量。目前,已经有一些产品陆续面世,在机器翻译、问答系统、语音助理、情感分析等方面取得了非常不错的进展,也给人们的生活带来了便利。
本书作者Sarkar是Intel公司的数据科学家,研究领域涉及数据科学与软件工程,有着丰富的文本分析研究和工程方面的经验,出版过多本R语言和机器学习方面的书籍。作者在GitHub上(https://github.com/dipanjanS/textanalyticswithpython)开源了本书相关的程序代码和数据集,感兴趣的读者可以下载研究。
本书首先介绍了与文本分析相关的自然语言基本概念以及Python语言的特点、特性和常用功能。然后,结合示例代码详细阐述了文本理解与处理、文本分类、文本摘要、文本相似性与聚类、语义与情感分析等内容,具有很强的实用性,内容覆盖了文本分析的重要方面,为相关应用的开发和研究提供了很好的参考借鉴。
本书是关于自然语言处理的实践教程,通过学习本书,读者可以全面地掌握文本分析的基础技术和机器学习的一些经典方法,包括SVM、贝叶斯分类器、kmeans聚类、层次聚类等,为进一步的学习和研究奠定基础。感兴趣的读者可以继续研究和探索深度学习技术在文本分析中的应用,这是人工智能应用中发展非常迅速的领域,相信阅读本书打下的基础会对你大有帮助。
最后,感谢本书的作者和机械工业出版社华章分社的编辑,是他们的鼓励和支持使得本书能与读者见面。感谢我们家人的理解。尽管我们努力准确地表达作者的思想和方法,但仍难免有不当之处。译文中的错误,敬请指出,我们将非常感激,请将相关意见发往yanlongchuan@iieaccn。
闫龙川 高德荃 李君婷
2017年12月
译者序
前言
第1章自然语言基础
11自然语言
111什么是自然语言
112语言哲学
113语言习得和用法
12语言学
13语言句法和结构
131词
132短语
133从句
134语法
135语序类型学
14语言语义
141词汇语义关系
142语义网络和模型
143语义表示
15文本语料库
151文本语料库标注及使用
152热门的语料库
153访问文本语料库
16自然语言处理
161机器翻译
162语音识别系统
163问答系统
164语境识别与消解
165文本摘要
166文本分类
17文本分析
18小结
第2章Python语言回顾
21了解Python
211Python之禅
212应用:何时使用Python
213缺点:何时不用Python
214Python实现和版本
22安装和设置
221用哪个Python版本
222用哪个操作系统
223集成开发环境
224环境设置
225虚拟环境
23Python句法和结构
24数据结构和类型
241数值类型
242字符串
243列表
244集合
245字典
246元组
247文件
248杂项
25控制代码流
251条件结构
252循环结构
253处理异常
26函数编程
261函数
262递归函数
263匿名函数
264迭代器
265分析器
266生成器
267itertools和functools模块
27类
28使用文本
281字符串文字
282字符串操作和方法
29文本分析框架
210小结
第3章处理和理解文本
31文本切分
311句子切分
312词语切分
32文本规范化
321文本清洗
322文本切分
323删除特殊字符
324扩展缩写词
325大小写转换
326删除停用词
327词语校正
328词干提取
329词形还原
33理解文本句法和结构
331安装必要的依赖项
332机器学习重要概念
333词性标注
334浅层分析
335基于依存关系的分析
336基于成分结构的分析
34小结
第4章文本分类
41什么是文本分类
42自动文本分类
43文本分类的蓝图
44文本规范化处理
45特征提取
451词袋模型
452TFIDF模型
453高级词向量模型
46分类算法
461多项式朴素贝叶斯
462支持向量机
47评估分类模型
48建立一个多类分类系统
49应用
410小结
第5章文本摘要
51文本摘要和信息提取
52重要概念
521文档
522文本规范化
523特征提取
524特征矩阵
525奇异值分解
53文本规范化
54特征提取
55关键短语提取
551搭配
552基于权重标签的短语提取
56主题建模
561隐含语义索引
562隐含Dirichlet分布
563非负矩阵分解
564从产品评论中提取主题
57自动文档摘要
571隐含语义分析
572TextRank算法
573生成产品说明摘要
58小结
第6章文本相似度和聚类
61重要概念
611信息检索
612特征工程
613相似度测量
614无监督的机器学习算法
62文本规范化
63特征提取
64文本相似度
65词项相似度分析
651汉明距离
652曼哈顿距离
653欧几里得距离
654莱文斯坦编辑距离
655余弦距离和相似度
66文档相似度分析
661余弦相似度
662海灵格-巴塔恰亚距离
663Okapi BM25排名
67文档聚类
68最佳影片聚类分析
681kmeans聚类
682近邻传播聚类
683沃德凝聚层次聚类
69小结
第7章语义与情感分析
71语义分析
72探索WordNet
721理解同义词集
722分析词汇的语义关系
73词义消歧
74命名实体识别
75分析语义表征
751命题逻辑
752一阶逻辑
76情感分析
77IMDb电影评论的情感分析
771安装依赖程序包
772准备数据集
773有监督的机器学习技术
774无监督的词典技术
775模型性能比较
78小结