I have used FileDataModel, and there is no problem of recommendation items.

However, when I write the user-item-preference data into mongodb. And use
MongoDBDataModel for a recommender, no item will be recommended. And there
is no error. Just the size of recommended list is 0.

Here is how the data how been write to mongo DB:

BufferedReader bf = new BufferedReader(new FileReader("***.txt"));
                String line="";

                while((line= bf.readLine())!=null){
                        String[] values = line.split(",");
                        BasicDBObject doc = new BasicDBObject();
                        doc.put("user_id", Long.parseLong(values[0].trim()));
                        doc.put("item_id", Long.parseLong(values[1].trim()));
                        doc.put("preference", 
Float.parseFloat(values[2].trim()));                  
                        col.insert(doc);                        
                }

I checked the data in Mongodb, there is no problem of writing data in this
way.

Here is how MongoDBDataModel has been used in a recommender:

DataModel model = new
GenericBooleanPrefDataModel(GenericBooleanPrefDataModel.toDataMap
                        (new MongoDBDataModel("10.194.180.3", 27000,
"recommendation","userpref",true, true, null)));

RecommenderBuilder builder = new RecommenderBuilder(){
                public Recommender buildRecommender(DataModel model) throws
TasteException{                         
                        UserSimilarity sim = new TanimotoCoefficientSimilarity 
(model); 
                        UserNeighborhood neighbor = new 
NearestNUserNeighborhood(64, sim, model);
                return new GenericBooleanPrefUserBasedRecommender(model, 
neighbor, sim);
                }
        };              
        
        CachingRecommender recommender= new
CachingRecommender(builder.buildRecommender(model));
        List<RecommendedItem> recItem = recommender.recommend(44708227, 10);
        System.out.println(recItem.size());   *// here is size is alway 0*
        for(RecommendedItem ri: recItem){
                System.out.println(ri);
        }        

Any suggestions why this happens?

Thanks very much!!!



--
View this message in context: 
http://lucene.472066.n3.nabble.com/no-item-recommended-by-using-MongoDBDataModel-tp3996841.html
Sent from the Mahout User List mailing list archive at Nabble.com.

Reply via email to