public int Compare(film movie1, film movie2) { int comp = 0; foreach (var actor1 in movie1.Actors.Split("\n")) { foreach (var actor2 in movie2.Actors.Split("\n")) { if (actor1 == actor2) { comp++; } } } if (movie1.director == movie2.director) { comp = comp + 3; } foreach (var tag1 in movie1.Tags.Split("\n")) { foreach (var tag2 in movie2.Tags.Split("\n")) { if (tag1 == tag2) { comp = comp + 2; } } } return(comp); }
public void GetRec(film mov) { var sortinglist = new List <(int, String, String)>(); //var ourlist = new List<film>(); foreach (var movie in ActorTagfilmList(mov.name)) { foreach (var film in Dict.movies) { if (film.name == movie) { //ourlist.Add(film); sortinglist.Add((Compare(mov, film), film.TMBD, film.name)); } } } sortinglist.Sort(Comparer <(int, String, String)> .Create(new Comparison <(int, String, String)>((x, y) => y.Item1 - x.Item1))); for (int j = 0, i = 0; i < 10 && j < sortinglist.Count; ++j) { if (sortinglist[j].Item2 != null && sortinglist[j].Item2 != "") { mov.Recomended = mov.Recomended + sortinglist[i].Item2 + "\t"; ++i; } } }
//public void tag(string line) //{ // string tagcode = tagname_tagcode[line]; // Console.WriteLine("фильмы: "); // foreach (var movie in tagcode_movielist[tagcode]) // { // string IMBD = ml_imdbcode[movie]; // Console.WriteLine(tagcode_moviename[IMBD]); // } //} public void CreateMovies() { string ActID; string prof; string movielens; int i = 0; ICollection <string> moviename = moviename_movietags.Keys; foreach (string s in moviename) { foreach (var IMBD in moviename_movietags[s]) { string actors = ""; string tags = ""; film clip = new film(); clip.name = s; clip.code = IMBD; if (imdbrating.ContainsKey(IMBD)) { clip.rating = imdbrating[IMBD]; } if (movie_actorset.ContainsKey(IMBD)) { foreach (var id in movie_actorset[IMBD]) { ActID = id.first; prof = id.second; if (actorcode_actorname.ContainsKey(ActID)) { if (prof != "director") { actors += actorcode_actorname[ActID] + "\t"; } else { clip.director = actorcode_actorname[ActID]; } } } } if (imdbcode_ml.ContainsKey(IMBD)) { movielens = imdbcode_ml[IMBD]; if (moviecode_taglist.ContainsKey(movielens)) { foreach (var tagid in moviecode_taglist[movielens]) { tags += tagcode_tagname[tagid] + "\t"; } } } clip.Actors = actors; clip.Tags = tags; clip.id = i; i++; movies.Add(clip); } } Console.WriteLine("filmdictionary done "); }