Spaces:
Sleeping
Sleeping
File size: 979 Bytes
fbebf66 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
from dataclasses import dataclass
from typing import Dict, List, Optional
import networkx as nx
import numpy as np
@dataclass
class SignNode:
id: str
level: str
meaning_vector: np.ndarray
context: Dict[str, float]
relations: List[str]
class SemioticNetworkBuilder:
def __init__(self):
self.graph = nx.MultiDiGraph()
self.meaning_extractor = MeaningExtractor()
self.context_analyzer = ContextAnalyzer()
def construct(self, input_data: Dict[str, Any]) -> nx.MultiDiGraph:
signs = self._extract_signs(input_data)
self._build_nodes(signs)
self._establish_relations()
return self._optimize_network()
def _extract_signs(self, input_data: Dict[str, Any]) -> List[SignNode]:
meanings = self.meaning_extractor.process(input_data)
contexts = self.context_analyzer.analyze(input_data)
return [self._create_sign_node(m, c) for m, c in zip(meanings, contexts)] |