from transformers import pipeline from dataclasses import dataclass, field from typing import List, Optional, Dict, Any import re from datetime import datetime import logging import html from uuid import uuid4 import torch import gradio as gr import emoji # Настройка логирования logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) logger = logging.getLogger(__name__) @dataclass class Comment: """Представляет комментарий Instagram со всеми метаданными""" id: str = field(default_factory=lambda: str(uuid4())) username: str = "" time: str = "" content: str = "" likes: int = 0 level: int = 0 parent_id: Optional[str] = None replies: List['Comment'] = field(default_factory=list) is_verified: bool = False mentions: List[str] = field(default_factory=list) hashtags: List[str] = field(default_factory=list) is_deleted: bool = False sentiment: Optional[str] = None language: Optional[str] = None emojis: List[str] = field(default_factory=list) def __post_init__(self): if len(self.content) > 2200: logger.warning(f"Comment content exceeds 2200 characters for user {self.username}") self.content = self.content[:2200] + "..." class InstagramCommentAnalyzer: """Анализатор комментариев Instagram с расширенной функциональностью""" COMMENT_PATTERN = r''' (?P[\w\u0400-\u04FF.-]+)\s* (?P