이 페이지는 질문추천을 수행하는 micro service의 설명입니다.

간단한 설명

유저가 질문을 함 → 비슷한 질문들이 뭐가 있었는지 찾음 → 비슷한 질문들의 후속질문이 뭐였는지 보고 추천해줌

아래와 같은 단계를 거칩니다.

  1. 데이터베이스 구축: 먼저, 약 10개의 teams 에 대한 질문과 응답을 더미데이터로 넣어둡니다. 질문과 응답, 그리고 후속질문을 데이터베이스에 저장합니다.
  2. 카테고리화: 이 질문들을 유사성에 따라 그룹화하여, 비슷한 질문들이 함께 묶이도록 합니다. 이 과정을 '클러스터링'이라고 부릅니다.
  3. 실제 유저에게 질문 추천: 유저의 새로운 질문이 들어오면, 이 질문을 벡터화하여 가장 유사한 카테고리(클러스터)를 찾습니다. 그리고 그 클러스터에 해당 질문을 추가합니다.
  4. 후속 질문 추천: 사용자의 질문에 유사한 클러스터의 후속 질문들 중 가장 인기 있는 것들을 추천합니다.
  5. 동의어 처리: 질문을 분석할 때 동의어를 고려해야 합니다. 이를 위해 사전을 만들어 동의어를 관리하거나, 텍스트를 벡터화할 때 동의어를 동일하게 처리하는 기술을 사용합니다.
  6. 데이터 균형 유지: 데이터가 한쪽으로 치우치게 되면 클러스터링이 어려워집니다. 이를 방지하기 위해 데이터를 정규화하거나 표준화하여, 데이터가 고르게 분포되도록 조정합니다.

상세 구성도

  1. 질문 벡터화: 질문들을 TF-IDF 방식으로 벡터화하여, 각 질문의 텍스트 데이터를 수치적 정보로 변환합니다. 이는 질문의 내용이 가지는 특성을 기계가 이해할 수 있는 형태로 표현하는 과정입니다.
  2. 클러스터링: 벡터화된 데이터를 바탕으로 K-Means 클러스터링을 실행하여, 유사한 질문들을 그룹화합니다. 이 과정에서 각 질문은 가장 가까운 클러스터 중심에 할당되어 클러스터를 형성합니다.