{"id":25653158,"url":"https://github.com/brendanddev/faq-bot","last_synced_at":"2025-02-23T19:31:11.958Z","repository":{"id":278038163,"uuid":"934321550","full_name":"brendanddev/FAQ-Bot","owner":"brendanddev","description":"A starting point for my FAQ Bot personal project. This implementation performs basic string matching with a list of predefined questions, and responses.","archived":false,"fork":false,"pushed_at":"2025-02-17T16:49:06.000Z","size":53,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-17T17:34:20.322Z","etag":null,"topics":["faq","machine-learning","nlp","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brendanddev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-17T16:27:38.000Z","updated_at":"2025-02-17T16:49:09.000Z","dependencies_parsed_at":"2025-02-17T17:46:03.202Z","dependency_job_id":null,"html_url":"https://github.com/brendanddev/FAQ-Bot","commit_stats":null,"previous_names":["brendanddev/faq-bot"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brendanddev%2FFAQ-Bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brendanddev%2FFAQ-Bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brendanddev%2FFAQ-Bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brendanddev%2FFAQ-Bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brendanddev","download_url":"https://codeload.github.com/brendanddev/FAQ-Bot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240367979,"owners_count":19790352,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["faq","machine-learning","nlp","python"],"created_at":"2025-02-23T19:31:11.433Z","updated_at":"2025-02-23T19:31:11.931Z","avatar_url":"https://github.com/brendanddev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FAQ-Bot\n\n## Purpose\nThis is a basic starting point as I begin to understand the inner workings of NLP and ML.\n\n## Features\n- **Basic String Matching:** The bot makes use of basic string matching to compare the user's utterance (input) with a list of predefined questions (intents), and answers (responses).\n- **Utterance Handling:** The utterance is cleaned by removing punctuation, extra spaces, non alphabetic characters, and converting the text to lowercase allowing for a more accurate comparison, reducing errors caused by varying text formats.\n- **Intent Recognition:** The bot attempts to match the cleaned utterance with the list of predefined answers (responses) in order to determine the user's intent. If the bot understands the users intent, a match is found. Otherwise, a default response is provided.\n- **Greeting and Goobyes:** The bot recognizes and responds to common/basic greetings and goodbyes (e.g., 'hi', 'hello'), allowing for a more natural conversation between the bot and the user.\n- **JSON Data:** The lists of predefined questions (intents) and answers (responses) are stored in an external JSON file, making it easy to update or change the data.\n- **Chat Loop:** The main function controlling the interactions between the user and the bot is created using a loop, simulating the continuous interaction between the bot and the user until the user has chosen to quit.\n\n## How it Works (Using the Bot)\n1. **User Input**:\n  - The user will enter an utterance (input) into the bot.\n2. **Cleaning:**\n    - Before processing the utterance, the utterance itself is cleaned, meaning it is stripped of non alphabetic characters, punctuation, and extra spacing.\n3. **Intent Matching:**\n    - The cleaned utterance is compared to a list of predefined intents (questions).\n    - The bot will attempt to find the best match between the user's utterance and the list of intents.\n    - If a match is found, the bot identifies the intent associated with the question.\n4. **Generating a Response:**\n    - After the bot has identified the intent, it will generate a response based on the list of answers (responses).\n\n## Example\n![Alt text](assets/example_image.JPG)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrendanddev%2Ffaq-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrendanddev%2Ffaq-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrendanddev%2Ffaq-bot/lists"}