Download benchmark/data.py from WalidAlHassan/embeddingModelRnD: direct link, hf CLI and curl.
- Browser
- Download file 1.15 kB
-
https://huggingface.co/WalidAlHassan/embeddingModelRnD/resolve/main/benchmark/data.py
- Command line
-
hf download hf://WalidAlHassan/embeddingModelRnD/benchmark/data.py
-
curl -L -o data.py https://huggingface.co/WalidAlHassan/embeddingModelRnD/resolve/main/benchmark/data.py
1.15 kB
| """Loading book corpus and evaluation queries.""" | |
| import json | |
| from dataclasses import dataclass, field | |
| class EvalQuery: | |
| query: str | |
| normalized_query: str | |
| relevance: dict # book_id -> graded relevance (1-3) | |
| categories: list = field(default_factory=list) | |
| def text_for_mode(self, mode): | |
| if mode == "normalized": | |
| return self.normalized_query | |
| return self.query | |
| def load_books(path): | |
| with open(path, "r", encoding="utf-8") as f: | |
| return json.load(f) | |
| def load_queries(path): | |
| with open(path, "r", encoding="utf-8") as f: | |
| raw = json.load(f) | |
| return [ | |
| EvalQuery( | |
| query=item["query"], | |
| normalized_query=item.get("normalized_query", item["query"]), | |
| relevance=item["relevance"], | |
| categories=item.get("categories", []), | |
| ) | |
| for item in raw | |
| ] | |
| def book_to_text(book): | |
| return ( | |
| f"Title: {book['title']}\n" | |
| f"Author: {book['author']}\n" | |
| f"Genre: {', '.join(book['genres'])}\n" | |
| f"Tags: {', '.join(book['tags'])}\n" | |
| f"Description: {book['description']}\n" | |
| ) | |