{"id":20652441,"url":"https://github.com/thesofakillers/ir1-labs","last_synced_at":"2025-09-07T21:13:24.343Z","repository":{"id":70961834,"uuid":"459105549","full_name":"thesofakillers/ir1-labs","owner":"thesofakillers","description":"Assignments for Information Retrieval 1","archived":false,"fork":false,"pushed_at":"2022-10-16T17:09:53.000Z","size":2524,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-07T19:03:32.133Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thesofakillers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-14T09:59:29.000Z","updated_at":"2025-03-13T17:15:57.000Z","dependencies_parsed_at":"2023-07-07T04:17:01.343Z","dependency_job_id":null,"html_url":"https://github.com/thesofakillers/ir1-labs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/thesofakillers/ir1-labs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesofakillers%2Fir1-labs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesofakillers%2Fir1-labs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesofakillers%2Fir1-labs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesofakillers%2Fir1-labs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thesofakillers","download_url":"https://codeload.github.com/thesofakillers/ir1-labs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesofakillers%2Fir1-labs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274095821,"owners_count":25221519,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T17:34:59.126Z","updated_at":"2025-09-07T21:13:24.297Z","avatar_url":"https://github.com/thesofakillers.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Information Retrieval 1 - Assignments\n\nAssignments for Information Retrieval 1, a course for our MSc in AI. We are \nomitting our University name for searchability reasons. Our MSc university \ncan be found on our LinkedIns or CVs.\n\n## Content\n\nFor more details on each assignment, users are encourage to visit the\nrespective folders. In general, the assignment covered the following:\n\n1. Assignment 1:\n    - Term-based matching (TF-IDF, BM25, QL)\n    - Semantic-based matching (LSI, LDA)\n    - re-ranking\n2. Assignment 2:Offline Learning to Rank (LTR)\n    - Pointwtise LTR\n    - Pairwise LTR\n    - Listwise LTR\n    - Evaluation\n\n## Development\n\nBecause of the nightmare that is git version control and jupyter notebooks\nacross 3 people, and the limitations of tools such as Colab and Deepnote, we use\n[jupytext](https://jupytext.readthedocs.io/en/latest/index.html) to work on this\ncollaboratively.\n\nBasically, we do not commit the notebooks themselves to version control, but\ninstead a python-representation maintained by jupytext.\n\nUpon cloning the repository and completing the setup below, users should run\n\n```console\njupytext --sync hw2/hw2.py\n```\n\nFor generating `hw2/hw2.ipynb`, for example. Once generated, users can work on\nthe notebook using Jupyter Notebook, Jupyter Lab, VS Code or any other IDE.\nEdits on the notebook will be automatically reflected on its paired python file,\nwhich we then commit to version control. Merge conflicts should be minimal and\neasily dealt with in this way.\n\nBefore submission, we should copy paste our cells into a fresh submission\nnotebook to avoid issues with autograding.\n\nOnce the notebook is complete, you can add it to the repository for posterity by\nforce-staging it with\n\n```console\ngit add -f hw2.ipynb\n```\n\n## Setup\n\nWe use python 3.6.5. To set this up with conda, run\n\n```console\nconda create -n ir1 python=3.6.5\n```\n\nOnce the installation is complete, remember to activate with\n\n```console\nconda activate ir1\n```\n\nCertain users have reported issues with the conda installation of python 3.6.5,\nnamely [this issue](https://github.com/conda/conda/issues/9298), \"source code\nstring cannot contain null bytes\". A simple fix is to run\n\n```console\nconda install https://repo.anaconda.com/pkgs/main/osx-64/python-3.6.5-hc167b69_1.tar.bz2\n```\n\nOnce the correct python version is installed and activated, run\n\n```console\npip install -r hw1/requirements.txt\npip install -r hw2/requirements.txt\n```\n\nSo to install the required packages.\n\nPlease, also install jupytext with\n\n```console\npip install jupytext\n```\n\nNote that this information and more is also handled by\n[poetry](https://python-poetry.org/) in [pyproject.toml](pyproject.toml) and\n[poetry.lock](poetry.lock).\n\n## Useful Notes\n\n### Student IDs\n\n```JSON\n{\n  \"giulio\": \"13010840\",\n  \"matteo\": \"13880527\"\n}\n```\n\nVelizar decided to drop the course but will continue helping us :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesofakillers%2Fir1-labs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthesofakillers%2Fir1-labs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesofakillers%2Fir1-labs/lists"}