From 336305d43d63e5e81a2b1d9ce02f63b4f66a2742 Mon Sep 17 00:00:00 2001 From: wizardforcel <562826179@qq.com> Date: Tue, 15 Dec 2020 22:10:00 +0800 Subject: [PATCH] 2020-12-15 22:10:00 --- new/ai-py/00.md | 2 +- new/ai-py/12.md | 20 +++++++++----------- new/ai-py/13.md | 20 +++++++++----------- new/ai-py/14.md | 6 ++---- new/ai-py/15.md | 36 +++++++++++++++++------------------- new/ai-py/16.md | 8 +++----- new/ai-py/17.md | 22 ++++++++++------------ new/ai-py/18.md | 6 ++---- new/ai-py/19.md | 18 ++++++++---------- new/ai-py/20.md | 6 ++---- new/ai-py/21.md | 4 +--- new/ai-py/22.md | 6 ++---- new/ai-py/23.md | 6 +++--- 13 files changed, 69 insertions(+), 91 deletions(-) diff --git a/new/ai-py/00.md b/new/ai-py/00.md index ca892a26..bf182fcd 100644 --- a/new/ai-py/00.md +++ b/new/ai-py/00.md @@ -90,7 +90,7 @@ 第 17 章,“序列数据和时间序列分析” -我们将讨论概率推理的概念。 我们将学习如何应用该概念为顺序数据建立模型。 我们将学习时间序列数据的各种特征。 我们将讨论隐马尔可夫模型以及如何使用它们分析顺序数据。 然后,我们将使用此技术来分析股票市场数据。 +我们将讨论概率推理的概念。 我们将学习如何应用该概念为序列数据建立模型。 我们将学习时间序列数据的各种特征。 我们将讨论隐马尔可夫模型以及如何使用它们分析序列数据。 然后,我们将使用此技术来分析股票市场数据。 第 18 章,“图像识别” diff --git a/new/ai-py/12.md b/new/ai-py/12.md index 506e542b..a3d26ffc 100644 --- a/new/ai-py/12.md +++ b/new/ai-py/12.md @@ -1,6 +1,4 @@ -# 12 - -# 云上的人工智能 +# 12 云上的人工智能 在本章中,我们将学习有关云和云上的人工智能工作负载的信息。 我们将讨论将 AI 项目迁移到云的好处和风险。 我们还将了解主要云提供商所提供的产品。 我们将了解他们提供的服务和功能,并希望了解为什么这些提供商是市场领导者。 @@ -218,7 +216,7 @@ SageMaker 部署支持一次性和批量预测。 批量预测对可以存储在 * **Web 界面**:如果您对 Jupyter 笔记本熟悉,,由于与 SageMaker 进行交互的 Web 界面是 Jupyter 笔记本,您将对 Amazon SageMaker 感到宾至如归。 * **AWS CLI**:AWS 命令行界面(CLI)。 -## Alexa,Lex 和 Polly –会话绅士 +## Alexa,Lex 和 Polly – 会话绅士 在前面的章节中,我们讨论了 Alexa 及其在家庭中越来越普遍的存在。 现在,我们将深入研究为 Alexa 提供支持的技术,并允许您创建自己的对话机器人。 @@ -226,7 +224,7 @@ Amazon Lex 是用于建立对话代理的服务。 Amazon Lex 和其他聊天机 稍后,我们将整整一章专门介绍如何创建聊天机器人,因此我们将在本节中简短介绍。 -## Amazon Comprehend –自然语言处理 +## Amazon Comprehend – 自然语言处理 Amazon Comprehend 是 AWS 提供的**自然语言处理**(**NLP**)服务。 它使用机器学习来分析内容,执行实体识别以及发现隐式和显式关系。 公司开始意识到他们每天产生的大量数据中都有有价值的信息。 可以从客户的电子邮件,支持通知单,产品评论,呼叫中心对话和社交媒体互动中确定有价值的见解。 直到最近,尝试获得这些见解都在成本上处于禁止状态,但是 Amazon Comprehend 之类的工具使对大量数据进行分析具有成本效益。 @@ -251,7 +249,7 @@ Amazon Comprehend 是 AWS 提供的**自然语言处理**(**NLP**)服务。 **行业特定的服务**:Amazon Comprehend Medical 于 2018 年在 AWS re:Invent 上发布。它专为医疗行业构建,可以识别行业特定的术语。 Comprehend 还提供了特定的医学命名实体和关系提取 API。 AWS 不会存储或使用 Amazon Comprehend Medical 的任何文本输入来进行未来的机器学习训练。 -## Amazon Rekognition –图片和视频 +## Amazon Rekognition – 图片和视频 不,不是错字。 亚马逊用 k 而不是 c 命名其识别服务。 Amazon Rekognition 可以执行图像和视频分析,并使用户可以将此功能添加到其应用程序中。 Amazon Rekognition 已经接受了数百万张带有标签的图像的预训练。 因此,该服务可以快速识别: @@ -361,7 +359,7 @@ Amazon Translate 使用机器学习和连续学习模型来改善其翻译的性 在出现 Amazon SageMaker 之前,就有了 Amazon Machine Learning 或 Amazon ML。 Amazon ML 是一项更简单的服务,在某些情况下仍可以是功能强大的工具。 Amazon ML 最初于 2015 年 4 月在旧金山的 AWS 峰会上发布。 Amazon ML 使所有技能水平的开发人员都可以轻松使用机器学习技术。 Amazon ML 提供了可视化工具和向导,可以指导用户完成创建机器学习模型的过程,而无需学习复杂的 ML 算法和技术。 一旦模型准备就绪,Amazon ML 即可轻松获得预测。 应用程序可以使用简单的 API,而不必在完全托管的服务中实现自定义预测代码。 -## Amazon Transcribe –转录 +## Amazon Transcribe – 转录 在 2017 年 re:Invent 会议上发布的另一项服务是 Amazon Transcribe。 您可以将 Amazon Transcribe 当作您的私人秘书,在讲话时做笔记。 @@ -369,7 +367,7 @@ Amazon Transcribe 是**自动语音识别**(**ASR**)服务,允许开发人 Amazon Transcribe 可用于转录客户服务呼叫并生成音频和视频内容的字幕。 该服务支持常见的音频格式,例如 WAV 和 MP3。 它可以为每个单词生成一个时间戳。 这有助于使用生成的文本快速找到原始音频源。 像其他 Amazon 机器学习服务一样,Amazon Transcribe 不断从文本中学习其正在处理以不断改进服务。 -## Amazon Textract –文档分析 +## Amazon Textract – 文档分析 机器学习中最困难的问题之一是识别笔迹。 每个人的笔迹都不一样,我们中有些人的笔迹很糟糕,有时甚至在写完几分钟后我们还是听不懂。 不可以,Amazon 尚未掌握解密鸡抓痕的方法,但是 Amazon Textract 是一项服务,可以将包含文本的图像转换为等效的文本。 如果我们能够扫描那些文档,将它们转换为文本,对其进行索引,并使用户能够搜索这些文档的内容,那么有很多扫描和传真的文档都放在抽屉里,可以为所有者带来很多价值。 @@ -379,7 +377,7 @@ Amazon Textract 使用户可以从文档,表单和表格中提取文本。 Ama 在介绍了 AWS 之后,让我们看一下 Microsoft 在云服务领域提供的功能:Microsoft Azure。 -## Microsoft Azure 机器学习 Studio +## Microsoft Azure 机器学习工作室 Microsoft Azure Machine Learning Studio 是 Microsoft 对 Amazon SageMaker 的回答。 Machine Learning Studio 是一个协作工具,具有简单的拖放界面,允许用户构建,测试和部署机器学习模型。 Machine Learning Studio 支持模型发布,该模型发布可被其他应用程序使用,并可轻松与 BI 工具(例如 Excel)集成。 @@ -494,7 +492,7 @@ Learning Studio 不需要任何编程。 通过直观地连接数据集和模块 看了 Microsoft Azure 提供的服务之后,让我们继续讨论另一个替代的云平台:GCP。 首先,我们将讨论 GCP 的 AI Hub 服务。 -## AI 集线器 +## AI Hub AI Hub 是 Google Cloud Platform 中可用的服务之一。 AI Hub 是即插即用 AI 组件的完全托管库,可用于创建端到端机器学习管道。 AI Hub 提供了多种现成的机器学习算法。 AI Hub 提供企业级协作功能,使公司可以私下托管其机器学习工作流程并促进重用和共享。 您还可以轻松地将模型部署到 Google Cloud 以及其他环境和云提供商的生产环境中。 AI Hub 于 2018 年发布,目前尚处于早期阶段。 考虑到 Google 对 AI 研究的重视,我们希望 AI Hub 能够迅速成熟并继续以更快的速度提供更多功能。 @@ -510,7 +508,7 @@ AI Hub 是 Google Cloud Platform 中可用的服务之一。 AI Hub 是即插即 **部署**:AI Hub 可以针对特定业务需求修改和定制算法和管道。 它还提供了用于部署经过训练的模型的直观机制。 这些模型可以部署在 Google Cloud 或其他环境和云提供商中。 -## Google Cloud AI 构建基块 +## Google Cloud AI 组成部分 除了 AI Hub 的(可以与 Amazon SageMaker 和 Azure 机器学习 Studio 相比)之外,Google Cloud 在完全托管服务方面还提供了与 AWS 和 Azure 类似的产品,这些服务简化了机器学习在文本中的应用, 语言,图像和视频。 Google 在 *Google Cloud AI 构件*框架下组织了许多此类托管服务。 对于许多此类托管服务,有两种与之交互的方式– AutoML 和 API。 AutoML 用于自定义模型,API 用于预训练模型。 AutoML 和 API 可以单独使用,也可以一起使用。 diff --git a/new/ai-py/13.md b/new/ai-py/13.md index 6cfe79db..535ff297 100644 --- a/new/ai-py/13.md +++ b/new/ai-py/13.md @@ -1,6 +1,4 @@ -# 13 - -# 使用人工智能构建游戏 +# 13 使用人工智能构建游戏 在本章中,我们将学习如何使用称为组合搜索的人工智能技术来构建游戏。 在其最基本的形式中,可以将其视为*暴力方法*。 我们探索每种可能的解决方案。 在本章的后面,我们将变得更加聪明,找到一种使搜索短路的方法,而不必尝试所有可能的方法。 我们将学习如何使用搜索算法有效地提出赢得一系列游戏的策略。 然后,我们将使用这些算法为不同的游戏构建智能机器人。 @@ -12,7 +10,7 @@ * Alpha-Beta 修剪 * Negamax 算法 * 构建一个机器人来玩最后的硬币站立 -* 构建一个玩井字游戏的机器人 +* 构建一个玩井字棋的机器人 * 构建两个机器人来相互玩四连环 * 构建两个机器人来对抗 Hexapawn @@ -22,7 +20,7 @@ 没有对手的游戏比拥有对手的游戏更容易优化。 具有多个玩家的游戏,游戏玩法变得更加复杂。 让我们考虑一个两人游戏。 玩家为赢得比赛而进行的每一个举动,对方玩家都会采取行动以阻止该玩家获胜。 因此,当搜索算法从当前状态中找到最佳移动方式集时,它就不能不考虑对方玩家的反向移动而仅仅进行移动。 这意味着每次移动后都需要不断重新评估搜索算法。 -让我们讨论一下计算机如何感知任何给定的游戏。 我们可以将游戏视为搜索树。 该树中的每个节点代表一个未来状态。 例如,如果您正在玩**井字棋**(圆圈和叉),则可以构造一棵树来表示所有可能的移动。 我们从树的根开始,这是游戏的起点。 该节点将具有几个代表各种可能动作的子代。 反过来,在对手进行更多移动之后,这些孩子将拥有更多代表游戏状态的孩子。 树的终端节点代表游戏的最终动作。 游戏将以平局结束,或者其中一名玩家将赢得比赛。搜索算法搜索该树以在游戏的每个步骤做出决策。 现在,我们将学习各种搜索技术,包括如何进行详尽的组合搜索,以帮助我们在井字游戏中永不丢失,并解决许多其他问题。 +让我们讨论一下计算机如何感知任何给定的游戏。 我们可以将游戏视为搜索树。 该树中的每个节点代表一个未来状态。 例如,如果您正在玩**井字棋**(圆圈和叉),则可以构造一棵树来表示所有可能的移动。 我们从树的根开始,这是游戏的起点。 该节点将具有几个代表各种可能动作的子代。 反过来,在对手进行更多移动之后,这些孩子将拥有更多代表游戏状态的孩子。 树的终端节点代表游戏的最终动作。 游戏将以平局结束,或者其中一名玩家将赢得比赛。搜索算法搜索该树以在游戏的每个步骤做出决策。 现在,我们将学习各种搜索技术,包括如何进行详尽的组合搜索,以帮助我们在井字棋中永不丢失,并解决许多其他问题。 # 组合搜索 @@ -68,7 +66,7 @@ $ pip3 install easyAI 您可以遍历源代码以使自己更加熟悉。 -# 建立一个玩最后代币站立的机器人 +# 建立一个玩 Last Coin Standing 的机器人 在此游戏中,有一堆硬币,每个玩家轮流从该堆中取出许多硬币。 可从堆中取出的硬币数量有上限和下限。 游戏的目的是避免拿最后一枚硬币。 该配方是`easyAI`库中给出的“骨头游戏”配方的一种变体。 让我们看看如何构建一个可以与用户对战的游戏。 @@ -212,9 +210,9 @@ if __name__ == "__main__": 让我们来看看为另一个游戏[tf-tac-toe]构建机器人。 -# 建立一个玩井字游戏的机器人 +# 建立一个玩井字棋的机器人 -井字游戏(Nights and Crosss)是,也许是世界上最著名的游戏之一。 让我们看看如何构建一个可以与用户对战的游戏。 这是`easyAI`库中给出的井字游戏食谱的一个较小变体。 +井字棋(Nights and Crosss)是,也许是世界上最著名的游戏之一。 让我们看看如何构建一个可以与用户对战的游戏。 这是`easyAI`库中给出的井字棋食谱的一个较小变体。 创建一个新的 Python 文件并导入以下软件包: @@ -318,13 +316,13 @@ if __name__ == "__main__": ![](img/B15441_13_03.png) -图 3:井字游戏初始输出 +图 3:井字棋初始输出 如果向下滚动,将看到以下输出: ![](img/B15441_13_04.png) -图 4:井字游戏最终输出 +图 4:井字棋最终输出 如我们所见,游戏以平局结束。 我们已经研究了可以与用户对抗的机器人。 现在让我们建立两个机器人来对抗。 这次在 Connect Four™ 中。 @@ -675,6 +673,6 @@ if __name__=='__main__': # 总结 -在本章中,我们讨论了如何使用一种称为组合搜索的特殊类型的人工智能技术来构建游戏。 我们学习了如何使用这些类型的搜索算法来有效地提出赢得比赛的策略。 这些算法可用于为更复杂的游戏构建游戏机,并解决各种问题。 我们讨论了组合搜索以及如何使用组合搜索来加快搜索过程。 我们了解了 Minimax 和 Alpha-Beta 修剪。 我们了解了 Negamax 算法是如何在实践中使用的。 然后,我们使用这些算法来构建用于玩“最后的硬币站立”和“井字游戏”的机器人。 +在本章中,我们讨论了如何使用一种称为组合搜索的特殊类型的人工智能技术来构建游戏。 我们学习了如何使用这些类型的搜索算法来有效地提出赢得比赛的策略。 这些算法可用于为更复杂的游戏构建游戏机,并解决各种问题。 我们讨论了组合搜索以及如何使用组合搜索来加快搜索过程。 我们了解了 Minimax 和 Alpha-Beta 修剪。 我们了解了 Negamax 算法是如何在实践中使用的。 然后,我们使用这些算法来构建用于玩“最后的硬币站立”和“井字棋”的机器人。 我们学习了如何在 Connect Four 和 Hexapawn 中构建两个相互竞争的机器人。 在下一章中,我们将学习语音识别并构建一个自动识别语音的系统。 \ No newline at end of file diff --git a/new/ai-py/14.md b/new/ai-py/14.md index 2de43be1..4658c0b3 100644 --- a/new/ai-py/14.md +++ b/new/ai-py/14.md @@ -1,6 +1,4 @@ -# 14 - -# 构建语音识别器 +# 14 构建语音识别器 在本章中,我们将学习语音识别。 我们将讨论如何处理语音信号,并学习如何可视化各种音频信号。 通过利用各种技术来处理语音信号,我们将学习如何构建语音识别系统。 @@ -560,7 +558,7 @@ plt.show() 现在已经学习了分析语音信号的所有技术,让我们继续学习如何识别语音。 语音识别系统将音频信号作为输入并识别正在说的单词。 **隐马尔可夫模型**(**HMM**)将用于此任务。 -正如我们在上一章中讨论的那样,HMM 非常适合分析顺序数据。 音频信号是时间序列信号,是顺序数据的体现。 假定输出是由系统经过一系列隐藏状态生成的。 我们的目标是找出这些隐藏状态是什么,以便我们可以识别信号中的单词。 如果您有兴趣深入研究,[请查看以下链接](https://web.stanford.edu/~jurafsky/slp3/A.pdf)。 +正如我们在上一章中讨论的那样,HMM 非常适合分析序列数据。 音频信号是时间序列信号,是序列数据的体现。 假定输出是由系统经过一系列隐藏状态生成的。 我们的目标是找出这些隐藏状态是什么,以便我们可以识别信号中的单词。 如果您有兴趣深入研究,[请查看以下链接](https://web.stanford.edu/~jurafsky/slp3/A.pdf)。 我们将使用名为`hmmlearn`的程序包来构建我们的语音识别系统。 [您可以在此处了解更多信息](http://hmmlearn.readthedocs.org/en/latest)。 diff --git a/new/ai-py/15.md b/new/ai-py/15.md index de850b00..f9b11579 100644 --- a/new/ai-py/15.md +++ b/new/ai-py/15.md @@ -1,6 +1,4 @@ -# 15 - -# 自然语言处理 +# 15 自然语言处理 在本章中,我们将学习自然语言处理(NLP)的令人兴奋的主题。 正如我们在前几章中所讨论的,拥有能够理解人类语言的计算机是真正使计算机变得更加有用的突破之一。 NLP 为开始了解如何实现提供了基础。 @@ -19,7 +17,7 @@ * 建立情感分析器 * 使用潜在狄利克雷分布的主题建模 -# 软件包的介绍和安装 +# 包的介绍和安装 **自然语言处理**(**NLP**)已成为现代系统的重要组成部分。 它广泛用于搜索引擎,会话界面,文档处理器等。 机器可以很好地处理结构化数据,但是在处理自由格式的文本时,它们会遇到困难。 NLP 的目标是开发使计算机能够理解自由格式文本并帮助他们理解语言的算法。 @@ -62,9 +60,9 @@ $ pip3 install pattern 您可以在[这个页面](https://radimrehurek.com/gensim)上找到有关 Gensim 的更多信息。 现在,您已经安装了 NLTK 和`gensim`,让我们继续进行讨论。 -# 标记文本数据 +# 对文本数据分词 -当我们处理文本时,我们需要将其分解成较小的部分进行分析。 为此,可以应用标记化。 标记化是将文本分为一组片段的过程,例如单词或句子。 这些片段称为令牌。 根据我们要执行的操作,我们可以定义自己的方法以将文本分为许多标记。 让我们看一下如何使用 NLTK 标记输入文本。 +当我们处理文本时,我们需要将其分解成较小的部分进行分析。 为此,可以应用分词。 分词是将文本分为一组片段的过程,例如单词或句子。 这些片段称为令牌。 根据我们要执行的操作,我们可以定义自己的方法以将文本分为许多标记。 让我们看一下如何使用 NLTK 对输入文本分词。 创建一个新的 Python 文件并导入以下软件包: @@ -73,7 +71,7 @@ from nltk.tokenize import sent_tokenize, \ word_tokenize, WordPunctTokenizer ``` -定义将用于标记化的输入文本: +定义将用于分词的输入文本: ```py # Define input text @@ -98,7 +96,7 @@ print("\nWord tokenizer:") print(word_tokenize(input_text)) ``` -使用`WordPunct`标记程序将输入文本分为单词标记: +使用`WordPunct`分词器将输入文本分为单词标记: ```py # WordPunct tokenizer @@ -112,13 +110,13 @@ print(WordPunctTokenizer().tokenize(input_text)) 图 1:分词器输出 -句子标记程序将输入文本分为句子。 当涉及标点时,两个单词的分词器的行为会有所不同。 例如,单词`It's`由点词标记器划分的方式与常规分词器的划分方式不同。 +句子分词程序将输入文本分为句子。 当涉及标点时,两个单词的分词器的行为会有所不同。 例如,单词`It's`由标点分词器划分的方式与常规分词器的划分方式不同。 -# 使用词干将单词转换为其基本形式 +# 使用词干提取将单词转换为其基本形式 使用文本意味着需要进行很多变化。 我们必须处理同一个单词的不同形式,并使计算机理解这些不同的单词具有相同的基本形式。 例如,单词`sing`可以以多种形式出现,例如`singer, singing, song, sung`等。 这组单词具有相似的含义。 此过程称为词干提取。 词干是产生词根/基词形态变异的一种方式。 人类可以轻松地识别这些基本形式并得出上下文。 -分析文本时,提取这些基本形式很有用。 这样做可以提取从输入文本中导出的有用统计信息。 阻止是实现此目的的一种方法。 词干分析器的目标是将单词从其不同形式简化为通用的基本形式。 基本上,这是一种启发式过程,可切断单词的结尾以提取其基本形式。 让我们看看如何使用 NLTK 做到这一点。 +分析文本时,提取这些基本形式很有用。 这样做可以提取从输入文本中导出的有用统计信息。 词干提取是实现此目的的一种方法。 词干提取器的目标是将单词从其不同形式简化为通用的基本形式。 基本上,这是一种启发式过程,可切断单词的结尾以提取其基本形式。 让我们看看如何使用 NLTK 做到这一点。 创建一个新的 Python 文件并导入以下软件包: @@ -135,7 +133,7 @@ input_words = ['writing', 'calves', 'be', 'branded', 'horse', 'randomize', 'possibly', 'provision', 'hospital', 'kept', 'scratchy', 'code'] ``` -为**搬运工**, **Lancaster** 和 **Snowball** 茎干创建对象: +为`Porter`,`Lancaster`和`Snowball`词干提取器创建对象: ```py # Create various stemmer objects @@ -154,7 +152,7 @@ print('\n', formatted_text.format('INPUT WORD', *stemmer_names), '\n', '='*68) ``` -遍历单词,并使用以下三个词干器对其进行词干处理: +遍历单词,并使用以下三个词干器对其进行词干提取: ```py # Stem each word and display the output @@ -172,17 +170,17 @@ for word in input_words: 让我们讨论一下这里使用的三种词干算法。 他们基本上都试图实现相同的目标。 它们之间的区别是用来达到基本形式的严格程度。 -Porter 词干分析器最不严格,而 Lancaster 最严格。 如果仔细观察输出,您会发现差异。 对于`possibly`或`provision`之类的词,词干的行为有所不同。 从 Lancaster 词干提取器获得的词干输出有些混乱,因为它大大减少了单词数。 同时,该算法速度很快。 有一个很好的经验法则是使用 Snowball 提取器,因为它是速度和严格性之间的良好权衡。 +`Porter`词干分析器最不严格,而`Lancaster`最严格。 如果仔细观察输出,您会发现差异。 对于`possibly`或`provision`之类的词,词干的行为有所不同。 从`Lancaster`词干提取器获得的词干输出有些混乱,因为它大大减少了单词数。 同时,该算法速度很快。 有一个很好的经验法则是使用`Snowball`提取器,因为它是速度和严格性之间的良好权衡。 # 使用词形还原将单词转换为其基本形式 -**词形还原**是将单词还原为基本形式的另一种方法。 在上一节中,我们看到了从这些词干提取的一些基本形式没有意义。 词形还原是将单词的不同变形形式组合在一起的过程,因此可以将它们作为单个项目进行分析。 词形还原就像发芽一样,但是却为这些词带来了语境。 因此,它将具有相似含义的单词链接到一个单词。 例如,所有三个词干都说`calves`的基本形式是`calv`,这不是一个真实的词。 词形还原采用一种更加结构化的方法来解决此问题。 以下是一些词形还原的示例: +**词形还原**是将单词还原为基本形式的另一种方法。 在上一节中,我们看到了从这些词干提取的一些基本形式没有意义。 词形还原是将单词的不同变形形式组合在一起的过程,因此可以将它们作为单个项目进行分析。 词形还原就像词干提取一样,但是却为这些词带来了语境。 因此,它将具有相似含义的单词链接到一个单词。 例如,所有三个词干都说`calves`的基本形式是`calv`,这不是一个真实的词。 词形还原采用一种更加结构化的方法来解决此问题。 以下是一些词形还原的示例: * `rocks : rock` * `corpora : corpus` * `worse : bad` -词形还原过程使用单词的词法和词法分析。 它通过删除诸如`ing`或`ed`之类的词尾变化来获得基本形式。 任何单词的基本形式都称为引理。 如果对`calves`一词进行去词化,则应该得到`calf`作为输出。 需要注意的一件事是,输出取决于单词是动词还是名词。 让我们看看如何使用 NLTK 做到这一点。 +词形还原过程使用单词的词法和词法分析。 它通过删除诸如`ing`或`ed`之类的词尾变化来获得基本形式。 任何单词的基本形式都称为词形。 如果对`calves`一词进行词形还原,则应该得到`calf`作为输出。 需要注意的一件事是,输出取决于单词是动词还是名词。 让我们看看如何使用 NLTK 做到这一点。 创建一个新的 Python 文件并导入以下软件包: @@ -228,9 +226,9 @@ for word in input_words: ![](img/B15441_15_03.png) -图 3:脱胶机输出 +图 3:词形还原器输出 -我们可以看到,名词词形还原器的作用与动词词形还原器的作用不同,例如涉及`writing`或`calves`的单词。 如果将这些输出与词干输出进行比较,则也会看到差异。 词形还原器的输出都是有意义的,而词干提取器的输出可能是有意义的也可能是没意义的。 +我们可以看到,名词词形还原器的作用与动词词形还原器的作用不同,例如涉及`writing`或`calves`的单词。 如果将这些输出与词干提取输出进行比较,则也会看到差异。 词形还原器的输出都是有意义的,而词干提取器的输出可能是有意义的也可能是没意义的。 # 将文本数据分为多个块 @@ -960,4 +958,4 @@ if __name__=='__main__': 我们讨论了*词袋*模型,并为输入文本建立了文档术语矩阵。 然后,我们学习了如何使用机器学习对文本进行分类。 我们使用启发式方法构造了性别标识符。 我们还使用机器学习来分析电影评论的情感。 最后,我们讨论了主题建模并实现了一个用于识别给定文档中主题的系统。 -在下一章中,我们将学习如何使用隐马尔可夫模型对顺序数据进行建模,然后使用它们来分析股市数据。 \ No newline at end of file +在下一章中,我们将学习如何使用隐马尔可夫模型对序列数据进行建模,然后使用它们来分析股市数据。 \ No newline at end of file diff --git a/new/ai-py/16.md b/new/ai-py/16.md index 807cd667..de093735 100644 --- a/new/ai-py/16.md +++ b/new/ai-py/16.md @@ -1,6 +1,4 @@ -# 16 - -# 聊天机器人 +# 16 聊天机器人 在本章中,我们将学习聊天机器人。 我们将了解它们是什么以及如何使用它们。 您还将学习如何创建自己的聊天机器人。 我们将涵盖以下主题: @@ -442,7 +440,7 @@ Webhook call failed. Error: 405 Method Not Allowed. 动作和参数是可选值。 即使未传递操作和参数,Webhook 仍将运行。 为了区分没有动作的意图,可以在请求 JSON 中检查意图名称。 -## 通过网络挂钩建立实现响应 +## 通过 Webhook 建立响应 Webhook 响应应该使用有效的 JSON 响应构造。 这样,DialogFlow 将能够在前端正确显示消息。 @@ -518,4 +516,4 @@ action = req.get('queryResult').get('action') 最后,我们更深入地研究了由 Google 开发的名为 DialogFlow 的聊天机器人平台。 通过执行基本练习,然后学习如何使用 Webhooks 与其他后端服务集成,我们熟悉了该平台。 我们一步一步地了解了如何测试聊天机器人的功能并确保其设置正确。 -在下一章中,我们将跳到另一个令人兴奋的主题,并学习如何训练顺序数据并将其用于时间序列分析。 \ No newline at end of file +在下一章中,我们将跳到另一个令人兴奋的主题,并学习如何训练序列数据并将其用于时间序列分析。 \ No newline at end of file diff --git a/new/ai-py/17.md b/new/ai-py/17.md index 4f308bc5..30a7148a 100644 --- a/new/ai-py/17.md +++ b/new/ai-py/17.md @@ -1,12 +1,10 @@ -# 17 - -# 顺序数据和时间序列分析 +# 17 序列数据和时间序列分析 在本章中,我们将学习如何构建序列学习模型。 为此,我们将涵盖许多主题,以使我们更好地掌握如何构建和使用这些模型。 我们将学习如何处理 Pandas 中的时间序列数据。 我们将了解如何分割时间序列数据并对其执行各种操作,然后我们将讨论如何滚动地从时间序列数据中提取各种统计信息。 接下来,我们将学习隐马尔可夫模型(HMM),然后实现一个用于构建这些模型的系统。 我们将了解如何使用条件随机场来分析字母序列,最后,我们将讨论如何使用到目前为止学到的技术来分析股市数据。 在本章的最后,您将学到: -* 了解顺序数据 +* 了解序列数据 * 使用 Pandas 处理时间序列数据 * 切片时间序列数据 * 操作时间序列数据 @@ -15,19 +13,19 @@ * 使用条件随机场识别字母序列 * 股市分析 -让我们开始研究并理解顺序数据。 +让我们开始研究并理解序列数据。 -# 了解顺序数据 +# 了解序列数据 -在机器学习的世界中,我们遇到了许多类型的数据,例如图像,文本,视频和传感器读数。 不同类型的数据需要不同类型的建模技术。 顺序数据是指顺序很重要的数据。 顺序数据可以在许多“野外”情况下找到。 这里有些例子: +在机器学习的世界中,我们遇到了许多类型的数据,例如图像,文本,视频和传感器读数。 不同类型的数据需要不同类型的建模技术。 序列数据是指顺序很重要的数据。 序列数据可以在许多“野外”情况下找到。 这里有些例子: -**基因组序列数据**:这个也许是我们拥有的顺序数据的最好和最重要的例子。 基因出现的顺序是创造和维持生命的最基本水平。 基因组学序列包含使我们存活的信息。 +**基因组序列数据**:这个也许是我们拥有的序列数据的最好和最重要的例子。 基因出现的顺序是创造和维持生命的最基本水平。 基因组学序列包含使我们存活的信息。 **人类语言**:沟通时顺序非常重要。 如果我们开始更改本书中单词的顺序,不久之后,本书将变得完全不可理解! **计算机语言**:在大多数计算机语言中,正确的输入顺序对于任何功能正常运行至关重要。 例如,在许多计算机语言中,符号“ > =“的意思是“大于或等于”,而在其他语言中,“ = >”的意思可能是赋值或产生语法错误。 -时间序列数据是顺序数据的子分类。 时间序列数据的一些示例如下: +时间序列数据是序列数据的子分类。 时间序列数据的一些示例如下: **股票市场价格**:时间序列数据的圣杯是股票价格。 许多数据科学家将在其职业生涯中的某个时刻尝试使用其数据科学技能来尝试预测股市。 他们中的许多人将意识到这是一项艰巨的努力,并转向其他主题和问题。 股票预测困难的几个原因是: @@ -43,7 +41,7 @@ 时间序列数据中某些参数的测量以固定的时间间隔进行。 这些测量被安排并存储在时间线上,并且它们的出现顺序至关重要。 此顺序用于从数据中提取模式。 -在本章中,我们将看到如何构建通常描述时间序列数据和顺序数据的模型。 这些模型将用于了解时间序列变量的行为。 然后,我们将能够使用这些模型来预测和推断该模型以前未看到的值。 +在本章中,我们将看到如何构建通常描述时间序列数据和序列数据的模型。 这些模型将用于了解时间序列变量的行为。 然后,我们将能够使用这些模型来预测和推断该模型以前未看到的值。 时间序列数据分析被广泛应用于金融,传感器数据分析,语音识别,经济学,天气预报,制造以及更多领域。 在本章中,我们将广泛使用一个名为 Pandas 的库来处理与时间序列相关的操作。 @@ -249,7 +247,7 @@ plt.show() 正如我们在上一节创建的图表(“图 1”和“图 2”)中看到的那样,它们很难阅读。 数据被“捆绑”。 通过使用每月刻度对数据进行切片,可以更轻松地可视化数据的起伏。 在下一节中,我们将继续学习 Pandas 库中可用的不同功能,例如过滤和求和,以及该功能如何帮助更好地分析和处理数据集。 -# 对时间序列数据进行操作 +# 操作时间序列数据 Pandas 库可以有效地处理时间序列数据,并执行各种操作,例如过滤和加法。 可以设置条件,Pandas 会过滤数据集并根据条件返回正确的子集。 时间序列数据也可以加载和过滤。 让我们看另一个例子来说明这一点。 @@ -596,7 +594,7 @@ plt.show() # 使用条件随机场识别字母序列 -**条件随机场**(**CRF**)是概率模型,经常用于分析结构化数据。 我们使用它们以各种形式标记和分割顺序数据。 以下是一些应用 CRF 的最常见用例: +**条件随机场**(**CRF**)是概率模型,经常用于分析结构化数据。 我们使用它们以各种形式标记和分割序列数据。 以下是一些应用 CRF 的最常见用例: * 手写识别 * 字符识别 diff --git a/new/ai-py/18.md b/new/ai-py/18.md index 6289d280..d407ab83 100644 --- a/new/ai-py/18.md +++ b/new/ai-py/18.md @@ -1,6 +1,4 @@ -# 18 - -# 图像识别 +# 18 图像识别 在本章中,我们将学习有关对象检测和跟踪的知识。 首先,我们将花费一些时间来理解为什么图像识别对于机器学习非常重要。 然后,我们将学习称为 OpenCV 的图像识别程序包,该程序包是计算机视觉的流行库。 我们还将学习如何安装 OpenCV 并讨论帧差异,以了解如何检测视频中的运动部分。 我们将学习如何使用色彩空间跟踪对象,以及如何使用背景减法来跟踪对象。 之后,我们将使用 CAMShift 算法构建交互式对象跟踪器,并学习如何构建基于光流的跟踪器。 我们将讨论面部检测和相关概念,例如 Haar 级联和积分图像。 然后,我们将使用此技术来构建眼睛检测器和跟踪器。 @@ -53,7 +51,7 @@ OpenCV 可以与 TensorFlow,PyTorch 和 Caffe 结合使用。 现在您已经安装了它,让我们转到下一部分,我们将讨论帧差异分段。 -# 帧差异 +# 帧差分 帧差分是可用于识别视频中运动部分的最简单技术之一。 直观地,在大多数应用程序中,这是有趣的部分所在。 如果我们有一个跑步者的视频,我们可能想分析跑步者的跑步情况,而不是背景图像。 当我们看电影时,我们主要关注最前沿的人物在说话和做事时。 我们不会倾向于关注背景中无聊的相框。 diff --git a/new/ai-py/19.md b/new/ai-py/19.md index 64288c2d..a6c15051 100644 --- a/new/ai-py/19.md +++ b/new/ai-py/19.md @@ -1,17 +1,15 @@ -# 19 - -# 神经网络 +# 19 神经网络 在本章中,我们将学习神经网络。 我们将从神经网络的介绍和相关库的安装开始。 然后,我们将讨论感知器以及如何基于它们构建分类器。 之后,我们将更深入地学习单层神经网络和多层神经网络。 -稍后,我们将看到如何使用神经网络构建向量量化器。 我们将使用循环神经网络分析顺序数据,最后将使用神经网络构建光学字符识别引擎。 在本章的最后,我们将介绍: +稍后,我们将看到如何使用神经网络构建向量量化器。 我们将使用循环神经网络分析序列数据,最后将使用神经网络构建光学字符识别引擎。 在本章的最后,我们将介绍: * 神经网络简介 * 构建基于感知器的分类器 * 构建单层神经网络 * 构建多层神经网络 * 构建向量量化器 -* 使用循环神经网络分析顺序数据 +* 使用循环神经网络分析序列数据 * 在**光学字符识别**(**OCR**)数据库中可视化字符 * 构建**光学字符识别**(**OCR**)引擎 @@ -515,11 +513,11 @@ plt.show() 图 12:训练纪元 -在上一节中,我们学习了如何使用向量量化器构建神经网络。 在下一节中,我们将继续学习神经网络。 接下来,我们将学习如何使用递归神经网络(RNN)分析顺序数据。 +在上一节中,我们学习了如何使用向量量化器构建神经网络。 在下一节中,我们将继续学习神经网络。 接下来,我们将学习如何使用递归神经网络(RNN)分析序列数据。 -# 使用循环神经网络分析顺序数据 +# 使用循环神经网络分析序列数据 -到目前为止,在我们所有的神经网络示例中,一直在使用静态数据。 神经网络也可以有效地用于构建处理顺序数据的模型。 **循环神经网络**(**RNN**)在建模顺序数据方面非常出色。 [您可以在以下位置了解有关循环神经网络的更多信息](https://www.jeremyjordan.me/introduction-to-recurrent-neural-networks/)。 +到目前为止,在我们所有的神经网络示例中,一直在使用静态数据。 神经网络也可以有效地用于构建处理序列数据的模型。 **循环神经网络**(**RNN**)在建模序列数据方面非常出色。 [您可以在以下位置了解有关循环神经网络的更多信息](https://www.jeremyjordan.me/introduction-to-recurrent-neural-networks/)。 当我们使用时间序列数据时,我们通常不能使用通用学习模型。 我们需要捕获数据中的时间依赖性,以便可以构建健壮的模型。 让我们看看如何构建它。 @@ -658,7 +656,7 @@ if __name__=='__main__': 如您所见,错误持续减小,直到达到训练次数的最大值。 到此结束了本节,我们展示了如何使用 RNN 来分析时间序列数据。 在下一部分中,我们将通过研究光学字符识别来演示神经网络的实际应用。 -# 在光学字符识别数据库中可视化字符 +# 可视化光学字符识别数据库中的字符 神经网络可以将用于光学字符识别。 它可能是其最常见的用例之一。 将手写体转换为计算机字符一直是许多计算机科学家试图解决的基本问题,但仍然难以捉摸。 我们已经取得了长足的进步,但是,由于显而易见的原因,100% 的准确性仍然遥不可及。 为什么? @@ -913,4 +911,4 @@ for i in range(num_test): # 总结 -在本章中,我们学习了神经网络。 我们讨论了如何构建和训练神经网络。 我们讨论了感知器,并在此基础上构建了分类器。 我们了解了单层神经网络以及多层神经网络。 我们讨论了如何将神经网络用于构建向量量化器。 我们使用循环神经网络分析了顺序数据。 然后,我们使用神经网络构建了光学字符识别引擎。 在下一章中,我们将学习强化学习,并了解如何构建智能学习代理。 \ No newline at end of file +在本章中,我们学习了神经网络。 我们讨论了如何构建和训练神经网络。 我们讨论了感知器,并在此基础上构建了分类器。 我们了解了单层神经网络以及多层神经网络。 我们讨论了如何将神经网络用于构建向量量化器。 我们使用循环神经网络分析了序列数据。 然后,我们使用神经网络构建了光学字符识别引擎。 在下一章中,我们将学习强化学习,并了解如何构建智能学习代理。 \ No newline at end of file diff --git a/new/ai-py/20.md b/new/ai-py/20.md index fc146fff..09a07201 100644 --- a/new/ai-py/20.md +++ b/new/ai-py/20.md @@ -1,6 +1,4 @@ -# 20 - -# 使用卷积神经网络进行深度学习 +# 20 将卷积神经网络用于深度学习 在本章中,我们将学习深度学习和**卷积神经网络**(**CNN**)。 在过去的几年中,CNN 取得了很大的发展势头,尤其是在图像识别领域。 我们将讨论 CNN 的架构以及内部使用的层的类型。 我们将看到如何使用一个名为 TensorFlow 的软件包。 我们将构建一个基于感知器的线性回归器。 我们将学习如何使用单层神经网络构建图像分类器。 @@ -115,7 +113,7 @@ CNN 通常使用以下类型的层: 当我们从网络中的输入层到输出层时,输入图像就从像素值转换为最终的类别分数。 已经为 CNN 提出了许多不同的架构,这是一个活跃的研究领域。 模型的准确性和鲁棒性取决于许多因素-层的类型,网络的深度,网络内各种类型的层的排列,为每个层选择的功能离子,训练数据 , 等等。 -# 建立基于感知器的线性回归器 +# 基于感知器建立线性回归器 在建立 CNN 之前,让我们为基础建立一个更基本的模型,并了解如何使用 CNN 进行改进。 在本节中,我们将看到如何使用感知器构建线性回归模型。 在前面的章节中我们已经看到了线性回归,但是本节是关于使用神经网络方法构建线性回归模型的。 diff --git a/new/ai-py/21.md b/new/ai-py/21.md index 952ea1a4..5c7edea8 100644 --- a/new/ai-py/21.md +++ b/new/ai-py/21.md @@ -1,6 +1,4 @@ -# 21 - -# 循环神经网络和其他深度学习模型 +# 21 循环神经网络和其他深度学习模型 在本章中,我们将学习深度学习和**循环神经网络**(**RNN**)。 像前几章所介绍的 CNN 一样,RNN 在过去几年中也获得了很大发展。 就 RNN 而言,它们在语音识别领域被大量使用。 当今许多聊天机器人都基于 RNN 技术建立了基础。 使用 RNN 预测金融市场已经取得了一些成功。 例如,我们可能有一个带有单词序列的文本,并且我们有一个目标来预测序列中的下一个单词。 diff --git a/new/ai-py/22.md b/new/ai-py/22.md index d1531165..1c2238da 100644 --- a/new/ai-py/22.md +++ b/new/ai-py/22.md @@ -1,6 +1,4 @@ -# 22 - -# 通过强化学习创建智能体 +# 22 通过强化学习创建智能体 在本章中,我们将学习**强化学习**(**RL**)。 我们将讨论 RL 的前提。 我们将讨论 RL 和监督学习之间的区别。 我们将通过一些真实的 RL 实例来了解 RL 如何以各种形式表现出来。 我们将学习 RL 的组成部分以及所涉及的各种概念。 然后,我们将在 Python 中创建一个环境,以了解其在实际中的工作方式。 然后,我们将使用这些概念来构建学习代理。 @@ -196,7 +194,7 @@ $ python3 run_environment.py --input-env mountaincar 在本节的第一个示例中,没有发生任何令人兴奋的事情。 它只是四处走动。 该示例确实使我们对所使用的 RL 框架有了基本的了解。 第二个示例更令人兴奋。 它实际上有一个目标(触摸标志)。 实现目标通常是如何构造强化问题。 在下一个示例中,我们将继续使事情变得更加有趣,并将我们的目光投向一个稍微复杂的目标。 -# 建立学习代理 +# 建立学习智能体 在本节的中,我们将基于第一个例子进行研究。 最初,柱子只是在四处移动。 现在,我们将尝试平衡购物车顶部的电线杆,并确保电线杆保持直立。 准备学习更多吗? 让我们开始吧。 diff --git a/new/ai-py/23.md b/new/ai-py/23.md index 9a9ceae5..f2f8d03a 100644 --- a/new/ai-py/23.md +++ b/new/ai-py/23.md @@ -71,7 +71,7 @@ Google 提供这些答案的基本技术之一就是通常所说的大数据。 一个重要的考虑因素是,当您提交查询时,Google 不会搜索互联网。 到进行查询时,为快速响应已为您完成了许多工作。 在以下各节中,我们将讨论一些在后台进行的活动。 -## 爬行 +## 爬取 为了让 Google 提供结果,它需要知道可用的内容。 并没有神奇的中央存储库,它具有所有网页和网站,因此 Google 会不断搜索新的网站和页面,并将它们添加到其已知页面列表中。 此发现过程称为爬网。 @@ -143,7 +143,7 @@ Google 的工作方式与图书馆卡目录类似,不同之处在于 Google 这么多正在创建的新数据没有被构造的事实带来了关于大数据的另一个好处。 数据量不是使大数据难以处理的唯一特征。 在处理数据时,至少要考虑另外两个项目,这会增加处理的复杂性。 它们通常被称为速度和变化。 让我们仔细看看通常所说的三个 V。 -## 音量 +## 容量 由于明显的原因,卷是最常与大数据关联的特性。 让我们来看一些其他示例,以及在这种情况下大数据的含义。 @@ -181,7 +181,7 @@ Google 的工作方式与图书馆卡目录类似,不同之处在于 Google 可以想象,这些数字一直在增加。 就像在物理学中一样,您不仅具有速度,还可能具有加速度。 -## 品种 +## 种类 在过去的好日子中,大多数数据存储在整齐的列和行中。 随着我们收集越来越多的数据,情况已不再如此。 我们正在收集和存储照片,传感器数据,IoT 设备信息,推文,加密的数据包,语音,视频等。 这些都彼此非常不同。 这些数据不是过去几天的整齐的行和列以及数据库联接。 其中大部分是非结构化的。 这意味着它不容易存储在数据库中并建立索引。 -- GitLab