## 3 Methodology
### Preprocessing Module  
This module utilizes the Stanza library from Stanford NLP [52] and the Natural Language Toolkit [53] to prepare customer review data through six stages:  
1. Word segmentation: The Stanza toolkit extracts lexical units, such as words, symbols, and semantically significant elements. 2. Word correction: This work investigates the spelling error correction of words using the psp spellchecker library [54] and a dictionary named WordCoreection. For instance, pspellchecker can correct \"survice\" to \"service\", while WordCoreection handles cases like \"chuwan\" being replaced with \"chawan\". 3. Slang and abbreviation processing: This stage aims to correct slang and abbreviations using LOD. Additionally, a Slang and Abbreviations (S&A) dictionary is utilized to correct slang and abbreviations missing in the LOD. For example, \"veggie\" is  
Figure 1: The diagrammatic framework of ATE from the training dataset. replaced with \"vegetable\", \"NYC\" with \"New York City\", and \"rito\" with \"burrito\". Algorithm 1 describes this process. Algorithm 1 consists of two stages. In the first stage, the segmented word set (\(SW\)) is processed to detect slang and abbreviations using the function _fDBP_. This function employs SPARQL to query DBpedia and searches for slang and abbreviations using the \"dbo:wikiPageRedirects\" property for abbreviations and the \"dbo:wikiPageWikiLink\" property for slang. The output is a revised segmented word set containing updated slang and abbreviations from DBpedia. In the second stage, any slang or abbreviations not found in DBpedia are analyzed using the S&A dictionary via the function _fS&A_. The results of the updated segmented words are then added to the \(NSW\) set. Part of Speech (POS) tagging assigns a POS tag to each word in a sentence, forming a combination of the word and its corresponding POS tag. For example: \"The (Determiner: DT)\", \"waiter (Noun: NN)\", \"was (Past tense verb: VBD)\", \"attentive (Adjective: J)\", \"(End of sentence punctuation: \(J\)\", \"the (Determiner: DT)\", \"food (Noun: NN)\", \"was (Past tense verb: VBD)\", \"delicious (Adjective: J)\", \"and (Coordinating conjunction: CC)\", \"the (Determiner: DT)\", \"good (Adjective: J)\", \"views (Plural noun: NNS)\", \"of (Proposition or subordinating conjunction: IN)\", \"the (Determiner: DT)\", \"city (Noun: NN)\", \"were (Past tense verb: VBD)\", and \"great (Adjective: J)\". Dependency parsing is a process that involves identifying the relationships between words in a sentence to analyze its grammatical structure. This process utilizes dependency grammar (DG) [55], a linguistic framework for analyzing grammatical structures. It consists of two main components. The \"head\" is a linguistic element that governs the syntax of other words, while the \"dependent\" is a word that has a semantic or syntactic connection with the head. The meaning or grammatical function of a word depends on its head, and this relationship is depicted by labeled arrows known as dependencies. These dependencies include subject, compound, object, modifier, and others, as illustrated in Figure 2.  
Figure 2 illustrates the dependencies between the terms of the sentence, which can be defined using a general notation based on set theory as follows:  
The dependency grammar, denoted as \(DG\), is defined as a tuple:  
\[DG=<V,E>,\]  
where \(V\) and \(E\) are defined as follows. Let \(V\) be a finite set of nodes and their attributes in the graph, defined as a set of tuples,  
\[V= \{(WID:wid_{i},DW:dw_{i},POS:pos_{c},HW\_ID:hid_{j},\] \[HW:hw_{j})\mid\forall i=1\ldots n\text{ and }\forall j=2\ldots m\}\]  
where \(wid_{i}\) is the node's unique identifier, \(dw_{i}\in NSW\) is the dependent word of the word node, \(pos_{c}\in POS\) is a term of POS tag, \(hid_{j}\) is the head word's unique identifier, and \(hw_{j}\in NSW\) is the head word of the word node.