Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * RecommenderNeo4jEngineManager.java
   * 
   * Copyright (C) 2013 Alessandro Negro <alessandro.negro at reco4j.org>
   *
   * This program is free software: you can redistribute it and/or modify
   * it under the terms of the GNU General Public License as published by
   * the Free Software Foundation, either version 3 of the License, or
   * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 package org.reco4j.recommender.mahout;
 
 import java.util.List;
Follow: https://builds.apache.org/job/Mahout-Quality/javadoc/org/apache/mahout/cf/taste/model/DataModel.html

Author(s):
Alessandro Negro <alessandro.negro at reco4j.org>
 
 public class Reco4jMahoutDataModel implements DataModel
 {
   private IGraph learningDataset;
   private int userCount = -1;
   private int itemCount = -1;
 
   public Reco4jMahoutDataModel(IGraph learningDatasetIMahoutRecommenderConfig config)
   {
     this. = learningDataset;
     this. = config;
      = EdgeTypeFactory.getEdgeType(.config.getGraphConfig());
   }
 
   @Override
   {
     if ( != null)
       return ;
     String userType = .getUserType();
     //userIds = getNodesByType(userType, config.getUserIdentifierName());
     return ;
   }
 
   @Override
   {
     if ( != null)
       return ;
     String itemType = .getItemType();
     //itemIds = getNodesByType(itemType, config.getItemIdentifierName());
     return ;
   }
 
   @Override
   public PreferenceArray getPreferencesFromUser(long userIDthrows TasteException
   {
     final INode user = .getNodeById(userID);
     ArrayList<RatingratingList = user.getRatingsFromUser(.getGraphConfig());
     return new GenericUserPreferenceArray(ratingList);
   }
 
   @Override
   public FastIDSet getItemIDsFromUser(long userIDthrows TasteException
   {
     INode user = .getUserNodeById(userID);
     final FastIDSet result = new FastIDSet();
     user.iterateOnEdge(new IGraphCallable<IEdge>()
     {
 
       @Override
       public void call(IEdge rate)
       {
         INode item = rate.getDestination();
        String idStr = item.getProperty(.getItemIdentifierName());
        result.add(Long.parseLong(idStr));
      }
    });
    return result;
  }
  public PreferenceArray getPreferencesForItem(long itemIDthrows TasteException
  {
    final INode user = .getNodeById(itemID);
    ArrayList<RatingratingList = user.getRatingsForItem(.getGraphConfig());
    return new GenericItemPreferenceArray(ratingList);
  }
  public Float getPreferenceValue(long userIDlong itemIDthrows TasteException
  {
    INode user = .getNodeById(userID);
    INode item = .getNodeById(itemID);
    if (user ==null || item == null)
      return null;
    IEdge edge = user.getEdge(item);
    String property = edge.getProperty(.getEdgeRankValueName());
    return Float.parseFloat(property);
  }
  public Long getPreferenceTime(long userIDlong itemIDthrows TasteException
  {
    throw new UnsupportedOperationException("Not supported yet.");
  }
  public int getNumItems() throws TasteException
  {
    if ( < 0)
    return ;
  }
  public int getNumUsers() throws TasteException
  {
    if ( < 0)
    return ;
  }
  public int getNumUsersWithPreferenceFor(long itemIDthrows TasteException
  {
    INode item = .getItemNodeById(itemID);
    List<IEdgeinEdges = item.getInEdge();
    return inEdges.size();
  }
  public int getNumUsersWithPreferenceFor(long itemID1long itemID2throws TasteException
  {
    int count = 0;
    INode item1 = .getItemNodeById(itemID1);
    INode item2 = .getItemNodeById(itemID2);
    List<IEdgeinEdges = item1.getInEdge();
    for (IEdge edge : inEdges)
      if (edge.getSource().isConnected(item2))
        count++;
    return count;
  }
  public void setPreference(long userIDlong itemIDfloat valuethrows TasteException
  {
    throw new UnsupportedOperationException("Not supported yet.");
  }
  public void removePreference(long userIDlong itemIDthrows TasteException
  {
    throw new UnsupportedOperationException("Not supported yet.");
  }
  public boolean hasPreferenceValues()
  {
    return false;
  }
  public float getMaxPreference()
  {
    return (float).getMaxPreferenceValue();
  }
  public float getMinPreference()
  {
    return (float).getMinPreferenceValue();
  }
  public void refresh(Collection<RefreshablealreadyRefreshed)
  {
    
  }
  private synchronized LongPrimitiveIterator getNodesByType(String typefinal String identifier)
  {
    final FastIDSet result = new FastIDSet();
                                   new IGraphCallable<INode>()
    {
      @Override
      public void call(INode item)
      {
        String idStr = item.getProperty(identifier);
        result.add(Long.parseLong(idStr));
      }
    });
    return result.iterator();
  }
New to GrepCode? Check out our FAQ X