졸업작품 준비(자료조사)

하영영·2023년 7월 31일

🎯 졸작 준비자료

목록 보기
1/10

MBTI에 대하여..

  • 위키백과 주석 논문을 찾아보자
    ->> MBTI에 대한 좀더 정확한 조사 방법 파악 필요!








😂 방향성

Q. word2vec의 의미

word2vec으로 단어들 간의 유사성을 벡터로 파악하고
이를 토대로 transformer을 이용해 문장 전체의 의미를 파악한다.

예를들어
질문 : 오늘은 내 생일이다! 누구랑 생일을 보낼까?
사용자 : 아 귀찮은데.. 그냥 집에 있어야겠다.

사용자의 답변에서 MBTI가 I(내향적)임을 판단할 수 있는 명확한 핵심어는 없다.
하지만 사람 입장에서는 '귀찮다'와 특별한 날인데 '집에 있다' 란 말 때문에 사용자가 내향적임을 알 수 있다.
이는 transformer을 사용함으로써 해소 가능하다.

Transformer 모델 만들기~


Q. 질문에 대한 대답하는 유형 분류-> PPT 반영 완료

주관식이라는 특성상
무한가지의 답변이 나올 가능성
정말 예상치도 못한 답변이 나올 가능성이 있기때문에
그런것들에 대한 모든 대비를 해야함


Q. 모르는 단어(신조어)에 대해서 어케?

서브워드 토크나이저 란 것이 있음!
-> 영어 전용이긴 하지만 고려해보기!






참고자료

블로그

슬램덩크 블로그
https://the-underdogs.kr/mkt-mbtitest-1/

참가자에게 보다 몰입이 되고 설득력을 실어 줄 만한 상황을 구체적으로 만들어 질문





논문

1) 국문논문 - 이화여대

https://www.dbpia.co.kr/pdf/pdfView.do?nodeId=NODE11108463

🥞 데이터 수집

1) 크롤링

  • MBTI 심리 카페에서 Selenium 모듈을 사용하여 데이터 수집
    (게시글 번호, 댓글 번호, 게시글 텍스트, 댓글 텍스트, 작성자 ID)
  • E/I, N/S, F/T, P/J를 각각 이분법적으로 나누어 0과 1로 라벨링

2) 전처리

  • 한국어 전처리 패키지
    KoNLPy의 Okt
    Keras Tokenizer

3) 데이터 라벨링
(1) 작성자 ID 기준으로 라벨링
(2) 텍스트가 묘사하는 기준으로 라벨링
(3) 1개의 텍스트 안에 여러 MBTI 특성이 드러나는 경우 분리하여 라벨링

4) 데이터 개수

  • 33000 개
    -7(train):3(test)
    -dropout 0.5
    -shuffle이용

🥞 학습

  • LSTM 사용 - 대화속 감정분류 하듯이 사용!


🥞 학습결과

<정확도 분석>

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








2) [5] Multiclass. ver - (acc:67%)


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


🥞 결과

accuracy는 높지만, kaggle user 대상으로만 한 것이어서 불확실한 듯..


F-measure

정밀도(precision)과 재현율(recall)을 통합하여 정확성을 한번에 나타내는 지표
= 가중치를 가진 조화평균
(정확성 측정 용도)
// 계속해서 반복했을 때도 동일하게 나오는지 체크하는 것








3) [4] Binary. ver - (acc:45%)

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






4) [3] Binary. ver - (acc:38%)

😎 데이터 - 동일하게 kaggle에서의 social media posts 8,600 users
= 총 422,845 라벨링 데이터

INFP는 9만개/ISFJ는 8천개.
-> 과적합 가능성 있으므로 일부 데이터 제거하여 총 318,650개의 데이터로만 학습했다.

😎 Tools - NLTK, sk-learn

😎 전처리 -

  • 소문자로 변환
  • NLTK의 lemmatizer을 사용한 단어 형태 결합
  • 특수 텍스트 식별(url, 숫자, 날짜, 이모티콘)
  • 문장부호 분리
  • 빈도를 기준으로 숫자 인덱스에 단어 할당?




    분류모델(Naive Bayes:나이브 베이즈, SVM)과 Deep Learning 모델 사용
    -> Deep Learning 모델이 그나마 정확도가 높음을 확인



😎 성능 UP 솔루션~

  • 성능은 '전처리'를 어떻게 하느냐에 거의 나뉨.

  • 4유형 중 각 유형마다 다른 하이퍼파라미터를 적용해주면 정확도가 높아질수도, 낮아질수도 있다!

  • 각각의 성격 category를 조사했을 때, 성과는 훨씬 더 좋아진다.
    (16-class. test acc : 23% -> 4 binary. test acc : 38%)



😎 error 가능성..

  • selfreported -> a lot of room for error for people
    who don’t remember their type exactly
    who have changed in their personality













자동 문서 요약 시스템을 위한 요약문 수준 학습 기법(서울대)
https://s-space.snu.ac.kr/handle/10371/166540

문장생성기
https://hoonzi-text.tistory.com/8

mini-gpt를 이용하여 한국어 문장 자동생성





GPT에게 물어본 것들

1. 모델 생성 방향

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를 판단하는 모델을 구성할 수 있으며, 이를 위해 자연어 처리와 문맥 분석 기술을 활용할 수 있습니다. 다양한 유형의 답변을 처리하는 데 유용한 방법들이 있으므로 이러한 접근 방식을 사용하여 모델을 개발하시기 바랍니다.



2. 다국어 워드 임베딩 모델


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



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



3. 전체 모델이 유형별 모델들보다 정확도가 낮아지는 문제점







추가자료

😄 카카오브레인 -> GPT-3

카카오브레인에서 출시한 gpt-3 기반 한국어 언어 생성모델

https://velog.io/@gtpgg1013/kogpt-%ED%95%9C%EA%B5%AD%EC%96%B4-%EC%83%9D%EC%84%B1-GPT-3-%EB%AA%85%EB%AC%B8%EA%B0%80-%EB%82%A9%EC%8B%9C%EC%98%A4#%EC%A7%88%EB%AC%B8--%EB%8B%B5%EB%B3%80-qa

profile
NLP 공부중

1개의 댓글

comment-user-thumbnail
2023년 7월 31일

공감하며 읽었습니다. 좋은 글 감사드립니다.

답글 달기