{"id":19633465,"url":"https://github.com/2shin0/similarity_educational_chatbot","last_synced_at":"2025-06-22T16:33:53.771Z","repository":{"id":255314928,"uuid":"849207884","full_name":"2shin0/similarity_educational_chatbot","owner":"2shin0","description":"💬 임베딩의 개념과 유사도 기반 학습 챗봇 구현","archived":false,"fork":false,"pushed_at":"2024-09-10T07:20:28.000Z","size":200,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-26T21:23:55.591Z","etag":null,"topics":["chatbot","educational-chatbot","embedding","nlp-embeddings","similarity-chatbot"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/2shin0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-08-29T07:10:09.000Z","updated_at":"2024-09-10T07:20:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"2043a410-b460-4c95-b626-77dc84ac9dcc","html_url":"https://github.com/2shin0/similarity_educational_chatbot","commit_stats":null,"previous_names":["2shin0/simmilarity_education_chatbot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/2shin0/similarity_educational_chatbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2shin0%2Fsimilarity_educational_chatbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2shin0%2Fsimilarity_educational_chatbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2shin0%2Fsimilarity_educational_chatbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2shin0%2Fsimilarity_educational_chatbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/2shin0","download_url":"https://codeload.github.com/2shin0/similarity_educational_chatbot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2shin0%2Fsimilarity_educational_chatbot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261324652,"owners_count":23141768,"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":["chatbot","educational-chatbot","embedding","nlp-embeddings","similarity-chatbot"],"created_at":"2024-11-11T12:17:26.990Z","updated_at":"2025-06-22T16:33:48.757Z","avatar_url":"https://github.com/2shin0.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 임베딩의 개념과 유사도 기반 학습 챗봇 구현\n\n## ✅ 임베딩이란?\n임베딩(Embedding)은 자연어 처리에서 사람이 쓰는 자연어를 기계가 이해할 수 있도록 숫자의 나열인 벡터 형태로 바꾸는 과정입니다. 고차원 데이터를 저차원 공간으로 변환하여 의미 있는 벡터 표현을 생성하는 기법으로, 데이터의 의미적 특성을 보존하면서 데이터를 보다 효율적으로 처리할 수 있게 해줍니다. 예를 들어 king과 queen은 벡터 공간에서 비슷한 위치에 있게 됩니다.\n\n### 📌 벡터 간 거리 계산 방법\n1. 코사인 유사도\u003cbr\u003e\n벡터의 방향(각도)을 기반으로 유사성을 측정합니다. 두 벡터가 동일한 방향을 가질수록 유사도가 높습니다.\n![image](https://github.com/user-attachments/assets/9c75aadf-affd-4d55-96ea-4aad5d5b2149)\n2. 유클리드 거리\u003cbr\u003e\n벡터 간의 실제 거리를 측정합니다. 거리가 짧을수록 유사성이 높습니다.\n\n### 📌 임베딩 모델마다 성능이 다른 이유?\n모델마다 아키텍쳐와 사전 학습시킨 훈련 데이터가 다르기 때문에 나의 목적에 따라 적합한 모델이 달라질 수 있습니다. 따라서 원하는 도메인 또는 서비스에서 좋은 성능을 보이는 모델을 선택해야 합니다.\n\n## ✅ 실습1 : Huggingface의 사전 학습된 임베딩 모델로 유사도 기반 챗봇 만들어 보기\n[실습1 코드](https://github.com/2shin0/similarity_educational_chatbot/blob/main/embedding_chat.ipynb) \u003cbr\u003e\n활동 1. 알맞은 형식으로 데이터셋 생성 \u003cbr\u003e\n활동 2. 적합한 모델을 선택하여 유사도 계산 함수 생성 \u003cbr\u003e\n활동 3. Gradio로 간단한 챗봇 구현\n\n## ✅ 실습2 : BM25 + Embedding 앙상블 모델로 유사도 기반 챗봇 만들어 보기\n[실습2 코드](https://github.com/2shin0/similarity_educational_chatbot/blob/main/BM25_Embedding_chat.ipynb) \u003cbr\u003e\n활동 1. BM25와 Embedding 모델 각각 답변 확인 \u003cbr\u003e\n활동 2. 앙상블 모델 생성 \u003cbr\u003e\n활동 3. Gradio로 간단한 챗봇 구현\n\n## ✅ 실습3 : BM25 + Faiss 앙상블 모델로 유사도 기반 챗봇 만들어 보기\n[실습3 코드](https://github.com/2shin0/similarity_educational_chatbot/blob/main/3_BM25_Faiss_chat.ipynb) \u003cbr\u003e\n활동 1. BM25와 Faiss 각각 답변 확인 \u003cbr\u003e\n활동 2. 앙상블 모델 생성 \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2shin0%2Fsimilarity_educational_chatbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F2shin0%2Fsimilarity_educational_chatbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2shin0%2Fsimilarity_educational_chatbot/lists"}