guoguibing / librec

LibRec: A Leading Java Library for Recommender Systems, see
https://www.librec.net/
Other
3.23k stars 1.03k forks source link

Need Help to fix error #262

Closed sososa1213 closed 6 years ago

sososa1213 commented 6 years ago

I used the example that provided by libec with some examples here, I need to teach my self for how to use librec in my code. I got an error for this line"conf.set("dfs.data.dir","E:\Dropbox\Dinos-Fwtis\Thesis\Code\Recomendation\data");" can anyone help me to explain what this line do,

the code:

import net.librec.BaseTestCase;
import net.librec.common.LibrecException;
import net.librec.conf.Configuration;
import net.librec.conf.Configuration.Resource;
import net.librec.data.model.TextDataModel;
import net.librec.eval.RecommenderEvaluator;
import net.librec.eval.rating.RMSEEvaluator;
import net.librec.filter.GenericRecommendedFilter;
import net.librec.filter.RecommendedFilter;
import net.librec.recommender.Recommender;
import net.librec.recommender.RecommenderContext;
import net.librec.recommender.cf.ItemKNNRecommender;
import net.librec.recommender.cf.UserKNNRecommender;
import net.librec.recommender.item.RecommendedItem;
import net.librec.similarity.PCCSimilarity;
import net.librec.similarity.RecommenderSimilarity;
import java.awt.List;
import java.io.BufferedWriter;
import java.io.FileWriter;

import org.junit.Before;
import org.junit.FixMethodOrder;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runners.MethodSorters;
public class test1 {
    public static void main (String [] args)  throws Exception {
    System.out.print("lll");
    Resource resource = new Resource("userknn-test.properties");

    Configuration conf = new Configuration();
    conf.addResource(resource);
    conf.set("dfs.data.dir","E:\\Dropbox\\Dinos-Fwtis\\Thesis\\Code\\Recomendation\\data");
    conf.set("dfs.input.path","filmtrust");
    conf.set("data.column.format","UIR");
    conf.set("data.convert.binarize.threshold","-1.0");

    TextDataModel dataModel = new TextDataModel(conf);
    dataModel.buildDataModel();

    RecommenderContext context = new RecommenderContext(conf,dataModel);

    RecommenderSimilarity similarity = new PCCSimilarity();
    similarity.buildSimilarityMatrix(dataModel);
    context.setSimilarity(similarity);

    Recommender recommender = new ItemKNNRecommender();
    recommender.setContext(context);

    recommender.recommend(context);

    RecommenderEvaluator evaluator = new RMSEEvaluator();

    System.out.println("RMSE:" + recommender.evaluate(evaluator));
    java.util.List<RecommendedItem> recommendedItemList = recommender.getRecommendedList();

//    print filter result
    System.out.println("len " + recommendedItemList.size());
    BufferedWriter writer = new BufferedWriter(new FileWriter("recommendations.txt"));
    for (RecommendedItem recommendedItem : recommendedItemList) {
        writer.write(
                "user:" + recommendedItem.getUserId() + " " +
                "item:" + recommendedItem.getItemId() + " " +
                "value:" + recommendedItem.getValue() + "\n"
                );
        writer.flush();
    }
    writer.close();
    }
}

the error:

lll18/07/12 02:05:22 INFO TextDataConvertor: Dataset: ...Recomendation\data/filmtrust/rating
Exception in thread "main" net.librec.common.LibrecException: java.nio.file.NoSuchFileException: E:\Dropbox\Dinos-Fwtis\Thesis\Code\Recomendation\data/filmtrust/rating
    at net.librec.data.model.TextDataModel.buildConvert(TextDataModel.java:75)
    at net.librec.data.model.AbstractDataModel.buildDataModel(AbstractDataModel.java:139)
    at test1.main(test1.java:40)
Caused by: java.nio.file.NoSuchFileException: E:\Dropbox\Dinos-Fwtis\Thesis\Code\Recomendation\data/filmtrust/rating
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
    at sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:144)
    at java.nio.file.Files.readAttributes(Files.java:1737)
    at java.nio.file.FileTreeWalker.getAttributes(FileTreeWalker.java:219)
    at java.nio.file.FileTreeWalker.visit(FileTreeWalker.java:276)
    at java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:322)
    at java.nio.file.Files.walkFileTree(Files.java:2662)
    at java.nio.file.Files.walkFileTree(Files.java:2742)
    at net.librec.data.convertor.TextDataConvertor.readData(TextDataConvertor.java:205)
    at net.librec.data.convertor.TextDataConvertor.processData(TextDataConvertor.java:164)
    at net.librec.data.model.TextDataModel.buildConvert(TextDataModel.java:73)
    ... 2 more

can any one help me how to fix that? Thanks. #

allenjack commented 6 years ago

Hi, It tells you that 'Exception in thread "main" net.librec.common.LibrecException: java.nio.file.NoSuchFileException: E:\Dropbox\Dinos-Fwtis\Thesis\Code\Recomendation\data/filmtrust/rating', which means the file you specify does not exist.

I guess your file path is not correct. Please check it.