本文正在参与「金石计划 . 分割6万现金大奖」
前言
在上篇博文 【NLP】入门(二):查找引擎是怎样作业的 中,博主简略地介绍了查找引擎的作业原理,并且在文末提到了处理匹配排序最有名的算法之一 TF-IDF。
接下来,跟从博主来了解一下 TF-IDF 算法;
什么是 TF-IDF ?
TF-IDF (term frequency–inverse document frequency) 是一种用于信息检索与数据发掘的常用加权技能,常用于发掘文章中的关键词,并且算法简略高效,常被工业用于最开端的文本数据清洗。
TF-IDF 有两层意思,一层是 “词频”(Term Frequency,缩写为 TF),另一层是 “逆文档频率”(Inverse Document Frequency,缩写为 IDF)。
假如直接解释 TF (词频), IDF (逆文本频率指数),对于从来没触摸过这些说法的人,肯定是感觉是云里雾里的。
这儿咱们接着沿用上一篇博文里提到的关于咨询公司的事情。假如你是个新手房产中介,当客户来咨询楼盘相关信息时,你需要快速的从所有楼盘资料中,定位到某几篇需要的文档中,那应该怎样做呢?
这时就想起了上篇博文 【NLP】入门(二):查找引擎是怎样作业的 中提到的倒排索引,将资料进行归类,咱们将去寻找每篇文档的关键词,那些在某篇文档中呈现频率很高的词,比方每篇文档中根本都会有谈论 “租房”,“新房” 或 “二手房” 这样的字眼,这些高频的字眼其实就代表着这篇文档的属性, 咱们大概也能经过这些字眼判别这是不是客户关心的问题。
可是有一个问题,很多语气词,没有代表意义的词在一篇文档中同样频率很高,比方 “我”,“中介”,“和” 这种词,简直每篇文档中都会存在,并且提及很屡次。 它们很明显,尽管词频高,可是不具有区分力,用上面的方法,这些词也会被误认为很重要。
因此引入了一个大局参数(IDF),来判别这个词在所有文档中,是不是垃圾信息,而不是光看局部信息(某篇文档中的词频 TF),以至于带来统计误差;
很明显,“我”,“中介”,“和” 这种词在全量文档中便是这样的垃圾信息, 而 “租房”,“新房” 或 “二手房”是在大局下有区分力的词。所以假如咱们把局部(TF)和大局(IDF)的信息都整合起来一起看的时候,咱们就能快速定位到详细的文档了。
详细解析
接下来咱们将上面的内容用数字来进行表明,这样会愈加生动形象。
TFTF
我 | 中介 | 租房 | 买房 | |
---|---|---|---|---|
文档1 | 0 | 9 | 4 | 1 |
文档2 | 5 | 21 | 1 | 15 |
文档3 | 2 | 3 | 1 | 0 |
IDFIDF
我 | 中介 | 租房 | 买房 | |
---|---|---|---|---|
区分力 | 0.1 | 1.9 | 21.1 | 15.6 |
TFIDFTF \times IDF
我 | 中介 | 租房 | 买房 | |
---|---|---|---|---|
文档1 | 0 | 17.1 | 84.4 | 15.6 |
文档2 | 0.5 | 39.9 | 21.1 | 234 |
文档3 | 0.2 | 5.7 | 21.1 | 0 |
TF-IDF 两者结合其实便是两者相乘的意思,这样的结果意味着所有的文档,都能用一串调集所有词的分数来表明。经过分数的凹凸,咱们也能大概看出这篇文档的关键内容是什么。比方第一篇,尽管 TF 告诉咱们文档中 “中介” 这个词最多,可是 IDF 却告诉咱们 “租房” 在文档中更具有代表性,所以依据 TF-IDF 的结合,这篇文档更具有 “租房” 属性。
那咱们在查找时又都阅历了什么呢?
假设咱们查找关键词 “中介租房”,机器会运用词表的形式核算 “中介租房” 这个问题的 TF-IDF 值,然后会核算问句和每篇文档的 cos 间隔,这个比如中的核算过程,简略来说,便是将文档依照词的维度放到一个四维空间中,然后把问句同样也放到这个空间里,最终看空间中这个问题离哪一个文档的间隔最近,越近则相似度越高。经过这样的方法呢,咱们就能找到查找问题的最佳匹配文档了。
提到这儿,不得不提到一个在 NLP 问题中非常重要的东西,那便是向量。咱们刚刚把问句或者是文档,用数字的形式,投射到空间中,都是将问句或文档转变成向量,然后依照向量的形式指向空间中的某个方位。
举个比如,第一串数字便是文档1的向量表达,第二串是文档2的向量表达,第三串是问题的向量表达。他们都是空间中的点。
我 | 中介 | 租房 | 买房 | |
---|---|---|---|---|
文档1 | 0 | 17.1 | 84.4 | 15.6 |
文档2 | 0.5 | 39.9 | 21.1 | 234 |
问题 | 0 | 1\times1.9 | 1\times21.1 | 0 |
这儿运用三维空间替代四维空间:
所以,TF-IDF 是一种向量表达形式,今后在触摸 NLP 模型的过程中,还会不断听到词向量,句向量,文章向量等等不同的向量表达形式。
跋文
以上便是【NLP】入门(三):TF-IDF(理论篇)的全部内容了。
本文简略地从理论上介绍了 TF-IDF,下一篇博文 【NLP】入门(四):TF-IDF(代码篇) 将从代码的视点来诠释 TF-IDF,敬请期待,希望本篇博文对大家有所协助!
上篇精讲:【NLP】入门(二):查找引擎是怎样作业的
我是,期待你的重视;
创造不易,请多多支持;
系列专栏:AI NLP