## 7 System's Architecture  
The previously trained multi-class classification model, denoted as \(\Gamma\), and the binary text classification model, \(\Gamma_{binary}\), are integrated into the final system. The final system is depicted in Figure 2, which is composed of multiple blocks detailed in the sections below (for notation details, see Section 3):  
1. **Vectorization**. The test text, denoted as \(x^{t}\), is vectorized using the LaBSE vectorization model \(\Gamma_{LaBSE}\), resulting in the vector output \(\vec{x}^{t}\). Specifically, \(\vec{x}^{t}=\Gamma_{LaBSE}(x^{t})\). 2. **Binary classification**. The vector \(\vec{x}^{t}\) is then passed into the binary classification model \(\Gamma_{binary}\), which returns the sigmoid function value from the interval \([0,1]\). If the output of \(\Gamma_{binary}(\vec{x}^{t})\leq 0.5\), the text \(x^{t}\) is labeled with the _known_ (i.e., stable) class (denoted in Table 1); otherwise, it is labeled as the _new_ class. 3. **Multi-class classification (conditional)**. If \(\Gamma_{binary}(\vec{x}^{t})\leq 0.5\), then \(\vec{x}^{t}\) is passed to the multi-class classification model \(\Gamma\). This model returns pairs of class labels and their softmax probabilities: \(\Gamma(\vec{x}^{t})=\{(c_{j},P(c_{j}))\mid P(c_{j})>th\text{ or }c_{j}=c_{\text{max}}\}\), where \(c_{\text{max}}\) is the class with the highest probability, irrespective of the threshold. The pairs \((c_{j},P(c_{j}))\) are ordered such that \(P(c_{j})>P(c_{j+1})\) for all \(j\). In our system, the threshold value \(th\) is arbitrarily set at 0.3, allowing a maximum of three classes to be determined. 4. **Clustering (conditional)**. If \(\Gamma_{binary}(\vec{x}^{t})>0.5\), the input text \(x_{i}^{t}\) and its vector \(\vec{x}^{t}\) are passed into the clustering mechanism: 1. **Data storage**. The incoming instance \(x^{t}\) is added to the \(D^{Cl}\) dataset: \(D^{Cl}=D^{Cl}\cup\{x^{t}\}\), and its vector \(\vec{x}^{t}\) to \(\vec{D}^{Cl}\): \(\vec{D}^{Cl}=D^{Cl}\cup\{\vec{x}^{t}\}\). The text \(x^{t}\) is machine translated into English and stored in \(D^{Cl}_{En}\): \(D^{Cl}_{En}=D^{Cl}_{En}\cup\{x^{t}_{En}\}\). The machine translation is performed using the Googletrans Python library. 2. **Check against existing clusters**. The algorithm checks whether \(\vec{x}^{t}\) can be assigned to one of \(n\) clusters \(\{Cl_{1},Cl_{2},\dots,Cl_{n}\}\), each with names represented as keyword collections \(\{Cl_{1}^{name},Cl_{2}^{name},\dots,Cl_{n}^{name}\}\). Each cluster \(Cl_{i}\) has a centroid \(\vec{\mu}_{i}\), calculated as the mean vector of all instances belonging to it. The instance \(x^{t}\) is assigned to the cluster \(Cl_{k}\) for which the Euclidean distance is minimal, yet below the threshold \(th_{r}\): \(k=\arg\min_{i}\{\|\vec{x}^{t}-\vec{\mu}_{i}\|\mid\|\vec{x}^{t}-\vec{\mu}_{i} \|\leq th_{r}\}\). Here, \(th_{r}=1.037\) serves as the maximum radius, corresponding to the largest Euclidean distance between any instance in the training dataset and the centroid of its _known_ class, as listed in Table 1. This threshold ensures that the dimensions of _new_ formed clusters approximate those of the _known_ classes. If \(x^{t}\) is successfully assigned to cluster \(Cl_{k}\), then the cluster's name, \(Cl_{k}^{name}\), is returned. 3. **Reclustering**. If \(\vec{x}^{t}\) cannot be assigned to any of the current \(n\) clusters, this number is incremented by 1, resulting in \(n+1\). This new number is used as the argument for the _number of clusters_ in the K-means clustering algorithm [43]. The _repeats_ parameter is set to 25 to minimize the impact of initial centroid placements; all other parameters are set to their defaults. The clustering is performed using the nltk.cluster Python library. During clustering, all instances from \(D^{Cl}\), including their vectors from \(\vec{D}^{Cl}\) and their English translations from \(D^{Cl}_{En}\), are organized into new, non-overlapping clusters \(\{Cl_{1},Cl_{2},\dots,Cl_{n+1}\}\). 4. **Naming of clusters**.