Inspect the data
The ratings files are tab-separated, containing the field's user ID, item ID, rating, and timestamp. The user ID links to a row in the u.user
file, which provides basic demographic information such as age, sex, and occupation:
(defn ex-7-1 [] (->> (io/resource "ua.base") (io/reader) (line-seq) (first))) ;; "1\t1\t5\t874965758"
The string shows a single line from the file—a tab-separated line containing the user ID, item ID, rating (1-5), and timestamp showing when the rating was made. The rating is an integer from 1 to 5 and the timestamp is given as the number of seconds since January 1, 1970. The item ID links to a row in the u.item
file.
We'll also want to load the u.item
file, so we can determine the names of the items being rated (and the items being predicted in return). The following example shows how data is stored in the u.item
file:
(defn ex-7-2 [] (->> (io/resource "u.item") ...