Skip to content

jihyee0e/emotion-urgency-analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

텍스트 기반의 감정 분석과 긴급도 탐지 모델링

긴급 상황을 텍스트 데이터를 통해 예측 & 사전 예방적인 조치를 위한 기초를 다지는 시스템 개발


📁 프로젝트 구조

project/
├── models/
│   ├── __init__.py
│   ├── model_lstm.py      # GloVe + LSTM 모델
│   └── model_bert.py      # BERT 모델
├── utils/
│   ├── __init__.py
│   ├── preprocessing.py   # 공통 전처리 함수들
│   └── visualization.py   # 그래프 그리기 함수들
├── data/
│   ├── glove.6B.100d.txt  # GloVe 임베딩 파일 (별도 다운로드 필요)
│   └── tweet_emotions.csv    # 데이터셋
├── origin_file/
│   ├── final.ipynb       # 원래 코드
├── main.py               # 메인 실행 파일
├── requirements.txt      # 의존성 패키지
└── README.md

process

  • 데이터셋: kaggle - Emotion Detection from Text
    image

  • 데이터 전처리

    • 텍스트 정제: URL, 해시태그, 사용자언급(@) 제거
      image
      image
    • 특수문자 및 숫자 제거: 불필요한 문자 제거
      image
    • 소문자 변환: 텍스트를 소문자로 변환하여 일관성 유지
      image
    • 토큰화 및 패딩: 모델 학습을 위한 토큰화 및 시퀀스 길이 맞추기
      image
  • 모델
    (1) Glove + LSTM

    • GloVe 임베딩: 사전 훈련된 GloVe 임베딩은 단어 간의 의미적 관계를 잘 포착 → 텍스트의 의미를 효과적으로 표현
    • LSTM: 순차적인 데이터에서 좋은 성능을 발휘 → 이전 단어들로부터 중요한 정보를 기억하고, 감정 변화 패턴을 잘 학습
      => 결과)
      정확도 70%, recall: 0.73, f1-score: 0.77
      image
      샘플 데이터 예측
      image
      -> 긴급 상황으로 분류해야 할 텍스트가 일반 상황으로 예측되거나 일반적인 텍스트가 긴급 상황으로 잘못 예측되는 경우가 전체적으로 발생
      이는 모델이 문맥의 미세한 차이를 제대로 반영하지 못한 결과 -> 긴급도를 정확히 예측하는 데 있어 개선이 필요함 시사

    (2) BERT

    • 단어의 의미를 문맥에 따라 파악할 수 있어, 감정 분석처럼 문장의 뉘앙스를 이해하는 작업에 매우 유리
    • 사전 훈련된 모델을 fine-tuning하여 성능을 더욱 최적화할 수 있기 때문에, 특정 도메인이나 데이터셋에 맞게 모델을 세부 조정 가능
      => 결과)
      정확도 75%, recall: 0.89, f1-score: 0.83
      image
      샘플 데이터 예측
      image
      -> 일반적인 문장과 긴급 문장을 잘 구분하는 경향이 보임.
      Everything is fine과 같이 일반 문장이 긴급 상황으로 잘못 예측되는 오류가 발생하였지만 이를 제외하면 전반적으로 긴급과 일반을 정확히 구분
      예측 결과는 모델이 100% 완벽하지 않지만 긴급 상황 탐지에서 중요한 차이를 잘 구별하고 있다는 점에서 긍정적인 신호
  • 결론 및 한계, 향후 계획

    • 결론: 텍스트 기반 감정 분석 모델을 활용한 긴급 상황 예측 가능 → 사전 예방적 조치와 대응 전략 수립을 위한 중요한 기초 데이터를 제공 가능성 o
    • 한계
      • 간접적인 표현이나 비유적 언어를 제대로 파악하지 못함
      • 텍스트 데이터만 사용한 점에서 멀티모달 데이터를 결합한 예측 성능 향상에는 한계
    • 향후 계획
      • 데이터 증강 -> 다양한 감정과 긴급 상황을 다룬 데이터셋을 추가하여 모델의 범용성 증대
      • 멀티모달 데이터 결합 -> 텍스트 외에도 이미지, 음성 등 다양한 데이터를 결합하여 더 정교한 예측 가능 기대

🚀 설치 및 실행

  1. 의존성 설치
pip install -r requirements.txt
  1. GloVe 임베딩 파일 다운로드
# data 폴더 생성
mkdir -p data

# GloVe 임베딩 다운로드 (100차원)
# curl -O https://nlp.stanford.edu/data/glove.6B.zip
# wget https://nlp.stanford.edu/data/glove.6B.zip
curl -L -o glove.6B.zip https://nlp.stanford.edu/data/
unzip glove.6B.zip
mv glove.6B.100d.txt data/
rm glove.6B.zip
  1. 프로그램 실행
python3 main.py

About

[기말 프로젝트] 텍스트 기반의 감정 분석과 긴급도 탐지 모델링

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors