Spaces:
Runtime error
Runtime error
| # from classes.survey import Preferences | |
| # from typing import Dict | |
| # def get_number_tag_matches(tags: Preferences, hit: Dict) -> float: | |
| # """ | |
| # Get the number of tag matches based on how many of the user's tags match the hit's metadata. | |
| # Args: | |
| # tags: A Preferences object with attributes: | |
| # - time_period: List[str] | |
| # - themes: List[str] | |
| # - exhibits: List[str] | |
| # - art_medium: List[str] | |
| # - additional_interests: List[str] | |
| # hit: A dictionary representing a search result hit. | |
| # Returns: | |
| # A float score representing the number of matching tags. | |
| # """ | |
| # score = 0 | |
| # for key in tags.__dict__.keys(): | |
| # if key in hit['metadata']: | |
| # matches = set(hit['metadata'][key]) & set(getattr(tags, key)) | |
| # score += len(matches) | |
| # return score | |
| import json | |
| from backend.survey import Preferences | |
| from typing import Dict | |
| def load_json_file(filepath): | |
| """Load and return JSON data from a given file path.""" | |
| with open(filepath, 'r') as f: | |
| return json.load(f) | |
| def get_number_tag_matches(tags: Preferences, hit: Dict) -> float: | |
| """ | |
| Get the number of tag matches between the user's preferences and a search result hit's metadata. | |
| Args: | |
| tags: A Preferences object with attributes like time_period, themes, exhibits, etc. | |
| hit: A dictionary representing a search result hit with metadata. | |
| Returns: | |
| A float score representing the number of matching tags. | |
| """ | |
| score = 0 | |
| for key in tags.__dict__.keys(): | |
| if key in hit['metadata']: | |
| matches = set(hit['metadata'][key]) & set(getattr(tags, key)) | |
| score += len(matches) | |
| return score | |