java weka 聚类_简单开源数据挖掘工具weka进行文本聚类

目前非代码的数据挖掘工具很多,但非开源,weka是一款开源软件。只要安装jdk环境就可使用(具体安装jdk可以百度)

本文将论述如何不用代码,使用weka操作,通过与文档频数与单词权的特征选择方法进行文本聚类(数据为附件)

第一步:将weka创建NetBeans文件目录中

将weka导入NetBeans软件中,

1 在某处新建一个WEKA-Rebuild目录,在它下面建一个目录叫src。在WEKA的安装目录中找到weka-src.jar,用winrar之类的解压缩软件打开,并把其中的目录weka解压缩到刚才建立的src目录下。 现在的目录结构应该是 WEKA-Rebuild -> src-> weka -> associations, attributeSelection, ... 打开NetBeans,“文件”菜单 - “新建项目” - 选择“常规”中的“基于现有源代码的Java项目” - “下一步”。“项目文件夹”选择WEKA-Rebuild目录,“项目名称”写weka-rebuild, “下一步”。在“源包文件夹”那里“添加文件夹”,找到src目录“打开”,“完成”。

2现在NetBeans左上方项目那一栏应该有粗体的“weka-rebuild”,这就是我们要编译的weka项目。右键点它,“生成项目”。下方会出现很多警告,不用管,不出意外的话最后会提示你生成项目成功。仍然右键点击“weka-rebuild”,“运行项目”。会弹出一个对话框让你设置主类。WEKA的主类可设置成weka.gui.Main。选中合适的主类后“确定”,不一会儿WEKA的界面就会出现在你面前,和开始菜单里运行的WEKA效果一样。

打开NetBeans软件。点击源包-weka.gui.,找到Main.java文件。双击,结果如下图所示。

75db1d3cb3b4746bf3ee489da4144cad.png

3f296b2fed50d12febf950849471bebe.png

第二步:执行weka

1.点击 源包-weka core tokenizers,右键 选择 新建java类。

修改类名为:CHWordTokenizer

选择包为:weka core tokenizers

点击完成 。结果见下图。

7bcc6bd828901bbd45fb76d11dbc4920.png

2.修改代码。将已给资料中的代码复制到文本中。

并将原橘黄色部分“Utf-8”改成“cp936”。如下图所示。

329e56bb721d3ba3602d4dd330cda769.png

3.点开之前已经打开过的Main.java界面

点击 运行-运行文件

出现下图所示界面。

7b4f2671c120172d96a51a21abec05eb.png

在该界面中,点击 application-explorer。返回weka界面,点击open file,载进中文文档。

第三步:创建中文文本文件。

1.将已有中文文本资料 sample 文件夹放入D盘。

2.打开weka - SimpleCLI。

5449b62c062a0d20db0e3c658808e7a8.png

3.在输入栏输入 【java weka.core.converters.TextDirectoryLoader-dir d:/sample > d:/sample.arff】点击回车键运行。如下图所示。

08d204e8ac7b7b72c2a144db4215fd7f.png

4.D盘出现sample.arff文件。

5.打开C盘weka的安装文件夹,找到RunWeka.ini文件

将cp1252替换成cp936(简体中文)

保存文件

41fb3b3b36ac174fe10adf888d62bce2.png

d67bd3314d694779f25b4685328ca7e2.png

第四步:改分词。

1.打开 weka-explorer-open file-sample .arff

2.Filter-choose-unsupervised-attribute-StringToWordVector

23cf4f8d8330db2bd6b13eb4587ff804.png

e10dd0e5c973b4c23299232db69e495e.png

将 tokenizer 改成 CHWordTokenizer

点击ok

ef21c4fc346abd3d11bcbb6f89af5e2a.png

4.点击apply,点击save,查看word形式(命名:sampleword1)的成果。

fb6afa27b66a997e712eae4e7a61636b.png

2c6c3e2bebb2fa4d9bc3f2e0d40aa0cc.png

再次打开Filter-choose-unsupervised-attribute-StringToWordVector

双击修改 StringToWordVector 的参数。

将 IDFTransform 改为 True (调平滑)

outputWordCounts 改为 True

minTermFreq改为 1

wordToKeep 改为 200

点击 OK 运行

e9cf5c79bd65c29e25dedaacafbeb6f6.png

7.点击apply,点击save,查看word形式(命名:sampleword2)的成果。

8.由下图可以看出,第1个的权重变成1。660731,第2个权重是2.040221,第5个权重是2.278869……

权重结果和sampleword1 不同。

0b9b9c148ac2503edc7e8cb90bd8478e.png

9.返回weka,重新加载sample.arff原始文件

10.点击 Cluster-simpleMeans,双击调整参数。

68d9f8daed803b8b77050549bbb050d9.png

11.点击 distanceFunction ,选择第二项 欧氏距离。

将 numClusters 改为 10

点击OK

1dd54f2363abe663d9aaf9f6b5d2d050.png

9913fd757f038cf462ae00008308c405.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 不识别enum_Java enum关键字不识别的快速解决办法

从别人那儿拷贝过来的myeclipse java工程,打开一看标红了一大片,仔细一看,原来是不识别enum关键字,这就有点尴尬了。我自己重新建了一个java工程,测试了下,假如我在新建工程的时候选择javase-1.6&#xff1…

【转】ABP源码分析四:Configuration

核心模块的配置 Configuration是ABP中设计比较巧妙的地方。其通过AbpStartupConfiguration,Castle的依赖注入,Dictionary对象和扩展方法很巧妙的实现了配置中心化。配置中心化是一个支持模块开发的框架必备功能。 ABP中核心功能模块中的一些功能的运行时…

【转】ABP源码分析五:ABP初始化全过程

ABP在初始化阶段做了哪些操作,前面的四篇文章大致描述了一下。 为个更清楚的描述其脉络,做了张流程图以辅助说明。其中每一步都涉及很多细节,难以在一张图中全部表现出来。每一步的细节(会涉及到较多接口,类&#xff0…

【转】ABP源码分析六:依赖注入的实现

ABP的依赖注入的实现有一个本质两个途径:1.本质上是依赖于Castle这个老牌依赖注入的框架。2.一种实现途径是通过实现IConventionalDependencyRegistrar的实例定义注入的约定(规则),然后通过IocManager来读取这个规则完成依赖注入。…

【转】ABP源码分析七:Setting 以及 Mail

本文主要说明Setting的实现以及Mail这个功能模块如何使用Setting. 首先区分一下ABP中的Setting和Configuration。 Setting一般用于需要通过外部配置文件(或数据库)设置的简单类型数据(一般就是字符串),比如SMTP HOST.…

【转】ABP源码分析八:Logger集成

ABP使用Castle日志记录工具,并且可以使用不同的日志类库,比如:Log4Net, NLog, Serilog... 等等。对于所有的日志类库,Castle提供了一个通用的接口来实现,我们可以很方便的处理各种特殊的日志库,而且当业务需…

java并发锁获取的方式_Java精通并发-notify方法详解及线程获取锁的方式分析

wait():在上一次https://www.cnblogs.com/webor2006/p/11404521.html中对于无参数的wait()方法的javadoc进行了解读,而它是调用了一个参数的重载方法,回忆下:其中如果传0代表无限等待,否则是等待指定的时间就会停止等待…

【转】ABP源码分析九:后台工作任务

文主要说明ABP中后台工作者模块(BackgroundWorker)的实现方式,和后台工作模块(BackgroundJob)。ABP通过BackgroundWorkerManager来管理BackgroundJobManager,然后通过BackgroundJobManager来管理Background…

【转】ABP源码分析十:Unit Of Work

ABP以AOP的方式实现UnitOfWork功能。通过UnitOfWorkRegistrar将UnitOfWorkInterceptor在某个类被注册到IOCContainner的时候,一并添加到该类在容器中对应的ComponentModel的Interceptors集合中。总结一句话就是,UOW的功能是通过自定义Castle拦截器来实现…

【转】ABP源码分析十一:Timing

Timing这个简单实用的功能主要用来以统一的方式表示时间。因为ABP中有大量的module,另外还支持自定义module,所以将时间统一表示为local时间(默认)或utc时间是必要的。 IClockProvider:提供获取当前时间和标准化时间的接口。 UtcClockProvide…

【转】ABP源码分析十二:本地化

本文逐个分析ABP中涉及到localization的接口和类,以及他们之间的关系。本地化主要涉及两个方面:一个是语言(Language)的管理,这部分相对简单。另一个是语言对应得本地化资源(Localization)的管理…

【转】ABP源码分析十三:缓存Cache实现

ABP中有两种cache的实现方式:MemoryCache 和 RedisCache. 如下图,两者都继承自ICache接口(准确说是CacheBase抽象类)。ABP核心模块封装了MemoryCache 来实现ABP中的默认缓存功能。 Abp.RedisCache这个模块封装RedisCache来实现缓存…

java 酒店预定 app_Android应用源码酒店在线预定app项目全套

【实例简介】Android应用源码酒店在线预定app项目全套【实例截图】【核心代码】package com.bn.summer;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;…

【转】ABP源码分析十四:Entity的设计

IEntity<TPrimaryKey>: 封装了PrimaryKey&#xff1a;Id,这是一个泛型类型 IEntity: 封装了PrimaryKey&#xff1a;Id,这是一个int类型 Entity<TPrimaryKey> &#xff1a;支持主键是泛型类型的Entity Entity&#xff1a;支持主键是int类型的Entity IHasCreation…

【转】ABP源码分析十六:DTO的设计

IDTO:空接口&#xff0c;用于标注Dto对象。 ComboboxItemDto&#xff1a;用于combobox/list中Item的DTO NameValueDto<T>/NameValueDto:用于name value键值对的DTO&#xff0c; name为string类型&#xff0c; value为泛型或string类型。 Entity Dto IEntityDto<TPri…

php session 机制,Cookie、Session机制详解及PHP中Session处理

会话机制Cookie/Session&#xff1a;在web应用中&#xff0c;常用的会话追踪机制是Cookie和Session。而Cookie是通过在浏览器里记录确定用户身份&#xff0c;Session在服务器端记录信息确定用户身份。Http协议&#xff1a;http协议本身是无状态的&#xff0c;也就是说我们无法通…

【转】ABP源码分析十七:DTO 自动校验的实现

对传给Application service对象中的方法的DTO参数&#xff0c;ABP都会在方法真正执行前自动完成validation&#xff08;根据标注到DTO对象中的validate规则&#xff09;。 ABP是如何做到的? 思路无外乎通过Castle的拦截器实现AOP。本文主要分析ABP是如何设计。 Ivalidate: 空…

【转】ABP源码分析十八:UI Inputs

以下图中描述的接口和类都在Abp项目的Runtime/Validation, UI/Inputs目录下的。在当前版本的ABP&#xff08;0.83&#xff09;中这些接口和类并没有实际使用到。阅读代码时可以忽略&#xff0c;无需浪费时间去寻找其是如何被ABP使用的(本文的目的)。 这些接口和类最终都是通过…

【转】ABP源码分析十九:Auditing

审计跟踪&#xff08;也叫审计日志&#xff09;是与安全相关的按照时间顺序的记录&#xff0c;它们提供了活动序列的文档证据&#xff0c;这些活动序列可以在任何时间影响一个特定的操作。 AuditInfo&#xff1a;定义如下图中需要被Audit的信息。 AuditedAttribute&#xff1a;…

【转】WebServices:WSDL的结构分析

WSDL&#xff08;Web Services Description Language&#xff0c;Web服务描述语言&#xff09;是为描述Web Services发布的XML格式。W3C组织没有批准1.1版的WSDL&#xff0c;但是2.0版本已经在製訂中&#xff0c;2.0版将被作为推荐标准&#xff08;recommendation&#xff09;&…