HIM-self / src /core /semiotic_network.py
Takk8IS
Initial HIM implementation
fbebf66
raw
history blame
979 Bytes
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)]