文档章节

机学走起第三式:发射

厉力文武
 厉力文武
发布于 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主题提取算法与实现, 严禁期待!

© 著作权归作者所有

共有 人打赏支持
厉力文武
粉丝 30
博文 86
码字总数 81618
作品 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
超声波传感器测距原理与模块使用

超声波 ultrasonic (waves): 人类耳朵能听到的声波频率为20HZ~20KHz。当声波的振动频率大于20KHz或小于20Hz时,我们便听不见了。因此,我们把频率高于20KHz赫兹的声波称为“超声波”。因其...

u014224380
03/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
今天
2
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
5
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
4
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
5
0
中秋快乐!!!

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部