## 4 Methodology and Experimental Results
### Methodology  
Our goal was to separate, i.e., classify, complex sentences from simple ones. We approached the problem as both a classification and a clustering task. To do this, we extracted certain features from our dataset that could help classify the sentences into one of the two classes. Figure 1 clearly illustrates each step of our methodology and explains the connections between them. As previously mentioned, this paper focuses on the effect of shallow characteristics on low-level readers. For this purpose, we used the TextStat Python library [33], which enables the calculation of statistics from text and assists in determining readability, complexity, and grade level. This tool extracts a variety of shallow features and formulas while being flexible in terms of its input by allowing multiple sentences at a time to be analyzed individually. We also experimented with the well-known Coh-Metrix web tool [10; 34], but it appeared to be inappropriate for batch analysis of multiple individual sentences at the time of access. In addition to Coh-Metrix, we ran some tests using the TAACO [35] and TAASSC [36] feature extraction tools. These are two useful tools for POS feature extraction that use CoreNLP,  
Figure 1: Infographic illustrating each step of our methodology. but they did not provide a viable solution for batch analysis of individual sentences for the task at hand. Making use of TextStat, we created two separate Python scripts. The first Python script performs feature extraction. It takes as input the desired dataset (either simple or complex) and exports a correctly formatted CSV file with the feature values of each sentence in the dataset. The second script takes the exported CSV files and merges them while shuffling the complex and simple sentences, creating a CSV with 8001 total rows, with the columns representing the features/characteristics of each sentence, and the final column representing the complexity. Taking into account the reviewed literature on the most effective features for the target audience, along with the capabilities of the software used, we decided to employ the following list of features in our lab tests:  
* Flesch reading ease;
* Flesch-Kincaid grade level;
* Automated Readability Index;
* Gunning Fog;
* McAlpine EFLAW;
* Linear Write Formula;
* Dale-Chall readability score;
* Coleman-Liau index;
* Spache readability;
* Syllable count;
* Monosyllable count;
* Polysyllable count;
* Word count;
* Mini-word count;
* Difficult words;
* Reading time;
* School grade. We further discuss these features in Section 3. Many of them are self-explanatory since shallow features are simple and consider surface-level characteristics. Our tool's unique feature, \"School Grade\", estimates the grade level needed to understand a sentence, based on various readability formulas (more information can be found in [24]). To clarify, since some of the above formulas take into account the number of sentences, their exported values might be significantly different from those if used for readability assessment of whole texts. Even though this is true, they still serve their purpose since their values just tend to have different ranges per classification group (either complex or simple). We also could not use the SMOG index for this reason since in TextStat, inputs of fewer than 30 sentences are statistically invalid because the SMOG formula was normed on 30 sentence samples. To run our lab tests, we used the Waikato Environment for Knowledge Analysis (WEKA) [12]. WEKA is a collection of machine learning algorithms that also provides tools for data preparation, classification, regression, clustering, and visualization. In our tests, we ran multiple algorithms on our dataset using our extracted features, seeking those that would return the best percentage of correctly classified examples. In addition, we introduced several feature groups to examine whether certain combinations of features and their multitude offered better or worse results.