긴급 상황을 텍스트 데이터를 통해 예측 & 사전 예방적인 조치를 위한 기초를 다지는 시스템 개발
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
-
데이터 전처리
-
모델
(1) Glove + LSTM- GloVe 임베딩: 사전 훈련된 GloVe 임베딩은 단어 간의 의미적 관계를 잘 포착 → 텍스트의 의미를 효과적으로 표현
- LSTM: 순차적인 데이터에서 좋은 성능을 발휘 → 이전 단어들로부터 중요한 정보를 기억하고, 감정 변화 패턴을 잘 학습
=> 결과)
정확도 70%, recall: 0.73, f1-score: 0.77

샘플 데이터 예측

-> 긴급 상황으로 분류해야 할 텍스트가 일반 상황으로 예측되거나 일반적인 텍스트가 긴급 상황으로 잘못 예측되는 경우가 전체적으로 발생
이는 모델이 문맥의 미세한 차이를 제대로 반영하지 못한 결과 -> 긴급도를 정확히 예측하는 데 있어 개선이 필요함 시사
(2) BERT
- 단어의 의미를 문맥에 따라 파악할 수 있어, 감정 분석처럼 문장의 뉘앙스를 이해하는 작업에 매우 유리
- 사전 훈련된 모델을 fine-tuning하여 성능을 더욱 최적화할 수 있기 때문에, 특정 도메인이나 데이터셋에 맞게 모델을 세부 조정 가능
=> 결과)
정확도 75%, recall: 0.89, f1-score: 0.83

샘플 데이터 예측

-> 일반적인 문장과 긴급 문장을 잘 구분하는 경향이 보임.
Everything is fine과 같이 일반 문장이 긴급 상황으로 잘못 예측되는 오류가 발생하였지만 이를 제외하면 전반적으로 긴급과 일반을 정확히 구분
예측 결과는 모델이 100% 완벽하지 않지만 긴급 상황 탐지에서 중요한 차이를 잘 구별하고 있다는 점에서 긍정적인 신호
-
결론 및 한계, 향후 계획
- 결론: 텍스트 기반 감정 분석 모델을 활용한 긴급 상황 예측 가능 → 사전 예방적 조치와 대응 전략 수립을 위한 중요한 기초 데이터를 제공 가능성 o
- 한계
- 간접적인 표현이나 비유적 언어를 제대로 파악하지 못함
- 텍스트 데이터만 사용한 점에서 멀티모달 데이터를 결합한 예측 성능 향상에는 한계
- 향후 계획
- 데이터 증강 -> 다양한 감정과 긴급 상황을 다룬 데이터셋을 추가하여 모델의 범용성 증대
- 멀티모달 데이터 결합 -> 텍스트 외에도 이미지, 음성 등 다양한 데이터를 결합하여 더 정교한 예측 가능 기대
- 의존성 설치
pip install -r requirements.txt- 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- 프로그램 실행
python3 main.py




