字典树的原理以及Java实现

作者: blogchong | 分类: 原创-数据挖掘 | 评论:0人 | 浏览:

Trie树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。 典型应用是用于统计和排序大量的字符串(但不仅限于字符串), 所以经常被搜索引擎系统用于文本词频统计。

它的优点是:

利用字符串的公共前缀来节约存储空间,最大限度的减少无谓的字符串比较,查询效率比哈希表高。

比如说我们想储存3个单词,sky、skyline、skymoon。如果只是单纯的按照以前的字符数组存储的思路来存储的话,那么我们需要定义三个字符串数组。但是如果我们用字典树的话,只需要定义一个树就可以了。在这里我们就可以看到字典树的优势了。

More...

浅谈推荐系统的核心思想

作者: blogchong | 分类: 原创-数据挖掘 | 评论:0人 | 浏览:

或许一谈到数据挖掘中的推荐系统,大家第一反应就是协同过滤,要么就是基于内容推荐等等。但实际在生产环境中往往没有想象中这么复杂,但另一方面又没有想象中这么简单,确实很矛盾的存在。

More...

ansj_seg中文分词实例

作者: blogchong | 分类: 原创-数据挖掘 | 评论:1人 | 浏览:

首先介绍一下这个开源分词软件

以下摘自原作者的话:

Ansj中文分词是一款纯Java的、主要应用于自然语言处理的、高精度的中文分词工具,目标是“准确、高效、自由地进行中文分词”,可用于人名识别、地名识别、组织机构名识别、多级词性标注、关键词提取、指纹提取等领域,支持行业词典、用户自定义词典。

More...

基本排序算法及其在MapReduce的应用

作者: blogchong | 分类: 原创-数据挖掘 | 评论:1人 | 浏览:

1 文档说明

该文档为学习基本排序算法过程中的学习笔记,大部分内容从网络上其他渠道也能得到,仅用于记录备忘之用。

冒泡、选择、插入三种作为基本的排序算法是必须要掌握的,而在MapReduce的实际应用中。在Map阶段,k-v溢写时,采用的正是快排;而溢出文件的合并使用的则是归并;在Reduce阶段,通过shuffleMap获取的文件进行合并的时候采用的也是归并;最后阶段则使用了堆排作最后的合并过程。

More...

二叉树前中后序遍历及其推导

作者: blogchong | 分类: 原创-数据挖掘 | 评论:0人 | 浏览:

1 文档说明

该文档仅作为二叉树学习的笔记记录,包括了前中后序的遍历算法,根据前序中序推导二叉树,或者根据中序后序推导二叉树。

2 二叉树的前中后序遍历算法

//采用递归的方式进行二叉树的遍历

More...

挖掘算法(1)朴素贝叶斯算法

作者: blogchong | 分类: 原创-数据挖掘 | 评论:0人 | 浏览:

1 文档说明

该文档为朴素贝叶斯算法的介绍和分析文档,并且结合应用实例进行了详细的讲解。

其实朴素贝叶斯的概念以及流程都被写烂了,之所以写这些是方便做个整理,记录备忘。而实例部分进行了详细的描述,网络上该实例比较简单,没有过程。

至于最后部分,则是对朴素贝叶斯的一个扩展了,当然只是简单的描述了一下过程,其中涉及到的中文分词以及TFIDF算法,有时间再具体补上。

 

More...