时间:2017-08-23 来源:

TF-IDF模型详解

1. 理论基础

  由于数据挖掘所有数据都要以数字形式存在web切图报价,而文本是以字符串形式存在.所以进行文本挖掘时需要先对字符串进行数字化,web切图报价从而能够进行计算.TF-IDF就是这样一种技术,psd转html能够将字符串转换为数字,html切图制作从而能够进行数据计算.

  TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与资讯探勘的常用加权技术.TF-IDF是一种统计方法,html切图用以评估一字词对于一个文件集一份文件对于所在的一个语料库中的重要程度.字词的重要性随着它在文件中出现的次数成正比增加,wap前端外包但同时会随着它在语料库中出现的频率成反比下降.

  TF意思是词频(Term Frequency),并且在其他文章中很少出现承接网页制作,即IDF低,div前端切图则认为此词或者短语具有很好的类别区分能力web切图报价,该值明确定义了对于分类的重要性符合w3c标准,值越大,符合w3c标准说明越有益于分类;值越小网页外包接活,说明越无益于分类.

1.2 TF(词频)

  在一份给定的文件里,jpg或psd转html词频(term frequency,TF)指的是某一个给定的词语在该文件中出现的频率.这个数字是对词数(term count)的归一化,web前端制作以防止它偏向长的文件.(同一个词语在长文件里可能会比短文件有更高的词数承接网页制作,而不管该词语重要与否.)对于在某一特定文件里的词语ti来说,承接网页制作它的重要性可表示为:

 以上式子中ni,j是该词在文件dj中的出现次数,网站div+css而分母则是在文件dj中所有字词的出现次数之和.

1.3 IDF(逆向文件频率)

  逆向文件频率 (inverse document frequency,可以由总文件数目除以包含该词语之文件的数目网页外包接活,再将得到的商取对数得到.

其中:

  • |D|:语料库中的文件总数;
  • |{j:ti∈dj}|:包含词语ti的文件数目,wap前端外包如果该词语不在语料库中web前端制作,就会导致被除数为零,div+css制作因此一般情况下使用1+|{j:ti∈dj}|

所以公式-1可以表示为: 

某一特定文件内的高词语频率承接网页制作,以及该词语在整个文件集合中的低文件频率,承接网页制作可以产生出高权重的TF-IDF.因此web切图报价,TF-IDF倾向于过滤掉常见的词语,web切图报价保留重要的词语.

1.4示例

  TFIDF实际上是:TF * IDF,IDF逆向文件频率(Inverse Document Frequency).TF表示词条在文档d中出现的频率.IDF的主要思想是:如果包含词条t的文档越少网页外包接活,也就是n越小,wap前端外包IDF越大web前端制作,而其它类包含t的文档总数为k,当m大的时候web切图报价,n也大,web切图报价按照IDF公式得到的IDF的值会小符合w3c标准,就说明该词条t类别区分能力不强.但是实际上,符合w3c标准如果一个词条在一个类的文档中频繁出现网页外包接活,则说明该词条能够很好代表这个类的文本的特征,jpg或psd转html这样的词条应该给它们赋予较高的权重web前端制作,并选来作为该类文本的特征词以区别与其它类文档.

  示例1

  有很多不同的数学公式可以用来计算TF-IDF.这边的例子以上述的数学公式来计算.词频 (TF) 是一词语出现的次数除以该文件的总词语数.假如一篇文件的总词语数是100个,web前端制作而词语"母牛"出现了3次承接网页制作,那么"母牛"一词在该文件中的词频就是3/100=0.03.一个计算文件频率 (DF) 的方法是测定有多少份文件出现过"母牛"一词,承接网页制作然后除以文件集里包含的文件总数.所以web切图报价,000份文件出现过符合w3c标准,000,000份的话,wap前端外包其逆向文件频率就是 log(10,000 / 1,k2,k1,k3在document1出现的次数是100,50.包含了 k1, k3的docuement总量分别是 1000,5000.document set的总量为10000. TF1 = 100/1000 = 0.1 TF2 = 200/1000 = 0.2 TF3 = 50/1000 = 0.05 IDF1 = log(10000/1000) = log(10) = 2.3 IDF2 = log(10000/100000) = log(1) = 0; IDF3 = log(10000/5000) = log(2) = 0.69 这样关键字k1,k3与docuement1的相关性= 0.1*2.3 + 0.2*0 + 0.05*0.69 = 0.2645 其中k1比k3的比重在document1要大符合w3c标准,这两个库的最大区别是依赖的容器不同.mlLib将数据存储在DataFrame中网页外包接活,而ml是将数据存储在RDD中.其中mlLib较新,jpg或psd转html所以本文只对mlLib的TF-IDF进行介绍.其中对于Spark mlLib框架和使用方式不熟悉可以参考另外一篇文章.

2.1 依赖组件

  1) TF操作

  TF操作依赖两个类:HashingTF和CountVectorizer,它们都可以用来生成频率向量.其中HashingTF是一个Transformer子类,web前端制作它接受一组数据承接网页制作,并将这些数据转换为固定长度的特征向量.CountVectorizer将文本文档转换为术语计数的向量.更多的细节请参考CountVectorizer.

  2) IDF操作

  IDF是一个Estimator子类,承接网页制作其会训练数据集并生成一个IDFModel对象.IDFModel采用特征向量(通常是从HashingTF或CountVectorizer创建的),并缩放每一列.直观地说,网站div+css它降低了在语料库中频繁出现的列.

2.2 示例

  如下示例通过Tokenizer类符合w3c标准,我们使用HashingTF把这个句子变成一个特征向量.我们使用IDF来重新缩放特征向量;当使用文本作为特性时网页外包接活, IDF, "Hi I heard about Spark"), "I wish Java could use case classes"), "Logistic regression models are neat")

  • )).toDF("label", CountVectorizer can also be used to get term frequency vectors
  •  
  • val idf = new IDF().setInputCol("rawFeatures").setOutputCol("features")
  • val idfModel = idf.fit(featurizedData)
  •  
  • val rescaledData = idfModel.transform(featurizedData)
  • rescaledData.select("label", "features").show()
  • 3. Scikit-learn应用

    3.1 依赖组件

      1) 安装scikit-learn包
      1. sudo pip install scikit-learn
      2) 中文分词采用的jieba分词,wap前端外包安装jieba分词包
      1. sudo pip install jieba

    3.2 Jieba使用

      关于jieba分词的使用非常简单web前端制作,关键的语句就是(这里简单试水承接网页制作,key.flag

     

    输出:

    对 p

    这 r

    句 q

    话 n

    进行 v

    分词 n

     

    3.3 示例

      采用scikit-learn包进行tf-idf分词权重计算关键用到了两个类:CountVectorizerTfidfTransformer,#第一类文本切词后的结果符合w3c标准,#第二类文本的切词结果

  •       "小明 硕士 毕业 与 中国 科学院",#第三类文本的切词结果
  •       "我 爱 北京 天安门"]#第四类文本的切词结果
  •     vectorizer=CountVectorizer()#该类会将文本中的词语转换为词频矩阵,jpg或psd转html矩阵元素a[i][j] 表示j词在i类文本下的词频
  •     transformer=TfidfTransformer()#该类会统计每个词语的tf-idf权值
  •     tfidf=transformer.fit_transform(vectorizer.fit_transform(corpus))#第一个fit_transform是计算tf-idf,第二个fit_transform是将文本转为词频矩阵
  •     word=vectorizer.get_feature_names()#获取词袋模型中的所有词语
  •     weight=tfidf.toarray()#将tf-idf矩阵抽取出来,web前端制作元素a[i][j]表示j词在i类文本中的tf-idf权重
  •     for i in range(len(weight)):#打印每类文本的tf-idf词语权重承接网页制作,第一个for遍历所有文本,承接网页制作第二个for便利某一类文本下的词语权重
  •         print u"-------这里输出第",u"类文本的词语tf-idf权重------"
  •         for j in range(len(word)):
  •             print word[j],weight[i][j]
  • 程序输出:每行格式为:词语 tf-idf权重

    -------这里输出第 0 类文本的词语tf-idf权重------ #该类对应的原文本是:"我来到北京清华大学"

    中国 0.0

    北京 0.52640543361

    大厦 0.0

    天安门 0.0

    小明 0.0

    来到 0.52640543361

    杭研 0.0

    毕业 0.0

    清华大学 0.66767854461

    硕士 0.0

    科学院 0.0

    网易 0.0

    -------这里输出第 1 类文本的词语tf-idf权重------ #该类对应的原文本是: "他来到了网易杭研大厦"

    中国 0.0

    北京 0.0

    大厦 0.525472749264

    天安门 0.0

    小明 0.0

    来到 0.414288751166

    杭研 0.525472749264

    毕业 0.0

    清华大学 0.0

    硕士 0.0

    科学院 0.0

    网易 0.525472749264

    -------这里输出第 2 类文本的词语tf-idf权重------ #该类对应的原文本是: "小明硕士毕业于中国科学院"

    中国 0.4472135955

    北京 0.0

    大厦 0.0

    天安门 0.0

    小明 0.4472135955

    来到 0.0

    杭研 0.0

    毕业 0.4472135955

    清华大学 0.0

    硕士 0.4472135955

    科学院 0.4472135955

    网易 0.0

    -------这里输出第 3 类文本的词语tf-idf权重------ #该类对应的原文本是: "我爱北京天安门"

    中国 0.0

    北京 0.61913029649

    大厦 0.0

    天安门 0.78528827571

    小明 0.0

    来到 0.0

    杭研 0.0

    毕业 0.0

    清华大学 0.0

    硕士 0.0

    科学院 0.0

    网易 0.0

    4. 参考文献

    [1].tf-idf.

    [2].TF-IDF原理及使用.

    [3].python scikit-learn计算tf-idf词语权重.

    [4].Python TF-IDF计算100份文档关键词权重.

    [5].Spark mllib官网.

     

    点击次数:6352
    作者:
    web前端行业资讯
    Web new NewsList
    谷歌发布Tacotron2:能更简单地训练AI学习演讲 ,,2017年12月21日TensorFlow漏洞爆发背后:关于AI安全我们的傻与天真 ,,2017年12月21日Android端Edge浏览器新版发布:常规性能优化和BUG修复 ,,2017年12月21日三星开发出全球最小的DRAM芯片技术领先优势扩大 ,,2017年12月21日腾讯绝艺AI下一步将学习AlphaGozero自对弈训练 ,,2017年12月21日Facebook社交VR应用Spaces扩大覆盖面:入驻HTCVive ,,2017年12月21日设计图曝光:三星双屏折叠手机原来是这样的 ,,2017年12月21日微信支付和支付宝已成为世界移动支付的"老师" ,,2017年12月21日新专利表明FaceID未来有望装备在iPad、MacBook和iMac等设备 ,,2017年12月21日首批九个建议加入EE4J的项目 ,,2017年12月21日这就是SurfacePhone?微软可折叠手机概念图曝光 ,,2017年12月21日继“Angel”开源后,腾讯又开放TDinsight机器学习平台 ,,2017年12月21日谷歌母公司研发“闪光”网络技术无需铺设线缆 ,,2017年12月21日微软投资5千万美元利用人工智能对抗气候变化 ,,2017年12月21日谷歌中国2017:面向开发者的1年AI先行的1年 ,,2017年12月21日GreenKey加入Symphony软件基金会,将开源语音软件 ,,2017年12月21日腾讯发现者揭秘:怎么应对TensorFlow的安全风险,修复有多难 ,,2017年12月21日清华新成立两大交叉研究机构探索智能与未来 ,,2017年12月21日微软将AI融入生产力工具和搜索引擎与其它巨头竞争 ,,2017年12月21日Gfycat将利用机器学习技术创建高分辨率GIF动图 ,,2017年12月21日安全软件公司Avast开源化机器码反编译器RetDec ,,2017年12月21日谷歌开源TFGAN,让训练和评估GAN变得更加简单 ,,2017年12月21日社区对模块化不感兴趣时隔三周经典版FedoraServer27发布 ,,2017年12月21日Windows10加入OpenSSH客户端 ,,2017年12月21日FirefoxQuantum发布一个月安装量1.7亿 ,,2017年12月21日吴恩达宣布创业新项目已与富士康达成战略合作 ,,2017年12月21日Scala入门系列(十二):隐式转换2017年12月20日speedment入门教程2017年12月20日SLAM入门笔记(1):特征点的匹配2017年12月20日深入浅出了解frame和bounds2017年12月20日jsp文件操作之追加篇2014年01月29日24天学会设计模式---------中介者模式 【编程语言】2015年02月09日Android之Activity生命周期及横竖屏切换 【综合】2015年06月18日iOS开发-使用自定义字体 【编程语言】2015年06月11日【书籍-《定位》】定位的全面性 【移动开发】2015年03月30日hdoj2553N皇后问题 【编程语言】2015年08月24日os认证【云计算】2015年06月24日poj2342Anniversaryparty(树形dp) 【移动开发】2015年02月27日jQuery开发者应该注意的9个错误2014年01月29日VB6基本数据库应用(三):连接数据库与SQL语句的Select语句初步2016年11月26日Ajax获得站点文件内容实例2014年01月29日Swift程序入口深度分析 【数据库】2014年12月03日可用CSS3实现的常见网页设计应用2014年01月28日HDU1495非常可乐(DFS)【架构设计】2015年08月24日ASPUTF-8页面乱码+GB2312转UTF-8+生成UTF-8格式的文件(编码)2014年01月29日MyEclipse10.5下载 ,,2016年07月24日内存分配的四个例子 【编程语言】2015年02月09日Curling2.0(POJ-3009) 【编程语言】2015年04月13日用PHP4访问Oracle8152014年01月29日NYOJ35表达式求值【栈】【综合】2014年12月16日老人不能被遗忘在移动互联之外! 【架构设计】2015年01月30日2015羊年主流手机配置什么样? 【架构设计】2015年01月12日【android开发实例】通过Http协议下载图片简易版 【编程语言】2015年03月12日给标签一点颜色让特殊信息一目了然2014年01月28日实现combobox模糊查询的时候报错InvalidArgument=“0”的值对于“index”无效 【综合】2015年05月05日解决SpringMVC中文乱码问题【编程语言】2015年02月02日可扩展的持续集成引擎Jenkinsv2.30发布 ,,2016年11月10日C++顺序容器删除元素时的一个小陷阱(C++primer第四版习题9.26) 【编程语言】2015年03月19日CodeForces-344AMagnets(模拟题)【编程语言】2015年08月14日js日期、星座的级联显示代码2014年01月29日
    我们保证
    We guarantee
    > psd效果文件手工切图,保证图片效果最好体积最小利于传输
    > 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
    > 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
    > 应用Css Sprite能够减少HTTP请求数,提高网页性能
    > 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)