私は現在、推薦システムに取り組んでいます。私は次のようなクラス Recommend を設計しました:
class Recommend{
Path path; //recommended path, self-defined class. This is the problem!
//some parameters and Models
private Map<Integer, List<Integer>> Model1;
//...other pram and models
//methods
public void getPath();
public double score(int place);//
}
ここに私の問題があります: モデルをロードして Recommend のインスタンスを構築します。次に、そのインスタンスの getPath メソッドを呼び出してパスを検索します。私のパスは時間に敏感で、適切な時間とともに場所のリストが含まれています。
class Path{
List<Integer> path;
List<Integer> times;
double socre;
public void add(int place, double time);
}
add(int, double) を呼び出して場所と対応する時間をパスに追加し、その間に新しいパスのスコアを更新したいと思います。そこで、Recommend のメソッドである score(int) を呼び出したいと思います。
Path をどのように設計すればよいですか? Recommend の内部クラスにする必要がありますか?
アップデート
getPath(int place, double startTime);
//try greedy searching to find a time sensitive path that scored highest,
//go through all possible places and scored them.
socre(int place, double time);
//In fact there are multiple score methods correspond to different models,
//**and notice here I modify the param to int place from Path path**
//This function evaluates the score of current place and time(used in greedy searching)
add(int place, double time);
//add a new place and time(which is proved by greedy searching to be the best)
//I want this update the score of place itself...okay maybe I should place this function in Recommend