## 3 The Proposed Framework
Consequently, we recommend a domain-independent unsupervised Term Frequency Inverse Document Frequency (TFIDF) approach [69] that eliminates manual keyword identification requirements. The approach provides weightage to individual words based on their uniqueness and machine-perceived importance. The TFIDF differentiates between important and common words by comparing their frequency in individual documents and across entire texts. Sentences that have high cumulative TFIDF scores are perceived to have higher importance. Given a document collection \(D\), a word \(w\), and an individual document \(d\)\(\varepsilon\)\(D\), TFIDF can be defined as follows:  
\[fw,d*log(|D|/fw,D) \tag{1}\]  
where _fw,d_ equals the number of times \(w\) appears in \(d\), \(|D|\) is the size of the corpus, and _fw,D_ equals the number of documents in which \(w\) appears in \(D\)[69]. Step four involves tagging and information extraction. Once the preprocessed data are reduced, we move to tagging agents, attributes, and actions/interactions that can occur. We propose the following approaches for tagging agent architecture:  
_Candidate agents:_ Following the conventional approaches in database design and OOP [61], we propose identifying the subjects of sentences as candidate agents. For instance, the _former_ in 'the farmer grows cotton' can be a candidate agent. NLP has well-developed tools such as part-of-speech tagger and named-entity tagger that can be used to detect subjects of sentences. _Candidate actions:_ The main verbs of sentences can become candidate actions. The main verbs need candidate agents as the subject of the sentences. For example, in the sentence 'the farmer grows cotton,' the _farmer_ is a candidate agent, and the subject of the sentence; _grows_ is the main verb and, hence, a candidate action. _Candidate attributes:_ Attributes are properties inherent to the agents. Sentences containing candidate agents as subjects and _be_ or _have_ as their primary (non-auxiliary) verbs provide attribute information, e.g., 'the farmer _is_ a member of a _cooperative_,' and 'the farmer _has 10 ha_ of land.' Additionally, the use of possessive words also indicates attributes, e.g., _the cow_ in the sentence'my cow is very small' is an attribute. _Candidate interactions:_ Main verbs indicating relationships between two candidate agents are identified as interactions. Hence the sentences containing **two or more candidate agents** provide information on _interactions_, e.g., **'The government**_trains_** the farmers.' Since the data tagging is strictly unsupervised, false positives are likely to occur. The algorithm can over-predict agents, as the subjects of all the sentences are treated as candidate agents. In ABM, however, agents are defined as autonomous actors, they act and make decisions. Hence, we propose to use a hard-coded list of action verbs (e.g., eat, grow, and walk) and decision verbs (e.g., choose, decide, and think) to filter agents from the list of candidate agents. Only the candidate agents that use both types of verbs qualify as agents. Candidate agents not using both verbs are categorized as _entities_ that may be subjected to manual evaluation. Similarly, people use different terminologies that are semantically similar. We recommend using external databases such as WordNet to group semantically similar terminologies. Step five involves supervised contextualization and evaluation. While the unsupervised analysis reduces data volume and translates semi-structured interviews to the agent-action-attribute structure, noise can percolate to the outputs since the process is unsupervised. Additionally, the outputs need to be contextualized. Consequently, we suggest performing a series of supervised output filtration followed by manual contextualization and validation. The domain-independent unsupervised analysis extracts individual sentences that can sometimes be ambiguous or domain irrelevant. Hence the output should be filtered based on ambiguity and domain relevancy.