Spaces:
Sleeping
Sleeping
| """ | |
| Utility functions for the Emoji Mashup application. | |
| """ | |
| import logging | |
| import os | |
| import pickle | |
| # Configure logging | |
| def setup_logging(): | |
| """Configure application logging.""" | |
| logging.basicConfig( | |
| level=logging.INFO, | |
| format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' | |
| ) | |
| return logging.getLogger(__name__) | |
| # Initialize logger | |
| logger = setup_logging() | |
| def kitchen_txt_to_dict(filepath): | |
| """Convert emoji kitchen text file to dictionary. | |
| Args: | |
| filepath: Path to the emoji kitchen text file | |
| Returns: | |
| Dictionary mapping emojis to descriptions | |
| """ | |
| emoji_dict = {} | |
| try: | |
| with open(filepath, 'r', encoding='utf-8') as f: | |
| for line in f: | |
| parts = line.strip().split(' ', 1) | |
| if len(parts) == 2: | |
| emoji, desc = parts | |
| emoji_dict[emoji] = desc | |
| return emoji_dict | |
| except Exception as e: | |
| logger.error(f"Error loading emoji dictionary from {filepath}: {e}") | |
| return {} | |
| def save_embeddings_to_pickle(embeddings, filepath): | |
| """Save embeddings dictionary to a pickle file. | |
| Args: | |
| embeddings: Dictionary of embeddings to save | |
| filepath: Path to save the pickle file to | |
| Returns: | |
| True if successful, False otherwise | |
| """ | |
| try: | |
| os.makedirs(os.path.dirname(filepath), exist_ok=True) | |
| with open(filepath, 'wb') as f: | |
| pickle.dump(embeddings, f) | |
| logger.info(f"Saved embeddings to {filepath}") | |
| return True | |
| except Exception as e: | |
| logger.error(f"Error saving embeddings to {filepath}: {e}") | |
| return False | |
| def load_embeddings_from_pickle(filepath): | |
| """Load embeddings dictionary from a pickle file. | |
| Args: | |
| filepath: Path to load the pickle file from | |
| Returns: | |
| Dictionary of embeddings if successful, None otherwise | |
| """ | |
| if not os.path.exists(filepath): | |
| logger.info(f"Pickle file {filepath} does not exist") | |
| return None | |
| try: | |
| with open(filepath, 'rb') as f: | |
| embeddings = pickle.load(f) | |
| logger.info(f"Loaded embeddings from {filepath}") | |
| return embeddings | |
| except Exception as e: | |
| logger.error(f"Error loading embeddings from {filepath}: {e}") | |
| return None | |
| def get_embeddings_pickle_path(model_id, emoji_type): | |
| """Generate the path for an embeddings pickle file. | |
| Args: | |
| model_id: ID of the embedding model | |
| emoji_type: Type of emoji ('emotion' or 'event') | |
| Returns: | |
| Path to the embeddings pickle file | |
| """ | |
| # Create a safe filename from the model ID | |
| safe_model_id = model_id.replace('/', '_').replace('\\', '_') | |
| return os.path.join('embeddings', f"{safe_model_id}_{emoji_type}.pkl") |