Пример #1
0
        /// <summary>
        /// Получает список книг, который оценил пользователь
        /// </summary>
        /// <param name="userId"></param>
        /// <returns>
        /// Список книг, которые оценил тот или иной пользователь
        /// </returns>
        public List <BookItem> getRatedBooks(int userId)
        {
            List <BookItem>      ratedBooks  = new List <BookItem>();
            BookUser             user        = getUser(userId);
            List <GeneralRating> userRatings = user.getAllRatings();

            for (int i = 0; i < userRatings.Count; i++)
            {
                BookItem ratedBook = getBookItem(userRatings[i].getItemId());
                ratedBooks.Add(ratedBook);
            }
            return(ratedBooks);
        }
Пример #2
0
        public BookItem pickItem(String name)
        {
            BookItem item = null;

            foreach (KeyValuePair <int, BookItem> kvp in allBooks)
            {
                BookItem anItem = kvp.Value;
                if (name.Equals(anItem.getName()))
                {
                    item = kvp.Value;
                    break;
                }
            }
            return(item);
        }
        static void Main(string[] args)
        {
            #region Загрузка данных

            DatabaseHelper helper = new DatabaseHelper();

            // Получить список всех книг
            List <BookItem> listOfBooks = new List <BookItem>();
            listOfBooks = TypeConverter.ConvertBooks(helper.getAllBooks());

            // Получить список всех пользователей
            List <BookUser> listOfUsers = new List <BookUser>();
            listOfUsers = TypeConverter.ConvertUsers(helper.getAllUsers());


            BookData ds = new BookData();
            ds.createDataset();



            #endregion

            #region Создание системы выработки рекомендаций на основе сходства предметов
            Delphi delphi = new Delphi(ds, RecommendationType.ITEM_BASED);

            // Создание системы выработки рекомендаций на основе сходства предметов
            delphi.setVerbose(true);


            BookUser bu1 = ds.pickUser("1");
            // Рекомендация нескольких предметов пользователю "1"
            delphi.recommend(bu1);

            BookItem bi = ds.pickItem("2");
            // Поиск похожих предметов
            //   delphi.findSimilarItems(bi);

            #endregion
        }
        public static List <BookItem> ConvertBooks(List <Book> books)
        {
            List <BookItem> bookItems = new List <BookItem>();

            for (int i = 0; i < books.Count; i++)
            {
                DatabaseHelper dbHelper   = new DatabaseHelper();
                List <Rating>  ratings    = dbHelper.getAllRatingsByItemId(books[i].BookId);
                BookItem       singleBook = new BookItem(books[i].BookId,
                                                         books[i].ISBN,
                                                         books[i].Title,
                                                         books[i].Author,
                                                         books[i].YearOfPublication.GetValueOrDefault(),
                                                         books[i].Publisher,
                                                         books[i].ImageURLS,
                                                         books[i].ImageURLM,
                                                         books[i].ImageURLL,
                                                         ConvertRatings(ratings));
                bookItems.Add(singleBook);
            }
            return(bookItems);
        }