详解 one-hot 和 TF-IDF

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解 one-hot 和 TF-IDF相关的知识,希望对你有一定的参考价值。

参考技术A

   one-hot 和 TF-IDF 是提取文本特征的最为常见的方法,下文主要介绍它们主要的思想以及优缺点。

1.1 one-hot编码
   one-hot 编码,又称独热编码、一位有效编码。其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。举个例子,假设我们有三个样本(行),每个样本有三个特征(列):

  上表中我们已经对每个特征进行了普通的数字编码:我们的feature_1有两种可能的取值,比如是男/女,这里男用0表示,女用1表示。那么one-hot编码是怎么搞的呢?

  我们再拿feature_2来说明:这里feature_2 有4种取值(状态),我们就用4个状态位来表示这个特征,one-hot编码就是保证每个样本中的单个特征只有1位处于状态1,其他的都是0。

对于两种状态、三种状态、甚至更多状态都是这样表示,所以我们可以得到这些样本特征的新表示:

one-hot 编码将每个状态位都看成一个特征。于是我们可以得到它们的特征向量分别为:

1.2 one-hot在提取文本特征上的应用
   one-hot 在特征提取上属于词袋模型(bag of words)。关于如何使用 one-hot 抽取文本特征向量我们通过以下例子来说明。假设我们的语料库中有三段话:

    我爱中国
    爸爸妈妈爱我
    爸爸妈妈爱中国

我们首先对语料库分离并获取其中所有的词,然后对每个此进行编号:
    1 我; 2 爱; 3 爸爸; 4 妈妈;5 中国

然后使用 one-hot 对每段话提取特征向量:

因此我们得到了最终的特征向量为

优缺点分析:

优点 :

缺点 :

sklearn实现one hot encode

注意: 假如要进行编码的数据没有出现在对应列中将会出现错误

   IF-IDF 是信息检索(IR)中最常用的一种文本表示法。算法的思想很简单,就是统计每个词出现的 词频(TF) ,然后再为其附上一个 权值参数(IDF) 。举个例子:
  现在假设我们要统计一篇文档中的前10个关键词,应该怎么下手?首先想到的是统计一下文档中每个词出现的频率(TF),词频越高,这个词就越重要。但是统计完你可能会发现你得到的关键词基本都是“的”、“是”、“为”这样没有实际意义的词(停用词),这个问题怎么解决呢?你可能会想到为每个词都加一个权重,像这种”停用词“就加一个很小的权重(甚至是置为0),这个权重就是IDF。下面再来看看公式:

优缺点分析

优点:简单快速,结果比较符合实际

缺点:单纯考虑词频,忽略了词与词的位置信息以及词与词之间的相互关系。

sklearn 实现 tfidf

以上是关于详解 one-hot 和 TF-IDF的主要内容,如果未能解决你的问题,请参考以下文章

机器学习入门-数据预处理-数字映射和one-hot编码 1.LabelEncoder(进行数据自编码) 2.map(进行字典的数字编码映射) 3.OnehotEncoder(进行one-hot编码)

类别的one-hot编码

使用 pandas 和 scikit-learn 对多维数组进行 one-hot 编码

连续型特征的归一化和离散特征的one-hot编码

机器学习One-Hot编码

为啥要用one-hot编码