Hi Matt - This is actually the result of a code problem. For this example,
it picks up your data files fine (you'll be able to verify this by taking a
look in your temp directory on Tomcat because it will write files like
taste.movies.txt and taste.ratings.txt that hold your GLF converted file
after it reads it in from your classpath). However, the example currently
has logic that will look for additional files with the same prefix as
updates to your data. This fails, however because while taste.ratings.txt is
a valid ratings file, it reads taste.movies.txt as an an additional update
file but it's not and it fails to parse correctly. At the moment, it doesn't
appear like there is a way to override this because it's hardcoded so you'll
probably have to patch your file and rebuild.

A quick & dirty approach that I got to work for me is by editing the
following file & patch the following line.
src/main/java/org/apache/mahout/cf/taste/example/grouplens/GroupLensDataModel.java


-                                     "taste." + (ratings ? "ratings" :
"movies") + ".txt");
+                                     (ratings ? "ratings" : "movies") +
".txt");

This will still allow updates, but you'll have to add them something along
the lines of movies.1.txt, ratings.1.txt, etc.

If you get it all working, it'll take a short bit for it to do its magic and
you'll probably get results that look like for the following request:
http://localhost:8080/mahout-taste-webapp-0.1/RecommenderServlet?userID=1

7.321730220075736       557
5.248598816436773       53
5.117761222300874       1149
5.047946449451862       1039
5.0     3382
5.0     3607
5.0     989
5.0     3172
5.0     3656
5.0     1830
5.0     3881
5.0     572
5.0     3280
5.0     134
4.999999999999999       3233
4.98947269776999        3338
4.9753097928830785      3245
4.963755978247806       2503
4.917827198841746       2931
4.906247023765473       2930


Note that I'm building off of 0.1, but you'll see that the code problem
still exists in the most recent pull of trunk as of 3/7.

Ryan

On Thu, Mar 5, 2009 at 10:42 AM, Matthew Roberson <[email protected]>wrote:

> The data files appear to be there:
>
> WEB-INF/classes/org/apache/mahout/cf/taste/example/grouplens/movies.dat
> WEB-INF/classes/org/apache/mahout/cf/taste/example/grouplens/ratings.dat
>
> -- Matt
>
>
> On Thu, Mar 5, 2009 at 9:53 AM, Sean Owen <[email protected]> wrote:
>
> > What this suggests to me actually is that the 'movies.dat' file isn't
> > present or is otherwise not quite all there... the data file seems to
> > be being read but it's got a reference to a movie that doesn't exist,
> > somehow.
> >
> > Is movies.dat in place and getting packaged up? try "jar tf" on the
> > .war file to see its contents.
> >
> > The data files are expected under
> > /org/apache/mahout/cf/taste/example/grouplens/
> >
> >
> >
> > On Thu, Mar 5, 2009 at 2:49 AM, Matthew Roberson <[email protected]>
> > wrote:
> > > So...
> > >
> > > I placed the GroupLens data files in the following directory:
> > >
> >
> /Mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/grouplens
> > >
> > > I ran mvn package.
> > >
> > > I then set the path for recommender class in web.xml to poin to
> > > GroupLensRecommender.
> > >
> > > I then deploy the following war file in Tomcat:
> > > mahout-taste-webapp-0.2-SNAPSHOT.war (located in
> > > Mahout/trunk/taste-web/target)
> > >
> > > I then type in browser: http://localhost:8080/
> > > mahout-taste-webapp-0.2-SNAPSHOT/RecommenderServlet?userID=1&debug=true
> > >
> > > And get NoSuchElementException regarding not finding the Group Lens
> data
> > > files in GroupLensDataModel.
> > >
> > > What am I doing wrong?
> > >
> > > If it can find the GroupLensRecommender class file, why can't it find
> the
> > > data files if they have the same path???
> > >
> > > java.util.NoSuchElementException
> > >
> >
>  
> org.apache.mahout.cf.taste.example.grouplens.GroupLensDataModel.buildItem(GroupLensDataModel.java:61)
> > >
> >
>  
> org.apache.mahout.cf.taste.impl.model.file.FileDataModel.processLine(FileDataModel.java:244)
> > >
> >
>  
> org.apache.mahout.cf.taste.impl.model.file.FileDataModel.processFile(FileDataModel.java:171)
> > >
> >
>  
> org.apache.mahout.cf.taste.impl.model.file.FileDataModel.reload(FileDataModel.java:127)
> > >
> >
>  
> org.apache.mahout.cf.taste.example.grouplens.GroupLensDataModel.reload(GroupLensDataModel.java:80)
> > >
> >
>  
> org.apache.mahout.cf.taste.impl.model.file.FileDataModel.checkLoaded(FileDataModel.java:259)
> > >
> >
>  
> org.apache.mahout.cf.taste.impl.model.file.FileDataModel.getUsers(FileDataModel.java:265)
> > >
> >
>

Reply via email to