文档章节

机学走起第三式:发射

厉力文武
 厉力文武
发布于 2017/08/10 09:44
字数 366
阅读 22
收藏 1

第一步文档:准备数据源,分词去停用词空格分隔,一行一篇备用;

第二步初始:将《机学走起第二式》第四步生成的IDF配置加载到容器中;

	try {
		String buf = new String();
		BufferedReader br = new BufferedReader(new FileReader(XX_FIDF));
		while (null != (buf = br.readLine())) {
			String[] arr = buf.split("\t");
			idf.put(arr[XX_IKEY], new Double(arr[XX_IVAL]));
		}
		br.close();
	} catch (Exception e) {
		e.printStackTrace();
	}

第三步统计:统计当前词语在当前文档中累计出现的总次数;

	String wds[] = null;
	String buf = new String();	
	Map<String, Double> doc = new HashMap<>();

	for (String w : (wds = buf.split(" "))) {
		doc.put(w, null != (val = doc.get(w)) ? val + 1 : 1);
	}

第四步计算:出现次数除以当前文档词语总数再乘以该词语的IDF值;

                TF-IDF = 词频(TF) x 逆向文档频率(IDF)

	Map<String, Double> doc = new HashMap<>();	
	Vector<Map.Entry<String, Double>> rst = new Vector<>();

	for (Map.Entry<String, Double> v : doc.entrySet()) {
		if (null != (val = idf.get(v.getKey()))) {
			v.setValue(v.getValue() / wds.length * val);
		}
		else {
			v.setValue(0.99999999);
		}
		rst.add(v);
	}

第五步排序:对当前文档全量词语的TF-IDF值按照降序进行排序;

	Collections.sort(rst, new Comparator<Map.Entry<String, Double>>() {
		public int compare(Map.Entry<String, Double> n, Map.Entry<String, Double> m) {
			return m.getValue().compareTo(n.getValue());
		}
	});

第六步输出:根据业务需要提取n个有价值的词语作为文档关键字;

	for (int idx = 0; idx < rst.size() && idx < XX_SIZE; ++ idx) {
		System.out.print(rst.get(idx).getKey() + ": [" + rst.get(idx).getValue() + "], ");
	}
	System.out.println();

第七步点赞:一边看博客一边下源码不打赏不点赞这样做真的好吗?

预告:《机学走起第四式:起飞》之LDA主题提取算法与实现, 严禁期待!

© 著作权归作者所有

共有 人打赏支持
厉力文武
粉丝 29
博文 86
码字总数 81619
作品 0
朝阳
程序员
私信 提问
啊啊啊啊啊豆豆/Damoo

Damoo An HTML5 Danmaku Engine. 一个不起眼的 HTML5 弹幕引擎。 Getting started 走起 Download the latest release. 下载最新发行版本。 Damoo requires a complete DOM with a suitable ......

啊啊啊啊啊豆豆
2015/06/01
0
0
HTML5 弹幕引擎--Damoo

Damoo 是一个轻量级的 HTML5 弹幕引擎。可以在页面元素上附加一层弹幕图层并且以非常简单的 API 调用方式使用。查看DEMO Damoo 一个不起眼的 HTML5 弹幕引擎。 Getting started 走起 下载最新...

啊啊啊啊啊豆豆
2015/06/01
2.2K
1
【私人订制】远距离双向混合(开关量+模拟量)信号无线传输装置

_模拟量和开关量信号同时无线传输、传输距离3-10公里 ■ 无线发射装置技术要求:  1、无线发射/接收装置工作电源应为交流220V,发射装置应为“固定式”,非“手持遥控器”形式的。  2、能够...

dataie456000
2016/10/28
5
0
如何实现无线远距离同时传输开关量和模拟量信号?

模拟量和开关量信号同时无线传输、传输距离3-10公里 ■ 无线发射装置技术要求:  1、无线发射/接收装置工作电源应为交流220V,发射装置应为“固定式”,非“手持遥控器”形式的。  2、能够对...

dataie456000
2016/10/12
16
0
黑客破解智能枪支

黑客破解智能枪支 Ronny 18分钟前暂无评论 阅读 11 次 我认为我们应该对智能机器的狂热追捧停一停了,除非它足够安全当得起“智能”二字。从智能烤箱,安全摄像头到智能汽车 —— 万物皆可破...

Ronny
2017/12/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS官方钱包keosd

EOS官方钱包的名称是keosd,它负责管理你的私钥,并且帮你进行交易的签名。 不过不幸的是,keosd钱包对普通用户并不友好,它是一个命令行程序,目前还没有像以太坊的mist那样的图形化界面,而...

汇智网教程
今天
9
0
ArrayList的实现原理以及实现线程安全

一、ArrayList概述 ArrayList是基于数组实现的,是一个动态的数字,可以自动扩容。 ArrayList不是线程安全的,效率比较高,只能用于单线程的环境中,在多线程环境中可以使用Collections.syn...

一看就喷亏的小猿
今天
12
0
Netty 备录 (一)

入职新公司不久,修修补补1个月的bug,来了点实战性的技术---基于netty即时通信 还好之前对socket有所使用及了解,入手netty应该不是很难吧,好吧,的确有点难,刚看这玩意的时候,可能都不知道哪里...

_大侠__
昨天
17
0
Django简单介绍和用户访问流程

Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框架,由Python写成。 Django遵守BSD版权,初...

枫叶云
昨天
25
0
Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

应用场景 之前我们已经通过《Spring Cloud Stream消费失败后的处理策略(一):自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试...

程序猿DD
昨天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部