# 🎲 Board Game Recommender 👍
Board game recommendation engine. View the recommendations live at
[Recommend.Games](https://recommend.games/)! Install via
```bash
pip install board-game-recommender
```
## Training new recommender models
### Environment
[Requires Python 3](https://pythonclock.org/). Make sure
[Pipenv](https://docs.pipenv.org/) is installed and create the virtual environment:
```bash
python3 -m pip install --upgrade pipenv
pipenv install --dev
pipenv shell
```
### Datasets
In order to train the models you will need appropriate game and rating data.
You can either scrape your own using the [board-game-scraper](https://gitlab.com/recommend.games/board-game-scraper)
project or take a look at the [BoardGameGeek guild](https://boardgamegeek.com/thread/2287371/boardgamegeek-games-and-ratings-datasets)
to obtain existing datasets.
At the moment there is only one [recommender implementations](board_game_recommender/recommend.py): [BoardGameGeek](https://boardgamegeek.com/).
### Models
We use the recommender implementation by [Turi Create](https://github.com/apple/turicreate).
Two recommender models are supported out of the box:
* [`RankingFactorizationRecommender`](https://apple.github.io/turicreate/docs/api/generated/turicreate.recommender.ranking_factorization_recommender.RankingFactorizationRecommender.html)
(default): Learns latent factors for each user and game, generally yielding
very interesting recommendations.
* [`ItemSimilarityRecommender`](https://apple.github.io/turicreate/docs/api/generated/turicreate.recommender.item_similarity_recommender.ItemSimilarityRecommender.html):
Ranks a game according to its similarity to other ratings by a user, often
resulting in less interesting recommendations. However, this model is also
able to find games similar to a given game.
### Run the training
Run the training via the [main script](board_game_recommender/__main__.py):
```bash
python -m board_game_recommender --help
```
E.g., train the default BGG mode like so:
```bash
python -m board_game_recommender \
--train \
--games-file bgg_GameItem.jl \
--ratings-file bgg_RatingItem.jl \
--model model/output/dir
```
## Links
* [board-game-recommender](https://gitlab.com/recommend.games/board-game-recommender):
This repository
* [Recommend.Games](https://recommend.games/): board game recommender website
* [recommend-games-server](https://gitlab.com/recommend.games/recommend-games-server):
Server code for [Recommend.Games](https://recommend.games/)
* [board-game-scraper](https://gitlab.com/recommend.games/board-game-scraper):
Board game data scraper
Raw data
{
"_id": null,
"home_page": "https://recommend.games/",
"name": "board-game-recommender",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7.0,<3.9.0",
"maintainer_email": "",
"keywords": "board games,tabletop games,recommendations,recommender,recommender engine,recommendation engine,boardgamegeek,bgg,ratings,turicreate,collaborative filtering,ludoj,ludoj-recommender",
"author": "Markus Shepherd",
"author_email": "markus@recommend.games",
"download_url": "https://files.pythonhosted.org/packages/d7/56/c249166ac5226a9b4828982932f7e8be3855b564452b2141a3aefe3dcade/board-game-recommender-3.6.0.tar.gz",
"platform": null,
"description": "\n# \ud83c\udfb2 Board Game Recommender \ud83d\udc4d\n\nBoard game recommendation engine. View the recommendations live at\n[Recommend.Games](https://recommend.games/)! Install via\n\n```bash\npip install board-game-recommender\n```\n\n## Training new recommender models\n\n### Environment\n\n[Requires Python 3](https://pythonclock.org/). Make sure\n[Pipenv](https://docs.pipenv.org/) is installed and create the virtual environment:\n\n```bash\npython3 -m pip install --upgrade pipenv\npipenv install --dev\npipenv shell\n```\n\n### Datasets\n\nIn order to train the models you will need appropriate game and rating data.\nYou can either scrape your own using the [board-game-scraper](https://gitlab.com/recommend.games/board-game-scraper)\nproject or take a look at the [BoardGameGeek guild](https://boardgamegeek.com/thread/2287371/boardgamegeek-games-and-ratings-datasets)\nto obtain existing datasets.\n\nAt the moment there is only one [recommender implementations](board_game_recommender/recommend.py): [BoardGameGeek](https://boardgamegeek.com/).\n\n### Models\n\nWe use the recommender implementation by [Turi Create](https://github.com/apple/turicreate).\nTwo recommender models are supported out of the box:\n\n* [`RankingFactorizationRecommender`](https://apple.github.io/turicreate/docs/api/generated/turicreate.recommender.ranking_factorization_recommender.RankingFactorizationRecommender.html)\n (default): Learns latent factors for each user and game, generally yielding\n very interesting recommendations.\n* [`ItemSimilarityRecommender`](https://apple.github.io/turicreate/docs/api/generated/turicreate.recommender.item_similarity_recommender.ItemSimilarityRecommender.html):\n Ranks a game according to its similarity to other ratings by a user, often\n resulting in less interesting recommendations. However, this model is also\n able to find games similar to a given game.\n\n### Run the training\n\nRun the training via the [main script](board_game_recommender/__main__.py):\n\n```bash\npython -m board_game_recommender --help\n```\n\nE.g., train the default BGG mode like so:\n\n```bash\npython -m board_game_recommender \\\n --train \\\n --games-file bgg_GameItem.jl \\\n --ratings-file bgg_RatingItem.jl \\\n --model model/output/dir\n```\n\n## Links\n\n* [board-game-recommender](https://gitlab.com/recommend.games/board-game-recommender):\n This repository\n* [Recommend.Games](https://recommend.games/): board game recommender website\n* [recommend-games-server](https://gitlab.com/recommend.games/recommend-games-server):\n Server code for [Recommend.Games](https://recommend.games/)\n* [board-game-scraper](https://gitlab.com/recommend.games/board-game-scraper):\n Board game data scraper\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Board games recommender engine",
"version": "3.6.0",
"project_urls": {
"Documentation": "https://gitlab.com/recommend.games/board-game-recommender/blob/master/README.md",
"Funding": "https://paypal.me/mschepke",
"Homepage": "https://recommend.games/",
"Say Thanks!": "https://saythanks.io/to/mk.schepke%40gmail.com",
"Source": "https://gitlab.com/recommend.games/board-game-recommender",
"Tracker": "https://gitlab.com/recommend.games/board-game-recommender/issues",
"Twitter": "https://twitter.com/recommend_games"
},
"split_keywords": [
"board games",
"tabletop games",
"recommendations",
"recommender",
"recommender engine",
"recommendation engine",
"boardgamegeek",
"bgg",
"ratings",
"turicreate",
"collaborative filtering",
"ludoj",
"ludoj-recommender"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "76645bbb2130b508bb123190db1bbc0b76393b7fc197fe76d3d5ce977e10e00a",
"md5": "4269bcdc98ede2f6984d72577c8fccd3",
"sha256": "262e736e6f7a6b3e4cfb32f41235be398196b7248de1d70aae2195c41a668977"
},
"downloads": -1,
"filename": "board_game_recommender-3.6.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "4269bcdc98ede2f6984d72577c8fccd3",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.7.0,<3.9.0",
"size": 26902,
"upload_time": "2024-02-11T11:01:05",
"upload_time_iso_8601": "2024-02-11T11:01:05.889539Z",
"url": "https://files.pythonhosted.org/packages/76/64/5bbb2130b508bb123190db1bbc0b76393b7fc197fe76d3d5ce977e10e00a/board_game_recommender-3.6.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d756c249166ac5226a9b4828982932f7e8be3855b564452b2141a3aefe3dcade",
"md5": "9c63d3160b7409e87c17a90476f62174",
"sha256": "c7e60a3d51334adf5915e8032a6e945436b87be2c189a45851580bea9fad7806"
},
"downloads": -1,
"filename": "board-game-recommender-3.6.0.tar.gz",
"has_sig": false,
"md5_digest": "9c63d3160b7409e87c17a90476f62174",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7.0,<3.9.0",
"size": 25142,
"upload_time": "2024-02-11T11:01:08",
"upload_time_iso_8601": "2024-02-11T11:01:08.154254Z",
"url": "https://files.pythonhosted.org/packages/d7/56/c249166ac5226a9b4828982932f7e8be3855b564452b2141a3aefe3dcade/board-game-recommender-3.6.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-11 11:01:08",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "recommend.games",
"gitlab_project": "board-game-recommender",
"lcname": "board-game-recommender"
}