类标签缺失 weka的StringToWordVector类解析
来源:互联网 发布:淘宝卖家一个钻 编辑:程序博客网 时间:2024/06/05 17:49
weka的StringToWordVector类解析
weka的StringToWordVector类可以将给定的文档格式的内容转换为vms模型的内容,而后者是文本分类必须的模块。按照weka要求,生成arff格式的文本:
- @relation D__java_weka_data
- @attribute text string
- @attribute class {test1,test2,test3}
- @data
- 'here we go go go go to do ',test1
- 'Mostly, I expect we are interested in indexing XPath queries',test1
- 'so what do you think you can do anything?',test2
- 'Sparse ARFF files are very similar to ARFF files',test3
按照StringToWordVector类的命令格式,设定options:
- String[] options = { "-C", "-T", "-i", "data//train.arff", "-o","data//res_train.arff", "-c", "last"};
生成结果如下:
- @relation 'D_java_weka_data-weka.filters.unsupervised.attribute.StringToWordVector-R1-W1000-prune-rate-1.0-C-T-N0-stemmerweka.core.stemmers.NullStemmer-M1-tokenizerweka.core.tokenizers.WordTokenizer -delimiters \" \\r\\n\\t.,;:\\\'\\\"()?!\"'
- @attribute class {test1,test2,test3}
- @attribute I numeric
- @attribute Mostly numeric
- @attribute XPath numeric
- @attribute are numeric
- @attribute do numeric
- @attribute expect numeric
- @attribute go numeric
- @attribute here numeric
- @attribute in numeric
- @attribute indexing numeric
- @attribute interested numeric
- @attribute queries numeric
- @attribute to numeric
- @attribute we numeric
- @attribute anything numeric
- @attribute can numeric
- @attribute so numeric
- @attribute think numeric
- @attribute what numeric
- @attribute you numeric
- @attribute ARFF numeric
- @attribute Sparse numeric
- @attribute files numeric
- @attribute similar numeric
- @attribute very numeric
- @data
- {5 0.693147,7 1.609438,8 0.693147,13 0.693147,14 0.693147}
- {1 0.693147,2 0.693147,3 0.693147,4 0.693147,6 0.693147,9 0.693147,10 0.693147,11 0.693147,12 0.693147,14 0.693147}
- {0 test2,5 1.098612,15 0.693147,16 0.693147,17 0.693147,18 0.693147,19 0.693147,20 1.098612}
- {0 test3,4 0.693147,13 0.693147,21 1.098612,22 0.693147,23 1.098612,24 0.693147,25 0.693147}
可以发现在dataset中attribute-class中少了test1的label。
StringToWordVector类在转化过程中经历了如下的步骤:首先将文档中attribute为string的属性,按给定的tokenizer 分词,并生成m_dictionary,可以按照数字 look up word,为了保证最后attribute value的形式统一,对于attribute非string的属性,其值在设定的时候为test1:attribute value = 0; test2: attribute value = 1; test3: attribute value = 2。在转化完成之后,新生成的instance传入SparseInstance,剔除掉value = 0的元素。所以test1的属性段就被剔除了。
究其根本,还是instance 类在设计的时候没考虑好attribute为class的时候,在以后sparse会将其value=0的剔除.
Bug修补方法:
重写SparseInstance方法,指定attribute.value(0)的字段不做sparse,当然这只是暂时的策略,最根本的还是要修改instance类中attribute value的赋值方法,但由于instance类是Weka中核心类,改起来牵扯的地方太多,还是这个方便点。
- 类标签缺失 weka的StringToWordVector类解析
- weka StringToWordVector是如何选择词典的
- weka聚类模型的参数解析
- Weka学习之Filter(2)-StringToWordVector
- Weka学习 -- StringToWordVector 源码学习(1)
- 在java中调用weka聚类方法并显示相应的类标签+weka中创建arff数据
- weka 3.6.13-SNAPSHOT 过滤器StringToWordVector参数含义解释
- Weka 交叉验证相关类的使用
- weka之Evaluation类
- weka支持的算法和weka简单的聚类例子
- weka支持的算法和weka简单的聚类例子
- C++JAVA程序调用weka聚类算法的方法
- Weka聚类算法的两个实现算法
- Weka 3.6下加载libsvm的类包
- Weka聚类算法的两个实现算法
- Java调用weka的各种聚类算法
- weka 聚类算法总结
- WEKA算法解析--ID3
- centos 6.5 升级python到python 2.7.6出现的问题及解决方法汇总[经常更新]
- 后台跟踪代码 跟踪网站是否被黑
- 图片上传之压缩
- 搜索引擎排序算法
- Linux/UNIX进程关系
- 类标签缺失 weka的StringToWordVector类解析
- Point类android.graphics.Point
- python os.path模块常用方法详解
- POJ 2761 Feed the dogs(Treap名次树+离线处理)
- [leetcode] Remove Duplicates from Sorted Array
- ios即时通讯客户端开发之-mac上搭建openfire服务器
- 使用Snoopy进行模拟登陆、采集
- 数据库优化中如何提高SQL查询效率
- Java 8:HashMap的性能提升