## 4 Methodology
### Results of the Analysis  
In the following section, the findings of the data analysis are presented in Table 3, with a specific focus on freely accessible Arabic corpora. As shown in Figure 3, most of the corpora were obtained from reliable repositories, with a considerable number retrieved from the GitHub repository. However, it is worth noting that of the 48 corpora analyzed, 17 were obtained from alternative sources, namely, websites owned by the respective researcher or publisher.  
In terms of corpus size, the analysis revealed that 20 corpora were measured in gigabytes (GB), 25 were measured in kilobytes (KB), and the remaining 3 were measured in megabytes (MB), as shown in Figure 4. The variations in corpus size may be due to differences in content type and format. Corpora such as open super-large crawled aggregated corpus (OSCAR) involve the continuous generation of content [14]; in contrast,  
Figure 3: Most widely used repositories to host corpora.  
other corpora, such as common crawl (CC) corpora, consist of data scraped from the web over several years [25], and some corpora, such as Hindawi, are derived from books. Such corpora tend to be of larger sizes measured in GB; in contrast, corpora that primarily contain articles extracted from CSV files and converted to plain text are in measured KB.  
```
Input: Raw text (text) Output: Preprocessed text BEGIN Function preprocess (text): Initialize unique-texts as an empty set/Initialize a set to store unique texts For each file-1 in folder-1://Loop through the files in folder-1 For each file-n in folder-n://Loop through the files in folder-n
5 If file-1.strip() is equal to file-n.strip()://Check for duplicate texts Continue to the next iteration//If duplicate, continue to the next iteration End If Add file-1.strip() to unique-textsl/Add the text to unique-texts if not a duplicate End For End For Remove URLs from text/Text cleaning operations Remove links from text Remove emails from text Remove HTML line breaks from text Remove HTML/XML markup from text Remove repeated characters from text Remove extra spaces from text Remove Tatavel from text Remove punctuation from text Remove noisy characters from text Remove diacritics from text Remove non-digit repetition from text Replace slash with dash in text Insert whitespace before and after non-Arabic digits, English Digits, and brackets in text Insert whitespace between words and numbers or numbers and words in text Return the preprocessed text END Function END
```  
**Algorithm 1**Preprocessing algorithm for Arabic raw text  
```
Input: Preprocessed text text (text) Output: Combined text in one folder (combined-text)
1 BEGIN Function un-preprocess (output-text1, output-folder): Create the output folder if it doesn't exist/Create the output folder if it doesn't exist For each i and f-name in enumerate (output-text1)://Loop through the list of file names Read the content of f-name into text/Read the content of the file into text Save text as a separate file named \"output-i.txt\" in the output-folder End For END Function END
```  
**Algorithm 2**Combining preprocessed text into one folder Our analysis of the collected corpora led to several key findings. First, the majority of corpora were obtained from well-established repositories, with GitHub emerging as the most prominent platform. This finding highlights the significance of these repositories as valuable sources of corpus content and their crucial role in facilitating knowledge sharing and collaboration. The analysis further revealed variations in corpus size, which ranged from GB to KB and MB. These differences are indicative of diverse content types and formats, emphasizing the importance of considering storage capacity and bandwidth limitations when working with corpora of different sizes.