glossm / api

Core API server of Glossm
4 stars 0 forks source link

feat: calculate score based on Levenshtein distance #15

Closed gunwooterry closed 6 years ago

gunwooterry commented 6 years ago

14 에서 논의한 대로, Levenshtein distance 기반으로 점수 계산 함수를 구현했습니다.

상위 10개 답안과 비교하여 각각의 distance를 구하고, distance와 답안의 비율에 따라 감점합니다. 이를 10점 만점으로 계산하여 반올림한 값을 점수(=획득 경험치)로 책정합니다.

다양한 상황에서 점수가 어떻게 나오는지 테스트가 필요합니다. 현재는 asdf 같은 의미 없는 답안을 제출해도 2-3점 정도를 얻을 수 있는 문제가 있습니다. 코드 확인하시고, 이런저런 테스트도 해 보시면서 피드백 주세요.

mnkykm commented 6 years ago

늦어져서 미안합니다. Scoring 시스템 자체는 문제없이 작동하는 것으로 보이나, 말씀하신대로 아무거나 입력해도 2-3점 정도가 얻어지는 문제가 있습니다. score 가 특정 threshold 이상(e.g. 6)일 때만 similarity에 의한 경험치를 부여하고(submission 자체에 의한 경험치는 일괄 부여), 또, 3점 이하인 경우엔 제출 직전에 경고창을 띄우는 게 어떨까 싶습니다.

mnkykm commented 6 years ago

좋은 것 같습니다. is_valid 값은 이후에 유저가 submission을 고치거나 할 때 이전 것을 False 로 하는 데에 사용하는 등 유용할 것 같습니다.