以下に引用する Java クラスは、3 つの数値を使用します。args 変数を介して毎回異なる値を渡すコマンドラインからこのクラスを呼び出したいと思います。しかし、それを行うと、「変数 'args' は内部クラス内からアクセスされます」という Java エラーが発生します。目標を達成するための最も効率的な方法は?
class UserBaseRecommenderEvaluation {
private UserBaseRecommenderEvaluation() {}
public static void main(String[] args) throws Exception {
DataModel model = new FileDataModel(new File("/home/eualin/Downloads/ml-100k/final.data"));
RecommenderBuilder builder = new RecommenderBuilder() {
@Override
public Recommender buildRecommender(DataModel model) throws TasteException {
UserSimilarity similarity = new LogLikelihoodSimilarity(model);
UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model);
return new GenericUserBasedRecommender(model, neighborhood, similarity);
}
};
RecommenderIRStatsEvaluator evaluator = new GenericRecommenderIRStatsEvaluator();
IRStatistics stats = evaluator.evaluate(builder,
null,
model,
null,
1,
GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD,
1);
}
}
更新:さらなるステップとして、これらの各パラメーターに異なる値を割り当てる for ループ内で上記の関数を機能させるにはどうすればよいですか? この場合、エラー処理も行う必要があることに注意してください。そうしないと、一部の組み合わせが「適切」でなくなるため、実行が予期せず終了してしまいます。