算法
着凉的石头
持续学习持续成长
展开
-
基于Density Based Selection 的文本摘要算法
摘要算法目前的实现基本上是从正文选择有代表性的句子或段落形成文章的摘要。一般是先抽取关键词,然后计算关键词的权重,根据关键词在文章中的出现位置来计算最短摘要,详情可以看下编程之美的最短摘要算法,这里介绍下基于密度的摘要算法,首先是将文章按照句子分隔,对每一个句子计算权重,然后根据句子的权重来选择哪个句子作为摘要,影响句子的权重的主要特征有句子和标题的一致性,句子在文章和段落的位置,句子的长短,句子和文章关键词的一致性等。以下算法是计算句子和文章关键词的一致性算法,代码比较简单但是没有经过验证,只是简单的描述原创 2013-10-14 00:26:23 · 3036 阅读 · 1 评论 -
KMean聚类算法及其改进
KMean聚类算法是一种比较简单而且常用的聚类算法,该算法有以下特点:聚类数目的一定的;选择一个样本的最近聚类时,需要将所有聚类的距离都计算一遍,然后选择最近的聚类作为该样本所属的类别,考虑到以上特点,会存在以下问题:首先,如果对数据样本集合不了解,K的选择会有一定的随机性,K的选择关乎聚类质量和计算效率,其次,与所有聚类集合都进行计算,这原创 2013-09-15 12:33:31 · 2537 阅读 · 0 评论 -
倒排索引-Indexing Boolean Expressions
在搜索领域,索引是一项非常重要的技术,直接影响到查询的效率,其基本的流程是:文章先进行分词、计算权重,然后利用词和文档的信息建立倒排索引,在查询的时候,得到符合条件的文档的id集合,然后利用正排索引返回文档的详细信息,在计算广告中,广告主通常会定义广告投放的条件,这些条件时通过布尔表达式来定义的。原创 2013-11-11 08:33:42 · 4143 阅读 · 1 评论 -
新闻去重算法的设计和实现
之前有介绍过大规模去重算法的设计,可惜没有办法付诸实现,主要是因为没有相应的应用场景,还是停留在纸上谈兵的阶段!这里简单的介绍下新闻去重算法的实现,客户端在基于yahoo shingle算法的基础上进行了封装,便于采用服务的方式来进行调用,这样比较容易进行复用和提高扩展性,利用thrift来进行跨语言的通信,客户端采用Java实现,原有的设计是服务端既提供计算的接口,即根据文本计算它的shingl原创 2014-02-25 22:09:21 · 2962 阅读 · 0 评论 -
streaming kmean cluster 聚类算法实现和分析
主要介绍下streaming kmeans的算法思想,虽然项目中没有用到,但其中的思想还是很有借鉴意义的,感兴趣的可以搜论文原文看看。从streaming可以看出,算法是基于流式的,文件中的数据只参与计算一次,算法对加入一篇文档到新的类别和产生新类的代价分别进行评估,当满足一定的阈值才会将文档添加到聚类中去或者产生新的聚类。算法和常见的kmeans算法主要有如下区别:原创 2013-10-14 23:50:00 · 3963 阅读 · 0 评论 -
Kmeans的改进-kmeans++算法的聚类中心初始点选取和蓄水池采样算法
kmeans算法存在的一个问题是初始中心的选取是随机的,造成聚类的结果也是随机的,一般的做法是进行多次重复整个聚类过程,然后选取聚类效果好的。Kmeans++算法可以很好的解决初始点的选取问题,本文简单进行了总结和实现,并结合kmeans++算法提到了蓄水池算法在ClouderaML中的两个应用。原创 2014-02-15 18:17:10 · 8032 阅读 · 1 评论