diff --git "a/chapter/10.\346\226\207\346\234\254\350\201\232\347\261\273.md" "b/chapter/10.\346\226\207\346\234\254\350\201\232\347\261\273.md" index d03a2d5..b7b0fc3 100644 --- "a/chapter/10.\346\226\207\346\234\254\350\201\232\347\261\273.md" +++ "b/chapter/10.\346\226\207\346\234\254\350\201\232\347\261\273.md" @@ -86,7 +86,7 @@ 1. **基本原理** - 形式化啊定义 k均值算法所解决的问题,给定 n 个向量 d1 到 dn,以及一个整数 k,要求找出 k 个簇 S1 到 Sk 以及各自的质心 C1 到 Ck,使得下式最小: + 形式化的定义 k均值算法所解决的问题,给定 n 个向量 d1 到 dn,以及一个整数 k,要求找出 k 个簇 S1 到 Sk 以及各自的质心 C1 到 Ck,使得下式最小: ![](https://github.com/NLP-LOVE/Introduction-NLP/raw/master/img/2020-2-13_14-28-33.gif) diff --git "a/chapter/4.\351\232\220\351\251\254\345\260\224\345\217\257\345\244\253\346\250\241\345\236\213\344\270\216\345\272\217\345\210\227\346\240\207\346\263\250.md" "b/chapter/4.\351\232\220\351\251\254\345\260\224\345\217\257\345\244\253\346\250\241\345\236\213\344\270\216\345\272\217\345\210\227\346\240\207\346\263\250.md" index 7b41dab..6d266a1 100644 --- "a/chapter/4.\351\232\220\351\251\254\345\260\224\345\217\257\345\244\253\346\250\241\345\236\213\344\270\216\345\272\217\345\210\227\346\240\207\346\263\250.md" +++ "b/chapter/4.\351\232\220\351\251\254\345\260\224\345\217\257\345\244\253\346\250\241\345\236\213\344\270\216\345\272\217\345\210\227\346\240\207\346\263\250.md" @@ -28,7 +28,7 @@ ![](https://github.com/NLP-LOVE/Introduction-NLP/raw/master/img/2020-2-6_10-36-13.png) -求解序列标注问题的模型一般称为**序列标注器**,通常由模型从一个标注数据集 ![](https://github.com/NLP-LOVE/Introduction-NLP/raw/master/img/2020-2-8_0-45-19.gif) 中学习相关知识后再进行预测。再NLP问题中,x 通常是字符或词语,而 y 则是待预测的组词角色或词性等标签。中文分词、词性标注以及命名实体识别,都可以转化为序列标注问题。 +求解序列标注问题的模型一般称为**序列标注器**,通常由模型从一个标注数据集 ![](https://github.com/NLP-LOVE/Introduction-NLP/raw/master/img/2020-2-8_0-45-19.gif) 中学习相关知识后再进行预测。在NLP问题中,x 通常是字符或词语,而 y 则是待预测的组词角色或词性等标签。中文分词、词性标注以及命名实体识别,都可以转化为序列标注问题。 1. **序列标注与中文分词** @@ -81,7 +81,7 @@ **隐马尔可夫模型**:它的马尔可夫假设作用于状态序列, - 假设 ① 当前状态 Yt 仅仅依赖于前一个状态 Yt-1, 连续多个状态构成隐**马尔可夫链 y**。有了隐马尔可夫链,如何与观测序列 x 建立联系呢? + 假设 ① 当前状态 Yt 仅仅依赖于前一个状态 Yt-1, 连续多个状态构成**隐马尔可夫链 y**。有了隐马尔可夫链,如何与观测序列 x 建立联系呢? 隐马尔可夫模型做了第二个假设: ② 任意时刻的观测 x 只依赖于该时刻的状态 Yt,与其他时刻的状态或观测独立无关。如果用箭头表示事件的依赖关系(箭头终点是结果,依赖于起点的因缘),则隐马尔可夫模型可以表示为下图所示 @@ -149,13 +149,13 @@ 1. **案例假设和模型构造** - 设想如下案例:某医院招标开发“智能”医疗诊断系统,用来辅助感冒诊断。已知①来诊者只有两种状态:要么健康,要么发烧。②来诊者不确定自己到底是哪种状态,只能回答感觉头晕、体寒或正常。医院认为,③感冒这种病,只跟病人前一天的状态有关,并且,④当天的病情决定当天的身体感觉。有位来诊者的病历卡上完整地记录了最近 T 天的身体感受(头晕、体寒或正常),请预测这 T 天的身体状态(健康或发烧)。由于医疗数据属于机密隐私,医院无法提供训练数据,但根据医生经验,感冒发病的规律如下图所示(**箭头上的数值表示概率**): + 设想如下案例:某医院招标开发“智能”医疗诊断系统,用来辅助感冒诊断。已知①来诊者只有两种状态:要么健康,要么发烧。②来诊者不确定自己到底是哪种状态,只能回答感觉头晕、体寒或正常。③医院认为,感冒这种病,只跟病人前一天的状态有关,并且,④当天的病情决定当天的身体感觉。有位来诊者的病历卡上完整地记录了最近 T 天的身体感受(头晕、体寒或正常),请预测这 T 天的身体状态(健康或发烧)。由于医疗数据属于机密隐私,医院无法提供训练数据,但根据医生经验,感冒发病的规律如下图所示(**箭头上的数值表示概率**): ![](https://github.com/NLP-LOVE/Introduction-NLP/raw/master/img/2020-2-6_14-9-11.png) - 根据已知条件①②,病情状态(健康、发烧)可作为隐马尔可夫模型的隐状态(上图蓝色状态),而身体感受(头晕、体寒或正常)可作为隐马尔可夫模型的显状态(图中白色状态)。条件③符合隐马尔可夫模型假设一,条件④符 合隐马尔可夫模型假设二。这个案例其实描述了一个隐马尔可夫模型, 并且参数已经给定。构造模型代码见: + 根据已知条件①②,病情状态(健康、发烧)可作为隐马尔可夫模型的隐状态(上图蓝色状态),而身体感受(头晕、体寒或正常)可作为隐马尔可夫模型的显状态(图中白色状态)。条件③符合隐马尔可夫模型假设一,条件④符合隐马尔可夫模型假设二。这个案例其实描述了一个隐马尔可夫模型, 并且参数已经给定。构造模型代码见: ```python import numpy as np diff --git "a/chapter/5.\346\204\237\347\237\245\346\234\272\345\210\206\347\261\273\344\270\216\345\272\217\345\210\227\346\240\207\346\263\250.md" "b/chapter/5.\346\204\237\347\237\245\346\234\272\345\210\206\347\261\273\344\270\216\345\272\217\345\210\227\346\240\207\346\263\250.md" index 8c6254f..7c586f6 100644 --- "a/chapter/5.\346\204\237\347\237\245\346\234\272\345\210\206\347\261\273\344\270\216\345\272\217\345\210\227\346\240\207\346\263\250.md" +++ "b/chapter/5.\346\204\237\347\237\245\346\234\272\345\210\206\347\261\273\344\270\216\345\272\217\345\210\227\346\240\207\346\263\250.md" @@ -14,7 +14,7 @@ 为了利用更多的特征,线性模型( linear model )应运而生。线性模型由两部分构成: 一系列用来提取特征的特征函数 φ,以及相应的权重向量 w。 -本章将深人讲解感知机算法的原理,以及在分类和序列标注上的应用。在序列标注应用部分,我们将实现基于感知机的中文分词器。由于感知机序列标注基于分类,并且分类问题更简单,所以我们先学习分类问题。 +本章将深入讲解感知机算法的原理,以及在分类和序列标注上的应用。在序列标注应用部分,我们将实现基于感知机的中文分词器。由于感知机序列标注基于分类,并且分类问题更简单,所以我们先学习分类问题。 @@ -101,7 +101,7 @@ 运行下面代码后会自动下载。 - 预料格式为逗号分隔的 .csv,第一列为姓名,第二列为性别: + 语料格式为逗号分隔的 .csv,第一列为姓名,第二列为性别: ``` 赵伏琴,女 diff --git "a/chapter/6.\346\235\241\344\273\266\351\232\217\346\234\272\345\234\272\344\270\216\345\272\217\345\210\227\346\240\207\346\263\250.md" "b/chapter/6.\346\235\241\344\273\266\351\232\217\346\234\272\345\234\272\344\270\216\345\272\217\345\210\227\346\240\207\346\263\250.md" index c6b0172..ea3ea60 100644 --- "a/chapter/6.\346\235\241\344\273\266\351\232\217\346\234\272\345\234\272\344\270\216\345\272\217\345\210\227\346\240\207\346\263\250.md" +++ "b/chapter/6.\346\235\241\344\273\266\351\232\217\346\234\272\345\234\272\344\270\216\345\272\217\345\210\227\346\240\207\346\263\250.md" @@ -7,7 +7,7 @@ ## 6. 条件随机场与序列标注 -本章介绍一种新的序列标注模型条件随机场。这种模型与感知机同属结构化学习大家族,但性能比感知机还要强大。为了厘清该模型的来龙去脉,我们先对机器学习模型做番柿理。然后结合代码介绍条件随机场理论,探究它与结构化感知机的异同。 +本章介绍一种新的序列标注模型条件随机场。这种模型与感知机同属结构化学习大家族,但性能比感知机还要强大。为了厘清该模型的来龙去脉,我们先对机器学习模型做番梳理。然后结合代码介绍条件随机场理论,探究它与结构化感知机的异同。 diff --git "a/chapter/8.\345\221\275\345\220\215\345\256\236\344\275\223\350\257\206\345\210\253.md" "b/chapter/8.\345\221\275\345\220\215\345\256\236\344\275\223\350\257\206\345\210\253.md" index ed6f913..5315ab5 100644 --- "a/chapter/8.\345\221\275\345\220\215\345\256\236\344\275\223\350\257\206\345\210\253.md" +++ "b/chapter/8.\345\221\275\345\220\215\345\256\236\344\275\223\350\257\206\345\210\253.md" @@ -114,7 +114,7 @@ HanLP内部提供了语料库转换工序,用户无需关心,只需要传入 1. **标注领域命名实体识别语料库** - 首先我们需要收集一些文本, 作为标注语料库的原料,称为**生语料**。由于我们的目标是识别文本中的战斗机名称或型号,所以生语料的来源应当是些军事网站的报道。在实际工程中,求由客户提出,则应当由该客户提供生语料。语料的量级越大越好,一般最低不少于数千个句子。 + 首先我们需要收集一些文本, 作为标注语料库的原料,称为**生语料**。由于我们的目标是识别文本中的战斗机名称或型号,所以生语料的来源应当是些军事网站的报道。在实际工程中,需求由客户提出,则应当由该客户提供生语料。语料的量级越大越好,一般最低不少于数千个句子。 生语料准备就绪后,就可以开始标注了。对于命名实体识别语料库,若以词语和词性为特征的话,还需要标注分词边界和词性。不过我们不必从零开始标注,而可以在HanLP的标注基础上进行校正,这样工作量更小。 @@ -135,7 +135,7 @@ HanLP内部提供了语料库转换工序,用户无需关心,只需要传入 [米格/nr -/w 阿帕奇/nrf -/w 666/m S/q]/np 横空出世/l 。/w ``` - 这句话已经在语料库中出现过,能被正常识别并不意外。我们可以伪造一款“米格-阿帕奇-666S”战斗机,试试模型的繁华能力,发现依然能够正确识别。 + 这句话已经在语料库中出现过,能被正常识别并不意外。我们可以伪造一款“米格-阿帕奇-666S”战斗机,试试模型的泛化能力,发现依然能够正确识别。 diff --git "a/chapter/9.\344\277\241\346\201\257\346\212\275\345\217\226.md" "b/chapter/9.\344\277\241\346\201\257\346\212\275\345\217\226.md" index 1b0bc99..efcbfca 100644 --- "a/chapter/9.\344\277\241\346\201\257\346\212\275\345\217\226.md" +++ "b/chapter/9.\344\277\241\346\201\257\346\212\275\345\217\226.md" @@ -95,9 +95,9 @@ ### 9.2 关键词提取 -词语颗粒度的信息抽取还存在另一个需求,即提取文章中重要的单词,称为**关键词提起**。关键词也是一个没有定量的标准,无法统一语料库,所以就可以利用无监督学习来完成。 +词语颗粒度的信息抽取还存在另一个需求,即提取文章中重要的单词,称为**关键词提取**。关键词也是一个没有定量的标准,无法统一语料库,所以就可以利用无监督学习来完成。 -分别介绍词频、TF-IDF和TextRank算法,单文档提起可以用词频和TextRank,多文档可以使用TF-IDF来提取关键词。 +分别介绍词频、TF-IDF和TextRank算法,单文档提取可以用词频和TextRank,多文档可以使用TF-IDF来提取关键词。 1. **词频统计** @@ -147,7 +147,7 @@ TF-IDF (Term Frequency-lnverse Document Frequency,词频-倒排文档频次)是信息检索中衡量一个词语重要程度的统计指标,被广泛用于Lucene、Solr、Elasticsearch 等搜索引擎。 - 相较于词频,TF-IDF 还综合考虑词语的稀有程度。在TF-IDF计算方法中,一个词语的重要程度不光正比于它在文档中的频次,还反比于有多少文档包含它。包含该词语的文档趣多,就说明它越宽泛, 越不能体现文档的特色。 正是因为需要考虑整个语料库或文档集合,所以TF-IDF在关键词提取时属于多文档方法。 + 相较于词频,TF-IDF 还综合考虑词语的稀有程度。在TF-IDF计算方法中,一个词语的重要程度不光正比于它在文档中的频次,还反比于有多少文档包含它。包含该词语的文档越多,就说明它越宽泛, 越不能体现文档的特色。 正是因为需要考虑整个语料库或文档集合,所以TF-IDF在关键词提取时属于多文档方法。 计算公式如下: @@ -198,7 +198,7 @@ ![](https://github.com/NLP-LOVE/Introduction-NLP/raw/master/img/2020-2-12_17-24-59.gif) - 其中 d 是一个介于 (0,1) 之间的常数因子,在PagRank中模拟用户点击链接从而跳出当前网站的概率,In(Vi) 表示链接到 Vi 的节点集合,Out(Vj) 表示从 Vj 出发链接到的节点集合。可见,开不是外链越多,网站的PageRank就越高。网站给别的网站做外链越多,每条外链的权重就越低。如果一个网站的外链都是这种权重很低的外链,那么PageRank也会下降,造成不良反应。正所谓物以类聚,垃圾网站推荐的链接往往也是垃圾网站。因此PageRank能够比较公正的反映网站的排名。 + 其中 d 是一个介于 (0,1) 之间的常数因子,在PagRank中模拟用户点击链接从而跳出当前网站的概率,In(Vi) 表示链接到 Vi 的节点集合,Out(Vj) 表示从 Vj 出发链接到的节点集合。可见,并不是外链越多,网站的PageRank就越高。网站给别的网站做外链越多,每条外链的权重就越低。如果一个网站的外链都是这种权重很低的外链,那么PageRank也会下降,造成不良反应。正所谓物以类聚,垃圾网站推荐的链接往往也是垃圾网站。因此PageRank能够比较公正的反映网站的排名。 将 PageRank 应用到关键词提取,无非是将单词视作节点而已,另外,每个单词的外链来自自身前后固定大小的窗口内的所有单词。