目前,我正在使用WEKA开展一个项目。作为天真和新手,有许多事情我并不熟悉。在我的上一个项目中,我使用文本文件作为使用WEKA的分类。我应用了TextDirectoryLoader转换器来转换包含此URL Text categorization with WEKA中提到的文本文件的目录。现在我想使用相同的stretagy来转换包含源代码(而不是文本)的目录。例如,我有一个包含Java源代码的Jedit源文件。我试图将其转换为ARFF文件,以便我可以在该ARFF文件上应用分类器或WEKA中存在的其他函数用于数据挖掘目的。我还尝试了以下网址ARFF files from Text Collections上提供的测试文件。我相信我可以使用相同的文件作为示例来转换源代码文件。但是,我不知道我应该在FastVector中定义什么属性?数据应采用何种格式(字符串或数字)。 ARFF文件可能包含哪些其他部分?
如在示例中作者已定义以下属性
FastVector atts = new FastVector(2);
atts.addElement(new Attribute("filename", (FastVector) null));
atts.addElement(new Attribute("contents", (FastVector) null));
我试图在Google上找到一些例子,但没有成功。
答案 0 :(得分:0)
目前尚不清楚,你的目标是什么?您想要对源代码文件进行分类,还是找到包含任何错误的文件,或者是什么? 正如我想象的那样,您希望从每个源文件中提取功能,并使用实例表示它。然后,您可以应用任何基于机器学习的算法。 在这里,您可以找到一个java示例,如何从java构造一个arff文件: https://weka.wikispaces.com/Creating+an+ARFF+file 但是,您必须定义特定于任务的功能并从每个源代码文件中提取它。