一、提取特征阶段
1、TF-IDF
简介:TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
两个重要的概念:
1) TF: 词频 (term frequency, TF) 指的是某一个给定的词语在该文件中出现的次数。这个数字通常会被归一化(分子一般小于分母 区别于IDF),以防止它偏向长的文件。(同一个词语在长文件里可能会比短文件有更高的词频,而不管该词语重要与否。)
考虑到文章有长短之分,可以对“词频”进行标准化处理:
或者
2)IDF: 逆向文件频率 (inverse document frequency, IDF) 是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到。
需要一个语料库(corpus),用来模拟语言的使用环境。
如果一个词越常见,那么分母就越大,逆文档频率就越小越接近0。分母之所以要加1,是为了避免分母为0(即所有文档都不包含该词)。log表示对得到的值取对数。
计算TF-IDF:
TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语言中的出现次数成反比。所以,自动提取关键词的算法就很清楚了,就是计算出文档的每个词的TF-IDF值,然后按降序排列,取排在最前面的几个词。
2、Word2Vec
把单词表示成固定维度的稠密的向量!
word2vec有两种常用的数据准备方式:
- CBOW,用前后词(context words)预测目标词(target word)
- skip-gram,用目标词(target word)预测前后词(context word)
3、预训练模型
1)背景
预训练模型最开始是在图像领域提出的,获得了良好的效果,近几年才被广泛应用到自然语言处理各项任务中。
预训练模型的应用通常分为两步:
第一步:在计算性能满足的情况下用某个较大的数据集训练出一个较好的模型
第二步:根据不同的任务,改造预训练模型,用新任务的数据集在预训练模型上进行微调。
2)思想:预训练方法可以认为是让模型基于一个更好的初始状态进行学习,从而能够达到更好的性能。
3)分类:feature-based(以ELMo为例) 和 fine-tuning(以BERT为例)
case1:Feature-based一般指使用预训练语言模型训练出的词向量作为特征,输入到下游目标任务中。
case2:Fine-tuning方式是指在已经训练好的语言模型的基础上,加入少量的task-specific parameters,然后在新的语料上重新训练来进行微调。
词语和句子嵌入已经成为任何基于深度学习的自然语言处理系统的必备组成部分。它们将词语和句子编码成稠密的定长向量,从而大大地提升神经网络处理文本数据的能力。
待整理的点:
1、 word embedding
词嵌入(word embedding)的概念。本小节之前的所有向量表示都是稀疏的,通常都是一个高维的向量,向量里面的元素大部分都是0。那么embedding有什么不一样的呢?
Embedding同样也是用一个向量来表示一个词,但是它是使用一个较低的维度,稠密地表示。
好处:
- 不会造成维度爆炸,因为维度是我们自己设置的,通常比较小
- 向量是稠密的,不需要稀疏向量所采用的各种优化算法来提升计算效率