文本特征提取_01:词项文档矩阵

本文介绍了特征提取中的词项-文档矩阵(TF-IDF)概念,包括其原理、计算过程及Spark MLlib的代码实现。TF-IDF是一种衡量词在文档中重要性的方法,用于文本特征提取。
摘要由CSDN通过智能技术生成

王小草SparkML笔记


笔记整理时间:2017年1月8日
笔记整理者:王小草

今日计事:
阴天,不寒冷。给古筝换上断了的新弦,调音,然后“当”地在第一根就又断了。
恩,天意,坐回电脑前。


1. 特征提取概述

什么是特征提取?

特征提取在英文的表述里就做feature extraction。

我们在做机器学习模型的时候,都会用的“特征”,对于有些对象,比如征信系统中预测贷款人是否会违约,可以使用特征:违约人的年龄,收入,家庭状况,固定资产价值等等指标来作为模型的特征,这些特征都是显而易见的可以被直接用数字与向量来表示的。但是如果我们要对一篇文本来做分析,就需要我们使用一些方法来提取文本中隐含的特征了。也就是说,模型本省是无法识别整篇文本在讲什么,有什么特征,需要我们人为地去提取特征,将文本转换成计算机能读懂的数字与向量的表征,才能进入下一步的建模。

那么我们要如何去提取文本的特征呢?关于文本的表征有许多方法,本文主要介绍一种最常用,效果也是比较好的方法:建立词项-文档矩阵。

2.词项-文档矩阵

2.1 概念

词项-文档矩阵,简写为TF-IDF(term frequency times inverse document frequency)
矩阵中的每个元素值代表了相应行上的词项对应于相应列上的文档的权重,即这个词对于这篇文章来说的重要程度。

2.2 原理

一个词对于一篇文章是否重要,体现在两个方面:

  1. 一个词项在一个文档中出现次数越多,他相对于文档的重要性就越大,这个指标就是我们的TF值
    TF = 词项在该文档中出现的次数/这篇文档所有的词项数

  2. 若词项在整个语料库中出现的次数越多,那么对于某一篇文章而言这个词就越没有意义,即越不重要。我们用逆文档频率idf来表示这个词在整个语料库中的重要程度,故,出现越多的词,idf值会越低,出现越少的词,idf值会越高
    IDF = log(N/d)
    N为所有文档的总数;d为出现过某个单词的文档的总数。
    在现实中,词项在语料中的频率往往呈指数型。一个常用词出现的次数往往是一个次常用词出现次数的几十倍,这样常用词的权重会非常低(如“的”这样的词N/D几乎可能几乎等于1),故我们对逆文档频率取对数log,如此,文档频率的差别就从乘数变成了加数级了。

综上所述,我们在计算词项在一个文档中的重要程度,要考虑以上两个因素,用TF-IDF值来共同衡量
TF-IDF = TF * IDF

2.3 假设

算法将每个文档看成是词项的集合,并没有考虑词项的顺序,句式结构和否定情况

2.4 存储格式

由于词项的数目非常之大,而文档数目远远小于词项,所以词项-文档矩阵应该是一个稀疏向量组成的行矩阵,每个向量代表一个文档

2.5 计算过程

(1)读入文档
在本地存储着的数据应该是一篇文章占一行,读入后,每篇文章是一个元素。

富途证券提供了安全性与可靠性的投资方式。
王宝强离婚案遭广大网友关注。大家表示心疼宝宝。
陆家嘴事件网友疑是炒作嫌疑。优衣库表示不服。
...
...

(2)分词
在计算词项-文档矩阵之前,我们需要将每篇文章进行分词,使得每篇文档都转换为了由词项组成的向量。因为我们往往是针对中文分词,比英文分词的难度与复杂度都大许多。一般使用词库加隐马模型或条件随机场来做中文分词与词性标注,这个在我的机器学习笔记中都有详细介绍,在此不赘述。分词后的效果如下:

[富途证券,提供,了,安全性,与,可靠性,的,投资,方式]
[王宝强,离婚案,遭,广,大网友,关注,大家,表示,心疼,宝宝]
[陆家嘴,事件,网友,疑,是,炒作,嫌疑,优衣库,表示,不服]
 ...
 ...

每一篇文章变成了一个文档向量,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值