Newsgroup18828文本分类器、文本聚类器、关联分析频繁模式挖掘算法的Java实现工程下载及运行FAQ

Newsgroup18828文本分类器、文本聚类器、关联分析频繁模式挖掘算法的Java实现系列5篇博文自发表半年多来,累计浏览量近万次,Eclipse工程下载累计近千次,受到了很多朋友的关注,如果能给各位数据挖掘入门学习带来一些帮助本人感到很高兴。有很多朋友阅读代码成功运行工程输出了博文中展示的文本分类及聚类结果,但是有的朋友遇到编译失败或者配置路径错误等问题,半年来我也收到很多站内信和评论询问这几个JAVA工程的编译运行和路径配置问题,这里我统一就常见问题做下FAQ。 

数据挖掘-基于贝叶斯算法及KNN算法的newsgroup18828文档分类器的JAVA实现(上)

数据挖掘-基于贝叶斯算法及KNN算法的newsgroup18828文档分类器的JAVA实现(下)

数据挖掘-基于Kmeans算法、MBSAS算法及DBSCAN算法的newsgroup18828文本聚类器的JAVA实现(上)

数据挖掘-基于Kmeans算法、MBSAS算法及DBSCAN算法的newsgroup18828文本聚类器的JAVA实现(下)

数据挖掘-关联分析频繁模式挖掘Apriori、FP-Growth及Eclat算法的JAVA及C++实现

数据挖掘—决策树ID3分类算法的C++实现

为解决上传CSDN代码无法更新维护的问题,推出本人的Github代码托管地址:https://github.com/yangliuy, 今后本博客所有涉及项目代码均开源在Github上面维护,欢迎网友关注,贡献code。

本人近期维护的项目 LDA Gibbs Sampling的JAVA实现  https://github.com/yangliuy/LDAGibbsSampling

关于上面数据挖掘分类器、聚类器和频繁模式挖掘完整java工程和数据文件的下载,可以到我上传到CSDN下载频道的资源搜索。例如 http://download.csdn.net/detail/yangliuy/4252875 是数据挖掘-关联分析频繁模式挖掘Apriori、FP-Growth及Eclat算法的JAVA及C++实现的完整源代码和数据文件的下载地址,其他资源用文章title关键字也可以在CSDN下载频道搜索出来。我也在我的github上传了源代码。


1、关于文本分类、文本聚类和频繁模式挖掘java工程的补充说明

首先要说明的是这三个项目是平时的课程作业,在某些方面较工业级的工程应用系统的要求还有很多不足,比如路径使用的绝对路径,没有统一用静态类管理路径,算法实现某些地方的效率需要提升等等。当然这三个工程也是仅仅定位于供网友数据挖掘学习入门之用,如果真正要做非常完善的文本分类、文本聚类系统,在所有细节都尽善尽美,恐怕所花时间精力会是数倍,这也不是本人的初衷,目前开源的数据挖掘程序如Weka都已经做得比较完善。另外CSDN下载频道无法更新上传资源和资源的说明,自己不能评论自己的资源,因此我没法在原有资源加入补充说明,所以如果有网友运行工程出现配置问题,还请海涵(最新项目代码维护地址见Github https://github.com/yangliuy)。其实这三个工程都是数据挖掘入门级算法的实现,代码实现都很简单,而且我写代码的时候尽可能详细的加入了注释,因此如果遇到问题的网友静下心来看一看代码,哪怕只看看几个最重要的函数写法,很多问题都应该不是问题。这也就是为什么有的人可以运行出结果,理解程序实现的原理,有的人遇到问题不知所措的原因。


2、关于路径配置错误的问题

出现这个错误与我当时写程序时对路径的处理有关,采用的绝对路径,而且没有用静态类把路径统一管理起来。有朋友反映“我没有F盘”或者“为啥出现找不到XXX文件错误”,这里集中说明如下:

我上传的工程里面有一张图片是“F盘DataMiningSample目录下子目录的结构”,图片里面显示的是我做实验时所有数据文件的存放文件夹,但是其中有两个文件夹名称显示不全,在此我贴出一张更加详细清楚的数据文件夹目录图

对其中目录存放内容说明如下

clusterTestSample目录 聚类项目的测试数据文件,ComputeWordsVector类下的createTestSamples方法会创建聚类算法的测试文件写入该目录

docVector 目录 存放将文本向量化后生产的文件,向量化主要基于单词的TF-IDF值

exeTest和FPMining目录 在频繁模式挖掘算法实现中使用

KmeansClusterResult目录 存放Kmeans聚类算法的结果,即每个文件聚到了哪个类下

orginSample目录 是原始newsgroup18828文本集解压的目录,里面放置的是原始的newsgroup 文本

processedSample_includeNotSpecial目录 放置预处理后的文本,但是包含了非特征词,即没有根据词频来筛选特征词

processedSampleOnlySpecial目录 放置预处理后的文本,只包含特征词,即已经根据词频来筛选特征词

SNSWizardProject目录  与这三个项目无关,是后面基于机器学习算法的隐私向导项目的数据目录,可以不建这个目录

TestSample*和TrainSample*目录 是分类算法10折交叉验证法策训练数据和测试数据的存放目录

最后要注意把stopwords.txt文件也放在该目录下

有朋友可能问为什么我不直接把这个数据文件夹也上传了,主要是因为数据文件夹非常大,上传到CSDN下载频道不是很合适。

最后建议想学习文本分类、文本聚类、频繁模式挖掘算法的朋友尝试自己实现这些算法,其实挺容易的,自己写一遍,对算法的原理自然就理解深一些了。 

 

3、关于newsgroup 18828下载的问题

newsgroup 18828文本集也比较大,因此我没有上传到工程中,这个文本集大家可以Google newsgroup 18828下载。

 

4、关于程序中某些注释掉的代码,比如预处理被注释掉是怎么回事?

 以分类器主类为例,

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. /**分类器主分类,依次执行数据预处理、朴素贝叶斯分类、KNN分类 *  
  2.  */  
  3. public class ClassifierMain {  
  4.   
  5.     public static void main(String[] args) throws Exception {  
  6.         // TODO Auto-generated method stub  
  7.         //DataPreProcess DataPP = new DataPreProcess();  
  8.         //NaiveBayesianClassifier nbClassifier = new NaiveBayesianClassifier();  
  9.         KNNClassifier knnClassifier = new KNNClassifier();  
  10.         //DataPP.BPPMain(args);  
  11.         //nbClassifier.NaiveBayesianClassifierMain(args);  
  12.         knnClassifier.KNNClassifierMain(args);  
  13.     }  
  14. }  

这个代码里面后面三行分别对应数据预处理、朴素贝叶斯分类、KNN分类。我这里注释掉是因为在我的机器上数据预处理已经完成,为了避免重复执行这个过程,因此我注释掉了这行代码,朴素贝叶斯分类那行代码被注释掉也是同样的原因,这里我只想运行KNN分类的过程。如果从头开始执行代码,是需要从预处理、朴素贝叶斯分类和KNN分类依次进行的。这里其实应该写成让程序自动判断是否执行过预处理,如果执行过就不再重复执行,这也是后面优化改进的方向。

 

如果还有其他问题我以后会一同添加到本博文,欢迎各位交流。后面会尝试用Github来管理新开发的项目,CSDN下载频道维护项目代码实在不合适。总之,这三个项目主要是学习交流之用,建议大家自己实现下相关算法,某些函数的实现可以参考我的代码,但终究只有自己实现过的算法才能真正理解,别人的代码拿来跑一遍往往还是不理解,收效不大,自己写才是硬道理。我最近Focus到了概率语言模型上,暂时也没有时间更新这三个项目,关于三个项目的问题答疑各位可以关注本FAQ的更新。谢谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值