Java 基于mahout用户的协同过滤推荐中intro.csv的FileNotFountException
我创建了一个maven项目,并在pom文件中添加了以下依赖项Java 基于mahout用户的协同过滤推荐中intro.csv的FileNotFountException,java,maven,csv,mahout,mahout-recommender,Java,Maven,Csv,Mahout,Mahout Recommender,我创建了一个maven项目,并在pom文件中添加了以下依赖项 <dependency> <groupId>org.apache.mahout</groupId> <artifactId>mahout-mr</artifactId> <version>0.11.0</version> </dependency> 我在mahout中使用了这个例子,
<dependency>
<groupId>org.apache.mahout</groupId>
<artifactId>mahout-mr</artifactId>
<version>0.11.0</version>
</dependency>
我在mahout中使用了这个例子,并添加了RecommenderIntro
类,并将intro.csv文件复制到src/main/resource文件夹中
错误发生在:
DataModel model = new FileDataModel (new File("resources\intro.csv"));
Exception in thread "main" java.io.FileNotFoundException: resources/intro.csv
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.<init>(FileDataModel.java:180)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.<init>(FileDataModel.java:167)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.<init>(FileDataModel.java:147)
at recstest.UserBased.main(UserBased.java:19)
我还将该文件复制到main src\main\java并进行了检查,仍然出现相同的错误。原因可能是什么?使用此选项从类路径加载资源:
URL url = getClass().getResource("/intro.csv");
Path path = Paths.get(url.toURI());
File file = path.toFile();
您只需在类上使用getResource即可获得所需的资源
DataModel model = new FileDataModel(new File(this.getClass().getResource("/intro.csv").toURI()));
当然,您需要以某种方式处理可能的URISyntaxException和IOException