package com.jsptpd.wordpart; import java.util.Arrays; import java.util.List; /** * //TF-IDF算法——原理及实现 * */ public class App { /** * 词频统计 */ public double tf(Listdoc,String item) { double termFrequency = 0; for(String str:doc) { if(str.equalsIgnoreCase(item)) { termFrequency++; } } return termFrequency; } /*** * 文档频率统计 */ public int df(List<List> docs,String item) { int n =0; if(item != null && item != "") { for(Listdoc:docs) { for(String word:doc) { if(word.equalsIgnoreCase(item)) { n++; break; } } } }else { System.out.println("item 不能为null或者空串"); } return n; } /** * 逆文档频率 */ public double idf(List<List> docs,String item) { return Math.log(docs.size()/(double) df(docs,item)+1); } /* * 词频 */ public double tfIdf(Listdoc,List<List> docs,String item) { return tf(doc,item)*idf(docs,item); } public static void main( String[] args ) { Listdoc1 = Arrays.asList("人工","智能","成为","互联网","大会","焦点"); Listdoc2 = Arrays.asList("谷歌","推出","开源","人工","智能","系统","工具"); Listdoc3 = Arrays.asList("互联网","的","未来","在","人工","智能"); Listdoc4 = Arrays.asList("谷歌","开源","机器","学习","工具"); List<List> documents = Arrays.asList(doc1,doc2,doc3,doc4); App app1 = new App(); ; System.out.println(app1.tf(doc2, "谷歌")); System.out.println(app1.df(documents, "谷歌")); System.out.println(app1.tfIdf(doc4,documents, "学习")); } }
TF-IDF算法——原理及实现
原创wx5b58976cc0a6f ©著作权
©著作权归作者所有:来自51CTO博客作者wx5b58976cc0a6f的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:hive迁移
下一篇:HDFS commands
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
瞎聊机器学习——TF-IDF算法(原理及代码实现)
TF-IDF的概文章的长短是不同的,所以我们可以把上述内容进行一个...
TF-IDF 特征提取 词频 自定义 权重 -
数学与算法《TF-IDF》
TF-IDF零:寒暄寒暄昨天看了一天的CNN,结果被深度学习的深度给深深地深刻地深埋了(
算法 概率论 权重 深度学习 搜索 -
python TF-IDF
python TF-IDF
python -
【MapReduce】TF-IDF
文章目录TF-IDF一、概述二、案例_统计猫眼电影数据中的TF-IDF1.整体思路2.代码实现Step 1 — 计算 TFpart 1:自定义SQLBean获取需要数据p
mapreduce java apache hadoop