2016-11-12 11 views
0

を表示します。ここで短いビデオを参照して、apache mahoutを使用したシンプルなムービー推奨システムを開発中です。https://www.youtube.com/watch?v=yD40rVKUwPI推薦者のためのコードがapacheマホートからの推奨として「ムービーID」の代わりに「ムービーID」の代わりに

public class App 
{ 
    public static List<RecommendedItem> getRecommend(int k) throws Exception 
    { 
      ClassLoader classLoader = App.class.getClassLoader(); 

      DataModel model = new FileDataModel(new File(classLoader.getResource("data/dataset.csv").getFile())); 
     UserSimilarity similarity = new PearsonCorrelationSimilarity(model); 
     UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.1, similarity, model); 
     UserBasedRecommender recommender = new  GenericUserBasedRecommender(model, neighborhood, similarity); 
     List<RecommendedItem> recommendations = recommender.recommend(k, 3); 
     return recommendations; 
    } 
} 

enter image description here

ですこれは私が欲しいid's.What映画の形で推奨を生成名の代わりに、映画のIDを表示することです。 (IDを生成する)私が使用しているデータセットは、CSV形式の列次有する

user_id movie_id rating 

しかし

フィールド

user_id movie_id rating 

及び第二

とを有する2つのファイル - 一つを有するMovieLensデータセットが存在するので
movie_id movie_name 

私は上記のresourcestoを使用して、idの代わりにmovie_namesを取得できます。 DataModelクラスで可能か、それとも別の方法がありますか? 私は

movie_name value 

代わりの存在

movie_id value 

答えて

0

できそうなことはできないだけではMahoutのと同じように提言をしたいです。 CSVリーダーを使用してムービータイトルのCSVファイルをロードするか、またはデータベースにインポートしてムービーIDを名前にマップする必要があります。

+0

はい私はrating.csvとは別にmovie_title.csvを持っています。私が考えていたのは、これらの2つのファイルをどうにかして単一のcsvにマージし、それを現在のデータセット(rating.csv)の代わりにデータセットとして使用することでした。それは働くでしょうか?ちょっと凝ってください、私は初めてそれを試しています。 rating.csvにはmovie_idのみが含まれ、movie_title.csvにはmovie_idがtitleでマップされます。 – techvigil

+0

MahoutのAPIとデータモデルについては、そのようにデータをモデル化できるかどうかを知るには十分ではありません。私はそれを疑うが、間違っている可能性が非常に高い。これらのシステムの多くは評価マトリックスを使用しており、アイテムメタデータを自分で検索する必要があります。 –

関連する問題