- intent (encapsulated by "[ ]")
- [ < intent > ]
- Keyword, Answer (delimited by "=", must be specified under an intent)
- < ... >=< ... >
- reset
- load
- exit
- help
- save
- Creates a new linked list for every intent loaded from the config ini file
- Each keyword and answer is stored as a node within the linked list created
- For the chatbot to answer a question, the intent is retrieved from the question to identify the correct linked list, then iterates through its nodes to find a keyword used from the question, then outputs its answer if found.
- Creates 4 hashtables (*counts, *weights, *hashtable, *intents)
- For every intent loaded from the config ini file, *intents is appended
- *counts and *weights are separated depending on each intent within *intents, where *counts signify the number of keyword-answer pair loaded into each intent, and *weights signify the unique index of each keyword for its output
- *hashtable then stores the answer with weights as its index, such that its dependent on *weights
- Rendezvous hashing and feature hashing are used such that known keywords within the question are retrieved, then its weights are calculated and totalled from *weights, and used as an index to retrieve the answer from *hashtable
- ✓ Linked list method has been fully implemented
- ✕ Hashtable method suffers from memory leakage
- ✕ Hashtable method can have *counts removed
- ✕ Hashtable method lacks user command implementation