从WekaWiki上的一个文本聚类的示例开始(2)
来源:互联网 发布:linux tar解压命令 编辑:程序博客网 时间:2024/06/03 22:41
上一篇文章介绍了一个简单的预处理过程,这篇文章将继续演示下一步:用 weka 的 Filter 提取特征。
Weka 处理数据的格式是 arff,所以首先我们要把 text_example 转换成 该格式,这里要用到 weka.core.converters.TextDirectoryLoader 这个类。运行下面这行语句。
java -classpath $WEKAROOT/weka.jar weka.core.converters.TextDirectoryLoader -dir $WEKAROOT/data/text_example > ~/text_example.arff
其中 -classpath 指明了 weka.jar 文件的路径,-dir 指明了要转换的文件夹路径,最后把结果定向输出到 text_example.arff 文件。
我把转换完成的 arff 文件上传到了百度云:http://pan.baidu.com/s/1bzJAB
按照 WekaWiki 的说法有了 arff 文件后就可以用 J48 分类器对文档进行分类。其中用了两个 Filter,一个是 StringToWordVector ,这个过滤器后面再细说。另一个过滤器叫Record,它可以对样本的维度重新排序,设置配置参数 2-last,first,表示把第一个维度(first)移到最后面去,weka一般会把最后一个维度当作样本的分类。这里就不采用这个实施方案了,因为样本一共就7个,生成的分类器肯定会过渡拟合的。
不妨对这7篇文档进行聚类。
首先把 arff 文件中class维度删除。然后用 StringToWordVector 过滤器将字符串转成维度。下图是 StringToWordVector 的配置界面:
IDFTransform 表示某个词的反文档概率,其值为 ln (所有文档数 ÷ 包含该词的文档数)
TFTransform 表示某个词的频度, ln(文档中某个词语的频度÷文档长度+1)
如果把上面两个配置项同时置为 True,则最后维度的值的计算方式就变成了 两个 ln 值的乘积了。
要让维度的值变成在文本聚类中常用的 TF×IDF(http://zh.wikipedia.org/wiki/TF-IDF) 值,我们应该把 TFTransform置为False,把IDFTransform置为True,然后把OutputWordsCount 这个配置项也置为True,这样最后维度值就变成了 某词对于某文档的词频×IDF 即 TF×IDF。(如果想做得更好,可以把词在文档中的位置也考虑进来)
stemmer表示词干提取,stopwords表示停用词。
wordsToKeep 表示对于每个 arff 中的 string (比如 text_example中有 7 篇文档,即7个string,arff 中每一对引号中的字符串被认为是一个string)把其中词频大于 minTermFreq 值的前wordsToKeep 个词语保留作维度。由于是对每个arff 中的string 作保留,所以最后得到的维度数目通常大于我们设置的wordsToKeep 值。
- 从WekaWiki上的一个文本聚类的示例开始(2)
- 从WekaWiki上的一个文本聚类的示例开始(1)
- 从WekaWiki上的一个文本聚类的示例开始(3)
- 一个新的开始,从现在开始!
- 从一个简单的示例,我们开始进入Mybatis的世界!
- 1、从一个疯狂的想法开始
- 外遇 从一个暧昧的感觉开始
- 获取一个文本上每个字符出现的次数,将结果写在自定义的文本上(times.txt)
- 从今天开始,启用csdn上的blog
- 从几天开始,在Csdn的blog上安家了。
- 开始的开始,从这里开始!
- 从今天起开始做一个真正的BLOGER
- 从现在开始,做一个勤奋的人……
- 从今天开始...将出现一个崭新的我!
- 从今天开始写一个WM平台的账本软件
- 从明天开始,做一个简单的人
- 计算机的启动-从设计一个主板开始
- 从今天开始 给自己一个新的target
- 传递数据的游戏,一些常用的伎俩
- Android 混淆代码学习以及Android加密工具--APKProtect的使用
- 重建、合并、删除索引
- /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
- Liunx每日一问】在Linux中,如何结束多个进程
- 从WekaWiki上的一个文本聚类的示例开始(2)
- sql server 2008 r2 restore DB返回error 5
- JS: Casting string to Date
- 第一部分:Twisted理论基础
- hadoop两表join相关
- 两种最远曼哈顿距离模板
- 第二部分:异步编程初探与reactor模式
- 第28期状元简讯:百度首款金融产品月底上线 或将与支付产品打通
- 第三部分:初步认识Twisted