自然语言处理方法---TF-IDF

论坛 期权论坛     
匿名技术用户   2021-1-15 14:40   26   0
<p><span style="white-space:pre"></span>最近闲来无事,做了小小的项目,主要工作有:</p>
<p><span style="white-space:pre"></span>1、爬取历年政府工作报告</p>
<p><span style="white-space:pre"></span>2、统计词频,并计算TF-IDF值</p>
<p><span style="white-space:pre"></span>3、可视化输出,并分析结果</p>
<p><span style="white-space:pre"></span>PS:以上都是基于python实现,需要源码请联系(其实很简单。。)</p>
<p>成果如图所示:</p>
<p><img alt="" src="https://201907.oss-cn-shanghai.aliyuncs.com/cs/5606289-505c81f0d027979d174c59488db68ba0"><img alt="" src="https://201907.oss-cn-shanghai.aliyuncs.com/cs/5606289-7ed55021c9ea37c3f6b2ce87f0c1a970"><img alt="" src="https://201907.oss-cn-shanghai.aliyuncs.com/cs/5606289-54e461fb43556cb65249ccf2477a1e62"><br> </p>
<p><br> </p>
<p><br> </p>
<p>其中,关于计算TF-IDF是自然语言处理(NLP)中比较常见的方法,今天来介绍一下此方法。</p>
<p></p>
<p style="margin:10px auto; font-family:Verdana,Arial,Helvetica,sans-serif; font-size:14px; line-height:25.2px"> <span style="color:rgb(128,0,0)"><strong><span style="font-size:15px">概念</span></strong></span></p>
<p style="margin:10px auto; font-family:Verdana,Arial,Helvetica,sans-serif; font-size:14px; line-height:25.2px">      TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与资讯探勘的<span style="color:rgb(0,0,255)">常用加权技术</span>。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。<span style="color:rgb(0,0,255)">字词的重要性随着它在文件中出现的次数成正比增加</span>,但同时会<span style="color:rgb(0,0,255)">随着它在语料库中出现的频率成反比下降</span>。TF-IDF加权的各种形式常被搜寻引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了TF-IDF以外,因特网上的搜寻引擎还会使用基于连结分析的评级方法,以确定文件在搜寻结果中出现的顺序。</p>
<p style="margin:10px auto; font-family:Verdana,Arial,Helvetica,sans-serif; font-size:14px; line-height:25.2px">   </p>
<p style="margin:10px auto; font-family:Verdana,Arial,Helvetica,sans-serif; font-size:14px; line-height:25.2px"> <span style="color:rgb(128,0,0)"><strong><span style="font-size:15px">原理</span></strong></span></p>
<p style="margin:10px auto; font-family:Verdana,Arial,Helvetica,sans-serif; font-size:14px; line-height:25.2px">       在一份给定的文件里,<strong>词频 (term frequency, TF)</strong> 指的是某一个给定的词语在该文件中出现的次数。这个数字通常会被<span style="color:rgb(0,0,255)">归一化(分子一般小于分母 区别于IDF)</span>,以防止它偏向长的文件。(同一个词语在长文件里可能会比短文件有更高的词频,而不管该词语重要与否。)</p>
<p style="margin:10px auto; font-family:Verdana,Arial,Helvetica,sans-serif; font-size:14px; line-height:25.2px">   <strong>逆向文件频率 (inverse document frequency, IDF)</strong> 是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到。</p>
<p style="margin:10px auto; font-family:Verdana,Arial,Helvetica,sans-serif; font-size:14px; line-height:25.2px">   某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。</p>
<p style="margin:10px auto; font-family:Verdana,Arial,Helvetica,sans-serif; font-size:14px; line-height:25.2px">       <strong>TFIDF的主要思想是</strong>:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。<span style="color:rgb(0,0,255)">TFIDF实际上是:TF * IDF,TF词频(Term Frequency),IDF反文档频率(Inverse Document Frequency)。</span><strong>TF</strong>表示词条在文档d中出现的频率(另一说:<strong>TF词频(Term Frequency)指</strong>的是<span style="color:rgb(0,0,255)">某一个给定的词语在该文件中出现的次数</span>)。IDF的主要思想是:如果<span style="color:rgb(0,0,255)">包含词条t的文档越少</span>,也<span style="color:rgb(0,0,255)">就是n越小,IDF越大</span>,则说明词条t具有很好的类别区分能力。如果某一类文档C中<span style="color:rgb(0,0,255)">包含词条t的文档数为m</span>,而<span style="color:rgb(0,0,255)">其它类包含t的文档总数为k</span>,显然所有包含t的文档数n&#61;m&#43;k,当<span style="color:rgb(0,0,255)">m大</span>的时候,<span style="color:rgb(0,0,255)">n也大</span>,按照IDF公式得到的<span style="color:rgb(0,0,255)">IDF的值会</span>小,就说明该词条t类别区分能力不强。(另一说:<strong>IDF反文
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP