Suyeon-Stom-Hwang / HCI_Project

1 stars 1 forks source link

hidden keyword 구현 완료했습니다. #27

Closed ytzka14 closed 2 months ago

ytzka14 commented 2 months ago

testing해보니 내부적으로 hidden keyword는 잘 변화하는 것 같고요, 난이도도 사용자가 쉽다/어렵다 반응하는 거에 따라 슬라이더로 제공하는 값보다 작은 20씩 변화하도록 구현되어 있습니다.

구현 방식은 다음과 같습니다.

setting.keywords가 바뀔 때마다 해당 keywords를 기반으로 hidden_keywords를 생성함.

type HiddenKeyword = {
  keyword: string;
  score: number; // 초기값 0
}

hidden_keywords: HiddenKeyword[]; // hidden_keywords.length === 10

글을 생성할 때(MainPage의 button을 누를 때)마다 다음과 같이 작동.

1a. 사용자가 좋다고 했으면 현재 hidden_keywords[]의 모든 entry의 score을 1씩 증가. 1b. 사용자가 나쁘다고 했으면 현재 hidden_keywords[]의 모든 entry의 score을 1씩 감소.

  1. 각 entry의 score을 sigmoid function ( $1 / (1 + e^x)$ ) 에 적용한 함수값에 비례하는 확률로 1개 entry 선택
  2. 선택한 entry를 삭제하고 새로운 hidden_keyword로 대체.
  3. 새로운 글을 생성할 때, 10개 hidden_keyword 중 균등한 확률로 3개 선택, 사용자의 keyword와 함께 프롬프트로 입력.