## 3 Results
### Data Collection and Preprocessing  
We collected a dataset of text documents from IS standards that we want to analyze. We meticulously gathered all the textual content from the studied standards that references the term \"risk\". The collected text consists of 2325 words, 13,672 characters without spaces, and the word \"risk\" occurs 746 times. Then we cleaned the collected text data, removing unnecessary characters, punctuation marks, and special characters. Cleaning text data is an important step in preparing data for analysis or natural language processing (NLP) tasks. We converted the entire text to lowercase to ensure consistency in text data. This prevents variations in capitalization from being treated as distinct words. Punctuation marks like commas, periods, exclamation marks, and question marks are often not relevant for many NLP tasks. Extra whitespace characters (such as tabs and multiple spaces) need to be removed or replaced with single spaces. Stop words are common words like \"and\", \"the\", \"is\", etc., that might not add much meaning to analysis. Depending on our analysis, we removed them using libraries like Natural Language Toolkit (NLTK) or spaCy. The purpose of this function is to clean and preprocess the input text by applying a series of text processing operations. These operations include the following:  
* Converting the text to lowercase;
* Removing punctuation characters;
* Removing numeric digits (numbers);
* Removing special characters (non-alphanumeric and non-whitespace characters);
* Removing extra whitespace;
* Removing common English stopwords. Then, we performed word tokenization and subword tokenization using techniques like Byte-Pair Encoding (BPE) or WordPiece. Tokenization is the process of breaking down a text into individual units, which are usually words or subword units, for further analysis. Word tokenization involves splitting the text into individual words. The NLTK and spaCy libraries are commonly used for this purpose. Byte-Pair Encoding is a subword tokenization technique that breaks down words into smaller subword units. WordPiece is another subword tokenization technique, primarily used by the BERT model. ### Data Collection and Preprocessing  
For Feature Extraction, we chose the method Term Frequency-Inverse Document Frequency (TF-IDF). Converting text into numerical features using TF-IDF is a common technique in NLP for machine learning. We imported the necessary Python libraries, including scikit-learn for TF-IDF vectorization. Then, we created a TF-IDF vectorizer object and used it to convert our text data into numerical features. Each row in the resulting matrix represents a document, and each column represents a unique word (term) from the entire corpus. The values in the matrix represent the importance of each word within each document relative to its occurrence across all documents. Higher values indicate greater importance. We used the TF-IDF matrix as input features for machine learning algorithms. Typically, this matrix is used for tasks like text classification, clustering, or any other NLP-related task. The TF-IDF vectorization process captures the importance of words within individual documents relative to the entire corpus. It is a common technique for text-based machine learning tasks, helping algorithms understand the significance of words in different documents while considering their frequency across the entire dataset. Applying dimensionality reduction techniques like Principal Component Analysis (PCA) or t-Distributed Stochastic Neighbor Embedding (t-SNE) involves several steps to reduce the dimensions of data while preserving important information. To apply Principal Component Analysis (PCA) to a dataset represented as a TF-IDF array, we need to use Python and relevant libraries like NumPy and scikit-learn. First, we need to load the TF-IDF data from JSON file into a suitable data structure like a NumPy array or a DataFrame. To reduce the dimensionality of TF-IDF data, we applied PCA.