我正在Google中构建一个应用程序(使用Eclipse),其中一个部分使用WEKA 1。这个应用程序需要加载ARFF基础,但这是正常的。这些基所在的目录位于项目的根目录中。下列线路负责装载基地:
1. DataSource source;
2. source = new DataSource("bases/iris.arff");
3. Instances trainInstances = source.getDataSet();
4. trainInstances.setClassIndex(trainInstances.numAttributes() - 1);上面的行是负责执行应用程序的servlet中调用的代码的一部分。Servlet运行正常,但是“source”变量不能读取arff文件,因此,我在第3行得到了以下异常:
“weka.core.converters.ArffLoader.getDataSet(ArffLoader.java:1003)”:weka.core.converters.ArffLoader.getDataSet(ArffLoader.java:1003)“没有指定任何源
根据2,
可以从上传为应用程序一部分的文件中读取,条件是它位于以下位置:war/web.xml //位于与appEng-web.xml模式匹配的位置(默认情况下包含所有内容)
我遵循了这两点,但没有成功。对于第二个配置,我的配置如下:
<resource-files>
<include path="/bases/**.arff" />
</resource-files>考虑到这段漫长的历史,我想问您:是否在某个地方放置了“base”目录,或者在GAE xml文件或Eclipse上配置了什么东西,从而使加载ARFF库成为可能?
参考文献
1 www.cs.wakato.ac.nz/ml/weka/
发布于 2012-07-04 21:02:46
您的问题更多是关于在web应用程序环境中加载资源。web应用环境中的附加内容 资源关于装载资源的堆栈溢出。
将您的arff文件放在您的源代码-src目录中。在编译应用程序时,此目录下的文件复制到web-inf/classes目录中。
看见

如果您创建一个war文件,您可以看到它们在哪里被复制。看见

确保您的arff文件包含在您的web存档文件(war文件)中之后。您可以使用适当的路径到它。就像下面。您需要使用InputStream构造函数而不是String one。
InputStream stream = getServletContext().getResourceAsStream("WEB-INF/classes/iris.arff");
DataSource source = new DataSource(stream);我已经尝试了这个简单的web应用程序项目,它的工作。我的代码如下。
deneme.jsp
<%
InputStream stream = getServletContext().getResourceAsStream("WEB-INF/classes/iris.arff");
String summary = LoadArffFile.loadArffFileAndFindSummary(stream );
out.println(summary);
%>LoadArffFile.java
public static String loadArffFileAndFindSummary( InputStream stream)
{
DataSource source = new DataSource(stream);
String summary = null;
try {
summary = source.getStructure().toSummaryString();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return summary;
}输出以tomcat表示。
Relation Name: iris Num Instances: 0 Num Attributes: 5 Name Type Nom Int Real Missing Unique Dist 1 sepallength Num 0% 0% 0% 0 / 0% 0 / 0% 0 2 sepalwidth Num 0% 0% 0% 0 / 0% 0 / 0% 0 3 petallength Num 0% 0% 0% 0 / 0% 0 / 0% 0 4 petalwidth Num 0% 0% 0% 0 / 0% 0 / 0% 0 5 class Nom 0% 0% 0% 0 / 0% 0 / 0% 0 https://stackoverflow.com/questions/11334401
复制相似问题