
word2vec으로 단어들 간의 유사성을 벡터로 파악하고
이를 토대로 transformer을 이용해 문장 전체의 의미를 파악한다.
예를들어
질문 : 오늘은 내 생일이다! 누구랑 생일을 보낼까?
사용자 : 아 귀찮은데.. 그냥 집에 있어야겠다.
사용자의 답변에서 MBTI가 I(내향적)임을 판단할 수 있는 명확한 핵심어는 없다.
하지만 사람 입장에서는 '귀찮다'와 특별한 날인데 '집에 있다' 란 말 때문에 사용자가 내향적임을 알 수 있다.
이는 transformer을 사용함으로써 해소 가능하다.
주관식이라는 특성상
무한가지의 답변이 나올 가능성
정말 예상치도 못한 답변이 나올 가능성이 있기때문에
그런것들에 대한 모든 대비를 해야함
서브워드 토크나이저 란 것이 있음!
-> 영어 전용이긴 하지만 고려해보기!
슬램덩크 블로그
https://the-underdogs.kr/mkt-mbtitest-1/
참가자에게 보다 몰입이 되고 설득력을 실어 줄 만한 상황을 구체적으로 만들어 질문



https://www.dbpia.co.kr/pdf/pdfView.do?nodeId=NODE11108463
1) 크롤링
2) 전처리
3) 데이터 라벨링
(1) 작성자 ID 기준으로 라벨링
(2) 텍스트가 묘사하는 기준으로 라벨링
(3) 1개의 텍스트 안에 여러 MBTI 특성이 드러나는 경우 분리하여 라벨링
4) 데이터 개수
LSTM 사용 - 대화속 감정분류 하듯이 사용!

<정확도 분석>

🙄 왜 전체정확도는 저렇게 낮아지는지??????????????????

🥞 데이터 - Kaggle repository에 있는 '사용자 comment' 댓글 사용
🥞 사용모델 - Logistic Regression 모델 사용
🥞 결과

accuracy는 높지만, kaggle user 대상으로만 한 것이어서 불확실한 듯..
F-measure
정밀도(precision)과 재현율(recall)을 통합하여 정확성을 한번에 나타내는 지표
= 가중치를 가진 조화평균
(정확성 측정 용도)
// 계속해서 반복했을 때도 동일하게 나오는지 체크하는 것

🥞 데이터 - pandora (성격 및 인구 통계학적 데이터)
-> Reddit이란 커뮤니티? 같은 사이트에서
MBTI 테스트 결과에 대해 보고하는 공간을 만들어서 9,084 사용자에 대해서 정보를 받아냄. -> 사용자가 직접 라벨링

😎 데이터 - 동일하게 kaggle에서의 social media posts 8,600 users
= 총 422,845 라벨링 데이터
INFP는 9만개/ISFJ는 8천개.
-> 과적합 가능성 있으므로 일부 데이터 제거하여 총 318,650개의 데이터로만 학습했다.
😎 Tools - NLTK, sk-learn
😎 전처리 -


😎 성능 UP 솔루션~
성능은 '전처리'를 어떻게 하느냐에 거의 나뉨.
4유형 중 각 유형마다 다른 하이퍼파라미터를 적용해주면 정확도가 높아질수도, 낮아질수도 있다!
각각의 성격 category를 조사했을 때, 성과는 훨씬 더 좋아진다.
(16-class. test acc : 23% -> 4 binary. test acc : 38%)
😎 error 가능성..
자동 문서 요약 시스템을 위한 요약문 수준 학습 기법(서울대)
https://s-space.snu.ac.kr/handle/10371/166540
문장생성기
https://hoonzi-text.tistory.com/8
mini-gpt를 이용하여 한국어 문장 자동생성
Q.
나는 bot이 질문을 하면 user가 자기 생각을 '글'로 작성하는 프로그램을 만드려고 해. Bot은 user의 답변을 분석하여 이 user의 MBTI를 판단하게 되고. 즉, Bot은 User의 MBTI를 판단하는 인공지능 모델인 셈이지.
내 생각에 User은 정말 다양한 답변을 할 수 있다고 생각해.
예를들어 "혼자보다는 다른 사람과 시간을 보내고 싶어 하는가?"라고 Bot이 질문한다고 하자.
User은 "아무래도 다른 사람과 노는 게 더 재밌지?" 라고 '다른 사람'을 인용해서 대답하던가, "맞아. 난 단체로 놀러가는 게 그렇게 좋더라."라고 직설적으로 Yes,No를 대답할 수도 있어. 또는 '아 배고프다'와 같이 전혀 상관없는 대답을 할 수도 있지.
그래서 내가 User가 할 수 있는 답변의 경우들을 분석해서 모델을 구성하려고 해.
내가 생각한 답변의 경우들은 다음과 같아.
유형 1) ‘Yes’ 또는 ‘No’로 명확하게 대답하는 경우
유형 2) 질문의 ‘Key word’를 인용해서 대답하는 경우
2-1) Key word 그대로 인용
2-2) Key word와 유사한 단어 사용
유형 3) 비유적으로 대답하는 경우
유형 4) 중립적으로 대답하는 경우
유형 5) 완전히 다른 대답을 하는 경우 (else)
이런식으로 나누어서 User의 MBTI를 판단하는 모델을 만들 수 있을까?
A.
네, 당신이 설명한 방식으로 User의 답변을 분석하여 MBTI를 판단하는 모델을 만들 수 있습니다.
예를 들어, 유형 1인 경우 "Yes" 또는 "No"로 대답하는 경우에는 단순히 긍정적 또는 부정적인 응답으로 분류할 수 있습니다.
유형 2인 경우, 특정 키워드를 인용하여 대답하는 경우와 유사한 단어를 사용하는 경우를 고려할 수 있습니다. 이 경우에는 자연어 처리 기술을 활용하여 키워드와 유사한 단어를 찾아내거나 문장 내의 특정 패턴을 인식하는 방법을 사용할 수 있습니다.
유형 3은 비유적인 대답을 하는 경우로, 이러한 대답들은 일반적으로 특정한 성격 특성과 관련이 있을 수 있습니다. 이를 파악하기 위해서는 자연어 처리와 문맥 분석 기술을 사용하여 유사성을 찾아낼 수 있습니다.
유형 4는 중립적인 대답을 하는 경우로, 이러한 경우에는 일반적으로 성격 유형을 정확하게 결정하기 어려울 수 있습니다. 하지만 중립적인 대답이 해당 유형에 속할 가능성이 있는지를 파악하는 데 도움이 될 수 있습니다.
마지막으로, 유형 5는 완전히 다른 대답을 하는 경우로, 이러한 경우는 해당 유형에 대해 불확실성을 가리킬 수 있습니다. 이 경우에는 모델이 'else' 유형으로 분류하여 MBTI를 판단하지 않도록 할 수 있습니다.
요약하면, 당신의 방법으로 User의 답변을 분석하여 MBTI를 판단하는 모델을 구성할 수 있으며, 이를 위해 자연어 처리와 문맥 분석 기술을 활용할 수 있습니다. 다양한 유형의 답변을 처리하는 데 유용한 방법들이 있으므로 이러한 접근 방식을 사용하여 모델을 개발하시기 바랍니다.

->> 효율적이며 더 적은 학습 시간과 용량을 요구한다.


->> 한국어 워드 임베딩 모델


카카오브레인에서 출시한 gpt-3 기반 한국어 언어 생성모델
공감하며 읽었습니다. 좋은 글 감사드립니다.