未验证 提交 806ccee1 编写于 作者: Hhhy云帆's avatar Hhhy云帆 提交者: GitHub

finish 3.文本数据.md

finish 3.文本数据.md
上级 8a0361c9
......@@ -175,17 +175,17 @@ stemming的确有一个计算成本。 最终收益是否大于成本取决于
由于搭配不仅仅是其部分的总和,它们的含义也不能通过单个单词计数来充分表达。作为一种表现形式,词袋不足。袋子的ngram也是有问题的,因为它们捕获了太多无意义的序列(考虑“this is” in the bag-of-ngrams example ),而没有足够的有意义的序列。
搭配作为功能很有用。但是,如何从文本中发现并提取它们呢?一种方法是预先定义它们。如果我们努力尝试,我们可能会找到各种语言的全面成语列表,我们可以通过文本查看任何匹配。这将是非常昂贵的,但它会工作。如果语料库是非常特定领域的并且包含深奥的术语,那么这可能是首选的方法。但是这个列表需要大量的手动管理,并且需要不断更新语料库。例如,分析推文,博客和文章可能不太现实。
自从统计NLP过去二十年出现以来,人们越来越多地选择用于查找短语的统计方法。统计搭配提取方法不是建立固定的短语和惯用语言列表,而是依赖不断发展的数据来揭示当今流行的语言。
Frequency-based methods
一个简单的黑客就是看最频繁发生的n-gram。 这种方法的问题是最常发生的可能不是最有用的。 表3-2显示了整个Yelp评论数据集中最流行的bigrams(n=2)。 正如我们所知的,按文件计数排列的最常见的十大常见术语是非常通用的术语,并不包含太多含义。
### Freqency-based methods
一个简单的hack频繁发生的n-gram。 这种方法的问题是最常发生的,这种可能不是最有用的。 表3-2显示了整个Yelp评论数据集中最流行的bigrams(n=2)。 正如我们所知的,按文件计数排列的最常见的十大常见术语是非常通用的术语,并不包含太多含义。
![图3-biaod](../images/chapter3/biaod.PNG)
Hypothesis testing for collocation extraction
Raw popularity count是一个太粗糙方法。我们必须找到更聪明的统计数据才能够轻松挑选出有意义的短语。关键的想法是看两个单词是否经常出现在一起。回答这个问题的统计机制被称为假设检验。
假设检验是将噪音数据归结为“是”或“否”的答案。它涉及将数据建模为从随机分布中抽取的样本。随机性意味着人们永远无法100%确定答案;总会有异常的机会。所以答案附在概率上。例如,假设检验的结果可能是“这两个数据集来自同一分布,其概率为95%”。对于假设检验的温和介绍,请参阅可汗学院关于假设检验和p值的教程。
### Hypothesis testing for collocation extraction
Raw popularity count是一个比较粗糙的方法。我们必须找到更聪慧的统计数据才能够轻松挑选出有意义的短语。关键的想法是看两个单词是否经常出现在一起。回答这个问题的统计机制被称为假设检验。
假设检验是将噪音数据归结为“是”或“否”的答案。它涉及将数据建模为从随机分布中抽取的样本。随机性意味着人们永远无法100%确定答案;总会有异常的机会。所以答案附在概率上。例如,假设检验的结果可能是“这两个数据集来自同一分布,其概率为95%”。对于假设检验的温和介绍,请参阅可汗学院关于假设检验和p值的教程。
在搭配提取的背景下,多年来已经提出了许多假设检验。最成功的方法之一是基于似然比检验(Dunning,1993)。对于给定的一对单词,该方法测试两个假设
观察的数据集。假设1(无效假设)表示,词语1独立于词语2出现。另一种说法是说,看到词语1对我们是否看到词语2没有影响。假设2(备选假设)说,看到词1改变了看到单词2的可能性。我们采用备选假设来暗示这两个单词形成一个共同的短语。因此,短语检测(也称为搭配提取)的似然比检验提出了以下问题:给定文本语料库中观察到的单词出现更可能是从两个单词彼此独立出现的模型中生成的,或者模型中两个词的概率纠缠?
这是有用的。让我们算一点。 (数学非常精确和简洁地表达事物,但它确实需要与自然语言完全不同的分析器。)
这是有用的。让我们算一点。(数学非常精确和简洁地表达事物,但它确实需要与自然语言完全不同的分析器。)
![图3-gongshi](../images/chapter3/gongshi.PNG)
......@@ -197,13 +197,13 @@ Raw popularity count是一个太粗糙方法。我们必须找到更聪明的统
3.计算所有唯一的双对数似然比对数。
4.根据它们的似然比排序双字节。
5.以最小似然比值作为特征。
Getting a Grip on Likelihood Ratio Test
关键在于测试比较的不是概率参数本身,而是在这些参数(以及假设的数据生成模型)下观察观察数据的概率。可能性是统计学习的关键原则之一。但是在你看到它的前几次,这绝对是一个令人困惑的问题。一旦你确定了逻辑,它就变得直观了。
### Getting a Grip on Likelihood Ratio Test
关键在于测试比较的不是概率参数本身,而是在这些参数(以及假设的数据生成模型)下观察数据的概率。可能性是统计学习的关键原则之一。但是在你看到它的前几次,这绝对是一个令人困惑的问题。一旦你确定了逻辑,它就变得直观了。
还有另一种基于点互信息的统计方法。但它对真实世界文本语料库中常见的罕见词很敏感。因此它不常用,我们不会在这里展示它。
请注意,搭配抽取的所有统计方法,无论是使用原始频率,假设测试还是点对点互信息,都是通过过滤候选词组列表来进行操作的。生成这种清单的最简单和最便宜的方法是计算n-gram。有可能产生不连续的序列,但是它们计算起来很昂贵。在实践中,即使是连续n-gram,人们也很少超过bi-grams或tri-grams,因为即使在过滤之后,它们的数量也很多。为了生成更长的短语,还有其他方法,如chunking或与词性标注相结合。
请注意,搭配抽取的所有统计方法,无论是使用原始频率,假设测试还是点对点互信息,都是通过过滤候选词组列表来进行操作的。生成这种清单的最简单和最便宜的方法是计算n-gram。它可能产生不连续的序列,但是它们计算成本颇高。在实践中,即使是连续n-gram,人们也很少超过bi-grams或tri-grams,因为即使在过滤之后,它们的数量也很多。为了生成更长的短语,还有其他方法,如chunking或与词性标注相结合。
Chunking and part-of-Speech Tagging
### Chunking and part-of-Speech Tagging
Chunking比n-gram要复杂一点,因为它基于词性,基于规则的模型形成了tokens序列。
例如,我们可能最感兴趣的是在问题中找到所有名词短语,其中文本的实体,主题最为有趣。 为了找到这个,我们使用词性标记每个作品,然后检查该标记的邻域以查找词性分组或“块”。 定义单词到词类的模型通常是语言特定的。 几种开源Python库(如NLTK,Spacy和TextBlob)具有多种语言模型。
为了说明Python中的几个库如何使用词性标注非常简单地进行分块,我们再次使用Yelp评论数据集。 我们将使用spacy和TextBlob来评估词类以找到名词短语。
......@@ -353,14 +353,13 @@ date NOUN NN
['got', 'goldberg', 'arizona', 'new position', 'june', 'new doctor', 'nyc'
```
你可以看到每个库找到的名词短语有些不同。 spacy包含英语中的常见单词,如“a”和“the”,而TextBlob则删除这些单词,这反映了规则引擎中驱动每个图书馆认为是“名词短语”的不同之处。 以确定您正在寻找的块。使用Python进行自然语言处理可以深入了解从头开始用Python进行分块。
你可以看到每个库找到的名词短语有些不同。 spacy包含英语中的常见单词,如“a”和“the”,而TextBlob则删除这些单词.这反映了规则引擎的差异,它驱使每个库都认为是“名词短语”。 你也可以写你的词性关系来定义你正在寻找的块。使用Python进行自然语言处理可以深入了解从头开始用Python进行分块。
## 总结:
词袋易于理解,易于计算,对分类和搜索任务很有用。但有时单个单词太简单,不足以将文本中的某些信息封装起来。为了解决这个问题,人们期望更长的序列。Bag-of-ngrams这个概念仍然很容易理解,而且它的计算比较大。
Bag of-ngrams生成更多不同的ngram。它增加了特征存储成本,以及模型训练和预测阶段的计算成本。数据点的数量保持不变,但特征空间的维度现在更大。因此数据密度更为稀疏。 n越高,存储和计算成本越高,数据越稀疏。由于这些原因,
较长的n-gram并不总是会导致模型精度的提高(或任何其他性能指标)。人们通常在n = 2或3时停止。较少的n-gram很少被使用。
防止稀疏性和成本增加的一种方法是过滤n-gram并保留最有意义的短语。这是搭配抽取的目标。理论上,搭配(或短语)可以在文本中形成非连续的标记序列。然而,在实践中,寻找非连续词组的计算成本要高得多,而没有太多的收益。因此搭配抽取通常从一个候选人名单中开始,并利用统计方法对他们进行过滤。
词袋模型易于理解和计算,对分类和搜索任务很有用。但有时单个单词太简单,不足以将文本中的某些信息封装起来。为了解决这个问题,人们寄希望于比较长的序列。Bag-of-ngrams是bag-of-words的自然概括,这个概念仍然容于理解,而且它的计算开销这就像bag-of-words一样容易。
Bag of-ngrams生成更多不同的ngram。它增加了特征存储成本,以及模型训练和预测阶段的计算成本。虽然数据点的数量保持不变,但特征空间的维度现在更大。因此数据密度更为稀疏。 n越高,存储和计算成本越高,数据越稀疏。由于这些原因,较长的n-gram并不总是会使模型精度的得到提高(或任何其他性能指标)。人们通常在n = 2或3时停止。较少的n-gram很少被使用。
防止稀疏性和成本增加的一种方法是过滤n-gram并保留最有意义的短语。这是搭配抽取的目标。理论上,搭配(或短语)可以在文本中形成非连续的标记序列。然而,在实践中,寻找非连续词组的计算成本要高得多并且没有太多的收益。因此搭配抽取通常从一个候选人名单中开始,并利用统计方法对他们进行过滤。
所有这些方法都将一系列文本标记转换为一组断开的计数。与一个序列相比,一个集合的结构要少得多;他们导致平面特征向量。
在本章中,我们用简单的语言描述文本特征化技术。这些技术将一段充满丰富语义结构的自然语言文本转化为一个简单的平面向量。我们讨论一些常用的过滤技术来降低向量维度。我们还引入了ngrams和搭配抽取作为方法,在平面向量中添加更多的结构。下一章将详细介绍另一种常见的文本特征化技巧,称为tf-idf。随后的章节将讨论更多方法将结构添加回平面向量。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册