代码改变世界

Searcharoo源码学习日志(二)

2009-10-08 02:19 by Yin.P, 1756 阅读, 1 推荐, 收藏, 编辑
摘要:Searcharoo第二版相对第一版做了很多改动,如将之前的基于当前站点的文件索引换成了基于Internet的网络爬行器、新增了HtmlDocument对象作为中间文档对象用于暂存文档信息、增加对已访问页面的判断处理、新增使用HttpWebRequest对象去获取Internet文档内容、新增去除页面内容中的脚本块样式块等功能。 阅读全文

Searcharoo源码学习日志(一)

2009-10-06 18:10 by Yin.P, 2344 阅读, 0 推荐, 收藏, 编辑
摘要:Searcharoo源码学习系列文章将会对这套开源搜索引擎的各个版本(主要是前几个版本,因为关于搜索技术的变化更新主要体现在前几个版本,后面的版本主要是一些扩展和展现方式的改进)源代码进行简单的介绍,包括组成这个搜索引擎的各部分及其在各版本中的发展过程。从上一篇文章中我们可以大概了解到Searcharoo是一套比较简单且易于上手学习的搜索引擎开源项目。从这篇文章开始我们就要从细节来学习这套搜索引擎源代码。 阅读全文

Searcharoo —— 一个适合学习研究的搜索引擎项目

2009-09-29 21:49 by Yin.P, 1133 阅读, 1 推荐, 收藏, 编辑
摘要:这次我要介绍一套开源的搜索引擎项目,名字为Searcharoo,这个项目来自CodeProject,同时也有自己的一个网站(http://www.searcharoo.net/),在网站中可以下载其源码也可以看到每个版本间演化的详细介绍。这套搜索引擎不像Lucene和Nutch那样复杂,代码少很多,因此我认为它非常适合用于初学搜索技术。 阅读全文

基于Lucene.NET的文件搜索工具

2009-06-16 00:34 by Yin.P, 3238 阅读, 0 推荐, 收藏, 编辑
摘要:本文要介绍的是利用Lucene.NET写的一个简单的文档搜索器。实现最基本的索引和搜索功能。编写这个小工具的初衷之一是因为我收集的专业资料文档越来越多,有时想要在计算机中找到自己想要的文档却不知道自己之前把那些资料放到了什么地方,而且现在的硬盘越来越大,目录结构也越来越复杂,常常要花很多时间去查找自己想要的资料。有了这个搜索工具,只要定期重新建立索引,就可以方便快速地找到自己想要的东西,其次是因为正好这段时间想花时间了解一下Lucene.NET这个开源库学习一下搜索引擎的原理 阅读全文

MDX Procedure Based on .NET

2009-06-11 00:48 by Yin.P, 668 阅读, 0 推荐, 收藏, 编辑
摘要:MDX script in SSAS provides strong functions for multidimensional data analysis, however many problems are hard to solve with MDX actually. Because not all the problems can be cope with MDX script. In other words, these problems will be solved by coding way easily. MDX procedure is supported by all the .NET languages.The .NET MDX procedure can be used when a assembly that contain the specific procedure is deployed into the analysis server or multidimensional dataset. It is a demo .NET MDX proced 阅读全文

Debug MDX Procedure Based .NET in Visual Studio

2009-05-30 23:48 by Yin.P, 406 阅读, 0 推荐, 收藏, 编辑
摘要:It's really a piece of cake to debug MDX procedure in Visual Studio. It will be done just in only a few steps. In Visual Studio 2010(the same to VS2005 and VS2008), you should attach the MDX procedure project to the Analysis Service process(msmdsrv.exe), and then the assemblies which are needed will be loaded automatically. The specific MDX procedure will also be loaded by Analysis Service. 阅读全文

调试.NET的MDX存储过程

2009-05-26 21:18 by Yin.P, 1161 阅读, 0 推荐, 收藏, 编辑
摘要:在Visual Studio中调试MDX存储过程非常简单,只要几步设置就可以实现。对于Visual Studio 2010(与VS2005和VS2008的设置方法相同)。在Visual Studio中将存储过程项目附加到分析服务器进程(msmdsrv.exe进程),附加进程之后它会自动加载程序集 阅读全文

利用.NET扩展MDX存储过程

2009-05-26 21:17 by Yin.P, 1604 阅读, 1 推荐, 收藏, 编辑
摘要:SSAS的MDX脚本提供了强大的数据分析查询功能,然而在实际使用中同样会遇到一些问题使得用MDX来表达比较困难,因为MDX并不能提供满足年有数据分析需求的函数,这个时候可以尝试通过基于.NET的存储过程以编程的方式来完成我们特定的功能需求。基于.NET的MDX存储过程支持所有基于.NET平台的编程语言。 阅读全文

对Weka中DBSCAN算法的分析以及在C#中的实现

2009-05-22 20:43 by Yin.P, 4510 阅读, 1 推荐, 收藏, 编辑
摘要:DBSCAN算法是常用的数据挖掘算法。所有的聚类方法分为若干类型,前面讨论过的KMEANS算法是基于划分的方法进行聚类,而这次提到的DBSCAN算法是基于密度的方法。当然其它的还有基于层次凝聚和分裂的方法、基于模型的方法等。我先对Weka中实现的DBSCAN算法进行一个介绍和分析,然后再给出我自己的实现方法。但是在这之前要解释几个概念,如果之前没有了解过这个算法的话,最好是先熟悉几个概念:epsilon-邻域、核心对象、(直接)密度可达、密度相连,这些概念可以在《数据挖掘概念与技术》一书中找到,了解这些概念对理解这个算法来说是很重要的。 阅读全文

文本向量表示及TFIDF词汇权值

2009-05-14 23:16 by Yin.P, 4548 阅读, 1 推荐, 收藏, 编辑
摘要:文本相似计算是进行文本聚类的基础,和传统结构化数值数据的聚类方法类似,文本聚类是通过计算文本之间"距离"来表示文本之间的相似度并产生聚类。文本相似度的常用计算方法有余弦定理和Jaccard系数。但是文本数据与普通的数值数据或类属数据不同,文本数据是一种半结构化数据,在进行文本挖掘之前必须要对文本数据源进行处理,如分词、向量化表示等,其目的就是使用量化的数值来表达这些半结构化的文本数据。使其适用于分析计算。 阅读全文

聚类基本数学模型

2009-04-11 16:23 by Yin.P, 3656 阅读, 0 推荐, 收藏, 编辑
摘要:聚类方法是一类用途非常广泛的算法,聚类包含很多各式各样的算法。所有这些算法都有它的基本数学模型。本文就简单介绍一下聚类的基本数学模型。了解了基本数学模型就了解了聚类最本质的原理。无论是学习算法还是自己开发新的算法,学习基本数学模型都是很有帮助的。本文的目的一方面是介绍数学模型,另一方面也算是自己学习内容的一个记录吧。 阅读全文

SQL Server 2005 Analysis Services数据挖掘算法扩展方法

2009-03-05 21:58 by Yin.P, 2780 阅读, 1 推荐, 收藏, 编辑
摘要:本文是对英文原文SQL Server Data Mining Managed Plug-In Algorithms Tutorial的部分翻译及整理,主要是描述SSAS数据挖掘算法的基本扩展方法和开发过程。本文的内容只是原文的一部分,如果想了解更多信息可以下载原文。英文原文可以在附件或这里下载。 SSAS为我们提供了九种数据挖掘算法,但是在应用中我们需要根据实际问题设计适当的算法,这个时候就需要扩展SSAS,使它能应用更多的算法,SSAS有比较好的可扩展性,它提供了一个完整的机制来进行扩展,只要继承一些类并按适当的方法进行注册就可以在SSAS中使用自己的算法了。下面我将通过实例分别用几篇文章来介绍一下如何开发SSAS算法插件。本文介绍的算法插件开发方法是基于托管代码的,是用C#开发的(算法插件也可以用C++开发,并且SQLSERVER2005的案例中附带C++版本的代码stub)。整个过程大至为六个步骤。在开始开发之前需要做一些准备工作,就是要去下载一个用C++编写的COM组件,叫DMPluginWrapper(可以通过下载本文附带的附件获得),它作为SSAS与算法插件的中间层 阅读全文

MDX中TopN函数的使用

2009-02-04 01:06 by Yin.P, 1827 阅读, 0 推荐, 收藏, 编辑
摘要:MDX中的TopN函数是指一类函数,这类函数的作用是从一个集合中选择出满足某个阈值或百分比的元组集合。本文主要介绍TopSum, BottomSum, TopPercent和BottomSum函数。 在实际应用中我们可能会遇到一些需求,需要我们回答类似于"最少销售哪些产品或销售多少产品才能使销量(销售额)达到某个值"、"销售量在前xx%的产品所属的产品分类有哪些"、"客户贡献在前xx%的客户中,对每一个客户,其购买的前xx%的产品所属的产品分类有哪些"等这样的问题。这些问题在MDX中都可以通过TopN系列函数来解决。 阅读全文

KMeans算法演示程序

2009-02-02 11:36 by Yin.P, 8832 阅读, 1 推荐, 收藏, 编辑
摘要:这几天又把《数据挖掘概念与技术》这本书翻出来看了看,随便做了个演示程序实现了书中的K-Means算法。也算是一种复习和积累吧。最先这个算法完全是用C#来做的,数据样本点是用的类作为其数据结构,后来在测试中发现运行速度不太理想。就改为用C++实现算法本身,然后通过C#调用(P\Invoke)C++导出的函数来完成。最终的效果如下面的图所示 阅读全文

Using Alias in MDX

2009-01-26 01:50 by Yin.P, 1439 阅读, 0 推荐, 收藏, 编辑
摘要:Just like in SQL, the alias can also be used in MDX. By using alias in MDX, we can make the query to be simpler and clearer, and improve the performance of the query. Because the parts are contained by the alias would be just executed once, and the results would be cached. In addition some errors will rise if you don't use alias. 阅读全文

在MDX中使用别名

2009-01-25 19:06 by Yin.P, 2139 阅读, 0 推荐, 收藏, 编辑
摘要:别名几乎可以使用在MDX查询的任何地方。通过使用别名可使复杂的MDX查询变得简单,使MDX的结构变得更加清晰,提高MDX查询内的复用性。因为别名中包含的计算只会执行一次,其结果会被缓存,所以在MDX中适当的使用别名可以有效地提高MDX的执行效率。除此之外,在有的场合如果不使用别名甚至会导致MDX查询出错误的结果。 阅读全文

商业智能工具KNIME

2009-01-11 02:46 by Yin.P, 6619 阅读, 2 推荐, 收藏, 编辑
摘要:KNIME是基于Eclipse环境的开源商业智能工具。KNIME开发环境如图一. 从图中可以看出KNIME是通过工作流来控制数据的集成、清洗、转换、过滤,再到统计、数据挖掘,最后是数据的可视化。整个开发都在可视化的环境下进行,通过简单的拖曳和设置就可以完成一个流程的开发。通过KNIME的白皮书得知KNIME的全称是The Konstanz Information Miner。它的设计目的是用于教学、研究以及协同工作的平台。 阅读全文

用MDX进行同比及环比计算

2008-12-21 00:38 by Yin.P, 3542 阅读, 2 推荐, 收藏, 编辑
摘要:同比和环比计算是企业应用、电子商务应用中常用的计算方法,也是常用的数据分析手段。写这篇文章也是因为最近在学习MDX相关的一些计算方法的同时回想到原来我在项目中使用过的一些类似的,利用SQL来完成的统计计算,如前期和当期的差额,趋势等。比较之下,利用MDX来完成这些计算比用SQL来做要简单清晰得多,当然这是毫无疑问的。原来利用几十行甚至上百行SQL来完成的计算(有时还要借助程序代码来完成计算)现在用MDX只要十几行左右就可以完成。因此,MDX所带来的好处是很明显的。本文就主要介绍利用MDX进行同比和环比计算。 阅读全文

The imagination about the development of BI in the future

2008-12-14 01:13 by Yin.P, 334 阅读, 0 推荐, 收藏, 编辑
摘要:Recently, I surfed on the internet, and read some blog about BI technology. Having done that, a concept was born in my mind by connecting to some ideas of my. The reason why I told this as 'imagination' is that the ideas were told in this article are just some flash thinking. Maybe these ideas are not feasible. Maybe they are just utopia. Anyway, these ideas had already built. Why not to record them? 阅读全文

维度用法设置不当导致的数据无法正确聚合的问题及解决

2008-12-10 22:31 by Yin.P, 1807 阅读, 1 推荐, 收藏, 编辑
摘要: 这几天在学习过程中出现了一个数据无法正确聚合的问题。花了很多时间去分析MDX代码都没有发现什么问题,最后在网上询问后才发现问题出在数据立方那里...由图三中的矩阵可见[Warehouse]维度与[Sales]度量值组之间是没有关联的,所以无法通过[Warehouse]维度来聚合数据,而[Product]维度和[Sales]度量值组之间有常规的关联,所以第二段代码可以正确地计算。由此可以看出,维度用法设置会影响查询的正确性。维度用法中有常规、多对多、引用、数据挖掘等这些类型的关联。 阅读全文