我想在WEKA GUI中使用带有TF-IDF的KNN算法。首先,我在默认条件下运行算法。其次我在StringToWordVector过滤器中选择“IDFTransform”和“TFTransform”为“true”并运行。
两个结果中存在无差异。
结果1:
Correctly Classified Instances 1346 91.3781 %
结果2:
Correctly Classified Instances 1346 91.3781 %
我的“.arff”文件如下:
@relation et9
@attribute 'alis' real
@attribute 'banka' real
...
@attribute 'urun' real
@attribute 'class' {yes, no}
@data
70,0,0,0,3,0,40,0,3,1,0,0,20,0,717,2,4,0,0,0,2,5,0,0,0,717,0,1,0,30,yes
22,0,0,63,158,0,1,0,7,0,10,0,4,0,57,0,0,0,0,204,0,0,2,2,0,530,0,0,6,0,yes
0,0,1,0,0,0,0,0,2,1,3,0,0,0,0,0,5,0,0,0,0,0,2,1,0,0,0,0,0,0,no
...
我知道StringToWordVector用于字符串。但我想为这个“.arff”文件计算TF-IDF。 如何使用我当前的“.arff”文件并使用TF-IDF获得KNN算法结果?
(这是我的学术工作。请帮忙......)
答案 0 :(得分:2)
根据Weka的文档,StringToWordVector过滤器“将字符串属性转换为表示单词出现的一组属性 [...]”。因此,将此筛选器应用于不包含任何String属性的arff文件将不会对数据集产生任何影响。
为了使用此过滤器,您需要准备一个包含String属性的arff文件,其中此属性的值是给定实例的文本。例如,如果每个实例代表一条推文,则推文中的文本将是此String属性的值。有关在weka中处理文本的更多信息,请记录here。