首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >项目中基于WEKA的ARFF加载问题

项目中基于WEKA的ARFF加载问题
EN

Stack Overflow用户
提问于 2012-07-04 19:16:18
回答 1查看 1.6K关注 0票数 1

我正在Google中构建一个应用程序(使用Eclipse),其中一个部分使用WEKA 1。这个应用程序需要加载ARFF基础,但这是正常的。这些基所在的目录位于项目的根目录中。下列线路负责装载基地:

代码语言:javascript
复制
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模式匹配的位置(默认情况下包含所有内容)

我遵循了这两点,但没有成功。对于第二个配置,我的配置如下:

代码语言:javascript
复制
<resource-files>
    <include path="/bases/**.arff" />
</resource-files>

考虑到这段漫长的历史,我想问您:是否在某个地方放置了“base”目录,或者在GAE xml文件或Eclipse上配置了什么东西,从而使加载ARFF库成为可能?

参考文献

1 www.cs.wakato.ac.nz/ml/weka/

2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-04 21:02:46

您的问题更多是关于在web应用程序环境中加载资源。web应用环境中的附加内容 资源关于装载资源的堆栈溢出。

将您的arff文件放在您的源代码-src目录中。在编译应用程序时,此目录下的文件复制到web-inf/classes目录中。

看见

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

确保您的arff文件包含在您的web存档文件(war文件)中之后。您可以使用适当的路径到它。就像下面。您需要使用InputStream构造函数而不是String one。

代码语言:javascript
复制
InputStream stream = getServletContext().getResourceAsStream("WEB-INF/classes/iris.arff");
DataSource source = new DataSource(stream);

我已经尝试了这个简单的web应用程序项目,它的工作。我的代码如下。

deneme.jsp

代码语言:javascript
复制
<%
InputStream stream = getServletContext().getResourceAsStream("WEB-INF/classes/iris.arff");
String summary = LoadArffFile.loadArffFileAndFindSummary(stream );

out.println(summary);

%>

LoadArffFile.java

代码语言:javascript
复制
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表示。

代码语言:javascript
复制
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 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11334401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档