๐จ ์ค์๊ฐ ์น ์๋ฎฌ๋ ์ดํฐ: ๋ฌธ์ฅ ๋จ์ ์์ธก๊ณผ ํตํ ์ ์ฒด ์ํ๋๋ฅผ ์ฆ์ ์๊ฐํ
- ํ๋ก์ ํธ ๊ฐ์
- ์ฃผ์ ๊ธฐ๋ฅ
- ๋ฐ์ดํฐ์ ๋ฐ ์ ์ฒ๋ฆฌ
- ๋ชจ๋ธ ์ํคํ ์ฒ
- ์คํ ๊ฒฐ๊ณผ
- ์น ์๋ฎฌ๋ ์ดํฐ
- ์ค์น ๋ฐ ์คํ
- ํ๋ก์ ํธ ๊ตฌ์กฐ
- ์ฃผ์ ์ธ์ฌ์ดํธ
- ๊ฒฐ๋ก ๋ฐ ํฅํ ๊ณํ
- ์ฐธ๊ณ ๋ฌธํ
๋ณด์ด์คํผ์ฑ์ ๋งค๋
ํผํด๊ฐ ๊ธ์ฆํ๋ ์ฌ๊ฐํ ์ฌํ ๋ฌธ์ ์
๋๋ค.
๋ณธ ํ๋ก์ ํธ๋ ํตํ ๋ด์ฉ์ ๋ฌธ์ฅ ๋จ์๋ก ๋ถ์ํ๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํตํ ์ ์ฒด์ ๋ณด์ด์คํผ์ฑ ์ํ๋๋ฅผ ํ๊ฐํ๋ AI ๋ชจ๋ธ์ ๊ฐ๋ฐํ์ต๋๋ค.
์ต์ข
์ ์ผ๋ก ์น ๊ธฐ๋ฐ ์ค์๊ฐ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ ์ํ์ฌ, ์ฌ์ฉ์์๊ฒ ์ค์๊ฐ ์์ธก๊ณผ ํผ๋๋ฐฑ์ ์ ๊ณตํฉ๋๋ค.
- ๋ฌธ์ฅ ๋จ์ ๋ถ์: ํตํ ๋ด์ฉ์ ๋ฌธ์ฅ๋ณ๋ก ์ธ๋ถํํ์ฌ ์ ๋ฐํ ํ์ง
- ์ค์๊ฐ ์ฒ๋ฆฌ: ์น ๊ธฐ๋ฐ ์๋ฎฌ๋ ์ดํฐ๋ก ์ฆ์ ๊ฒฐ๊ณผ ํ์ธ
- ๊ณ์ธต์ ํ๊ฐ: ๋ฌธ์ฅ๋ณ ํ๋ฅ ๊ณผ ํตํ ์ ์ฒด ์ํ๋๋ฅผ ๋์ ์ ๊ณต
- Criticality ๋ฐ์: ์ค์ ๋ฌธ์ฅ์ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํ ์ ํํ ํ๊ฐ
- ์์ฑ โ ํ ์คํธ ๋ณํ (Web Speech API)
- ๋ฌธ์ฅ๋ณ ๋ณด์ด์คํผ์ฑ ํ๋ฅ ์ค์๊ฐ ์ถ๋ ฅ
- ํตํ ์ข ๋ฃ ์ ์ ์ฒด ์ํ๋ ํ๊ฐ
- ๋ฌธ์ฅ๋ณ ์ํ๋ ๊ทธ๋ํ
- ํตํ ์ ์ฒด ์ํ๋ ๊ฒ์ด์ง
- ์ค์๊ฐ ํผ๋๋ฐฑ ์ธํฐํ์ด์ค
- ๋ค์ํ ๋ฅ๋ฌ๋ ๋ชจ๋ธ ๋น๊ต ์คํ
- ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋
- ๋ชจ๋ธ ์ฑ๋ฅ ์๊ฐํ
- ์ถ์ฒ: ๊ธ์ต๊ฐ๋ ์ ๋ณด์ด์คํผ์ฑ ์ฌ๋ก, AIHub ์ ์ ํตํ
- ๊ตฌ์ฑ: ์ ์ ํตํ 148๊ฑด, ๋ณด์ด์คํผ์ฑ ํตํ 102๊ฑด
- ๋ฌธ์ฅ ์: ์ฝ 10,000๊ฐ (Criticality ๋ ์ด๋ธ ํฌํจ)
- ๋ฌธ์ฅ ๋ถ๋ฆฌ: ํตํ ๋ด์ฉ์ ๋ฌธ์ฅ ๋จ์๋ก ๋ถํ
- ํ ์คํธ ์ ์ : ๋ถ์ฉ์ด ์ฒ๋ฆฌ, ์คํ์ ์ ์
- Criticality ๋ ์ด๋ธ๋ง: ํต์ฌ ๋ฌธ์ฅ ์๋ณ ๋ฐ ๊ฐ์ค์น ๋ถ์ฌ
- ๋ฐ์ดํฐ ์ฆ๊ฐ: EDA ๊ธฐ๋ฐ ๊ธฐ๋ฒ (๋๋ค ์ฝ์ /์ญ์ /์ค์)
KoBERT โ BiLSTM โ Attention โ Softmax
- ์๋ฒ ๋ฉ: KoBERT (ํ๊ตญ์ด ํนํ BERT)
- ์ํ์ค ์ธ์ฝ๋: BiLSTM + Attention
- ์ถ๋ ฅ: ๋ฌธ์ฅ๋ณ ๋ณด์ด์คํผ์ฑ ํ๋ฅ
- ๋ฌธ์ฅ ๋จ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ค ํ๊ท ๋๋ threshold ๊ธฐ๋ฐ์ผ๋ก ํตํฉ
- Criticality ๋ ์ด๋ธ ๋ฐ์ํ์ฌ ์ค์ ๋ฌธ์ฅ์ ๋ ํฐ ๊ฐ์ค์น ๋ถ์ฌ
| Model | Validation F1 | Test F1 | ๊ฐ์ ํญ |
|---|---|---|---|
| KoBERT+BiLSTM | 0.960 | 0.726 | +0.122 |
| RNN | 0.921 | 0.645 | +0.036 |
| GRU | 0.909 | 0.645 | +0.054 |
| Transformer | 0.899 | 0.635 | +0.065 |
| SVM | 0.835 | - | +0.100 |
- ๋ฐ์ดํฐ ์ฆ๊ฐ: ํ๊ท +2.3% accuracy ํฅ์
- Attention: ๋ชจ๋ธ์ ๋ฐ๋ผ ์ฑ๋ฅ ์ฆ๊ฐ
- Regularization: ์ผ๋ถ ๋ชจ๋ธ์์ ์คํ๋ ค ์ฑ๋ฅ ํ๋ฝ
- Frontend: HTML/CSS/JavaScript
- Backend: Flask + PyTorch
- Speech-to-Text: Web Speech API
- ๋ชจ๋ธ: KoBERT + BiLSTM
- ์ค์๊ฐ ์์ฑ โ ๋ฌธ์ฅ ์ธ์ โ ๋ฌธ์ฅ๋ณ ๋ณด์ด์คํผ์ฑ ํ๋ฅ ์ถ๋ ฅ
- ํตํ ์ข ๋ฃ ์ ์ ์ฒด ์ํ๋ ํ๊ฐ
- ์ง๊ด์ ์ธ ์น ์ธํฐํ์ด์ค
- Python 3.8+
- PyTorch 1.9+
- Flask 2.0+
- transformers
- numpy, pandas
# 1. ์ ์ฅ์ ํด๋ก
git clone https://github.com/your-username/Voice_Phishing_Detection_System.git
cd Voice_Phishing_Detection_System
# 2. ๊ฐ์ํ๊ฒฝ ์์ฑ ๋ฐ ํ์ฑํ
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 3. ์์กด์ฑ ์ค์น
pip install -r requirements.txt
# 4. ์น ์๋ฎฌ๋ ์ดํฐ ์คํ
cd simulation/test/biLSTM_demo
python app.py- ์น ๋ธ๋ผ์ฐ์ ์์
http://localhost:5000์ ์ - ๋ง์ดํฌ ๊ถํ ํ์ฉ
- ํตํ ์๋ฎฌ๋ ์ด์ ์์
- ์ค์๊ฐ ๊ฒฐ๊ณผ ํ์ธ
Voice_Phishing_Detection_System/
โโโ README.md
โโโ requirements.txt
โโโ .gitignore
โโโ assets/ # ์ด๋ฏธ์ง ๋ฐ ๋ฆฌ์์ค ํ์ผ
โโโ data/ # ๋ฐ์ดํฐ์
๋ฐ ๋ถ์ ํ์ผ
โ โโโ sample_dataset.csv
โ โโโ test_dataset.csv
โ โโโ data_description.md
โ โโโ analysis/
โโโ model/ # ๋ฅ๋ฌ๋ ๋ชจ๋ธ ๊ตฌํ
โ โโโ biLSTM.py
โ โโโ gru.py
โ โโโ rnn.py
โ โโโ transformer.py
โ โโโ embedding.py
โโโ preprocessing/ # ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ
โ โโโ data_cleaning.py
โ โโโ augmentation.py
โ โโโ eda.py
โ โโโ eda_append.py
โโโ gru_demo/ # GRU ์น ๋ฐ๋ชจ
โ โโโ app.py # Flask ์น ์ ํ๋ฆฌ์ผ์ด์
โ โโโ aggregation.py # ๊ฒฐ๊ณผ ์ง๊ณ ๋ก์ง
โ โโโ gru_phishing_model.h5 # GRU ๋ชจ๋ธ
โ โโโ templates/ # HTML ํ
ํ๋ฆฟ
โ โโโ static/ # CSS/JS ์ ์ ํ์ผ
โโโ results/ # ์คํ ๊ฒฐ๊ณผ ๋ฐ ์๊ฐํ
โโโ figures/
โโโ ๋ฐํ.pdf
โโโ ๋ณด๊ณ ์.docx
- Criticality ๋ ์ด๋ธ ์ถ๊ฐ๋ก ๋ฌธ์ฅ๋ณ ์ค์๋ ๋ฐ์
- ๋ถ์ฉ์ด ์ ๊ฑฐ ๋ฐ ๋ฐ์ดํฐ ์ฆ๊ฐ์ผ๋ก ๋ฐ์ดํฐ ํ์ง ๊ฐ์
- KoBERT ๊ธฐ๋ฐ BiLSTM์ด ๊ฐ์ฅ ์ฐ์ํ ์ฑ๋ฅ ๊ธฐ๋ก
- Attention ์๊ฐํ๋ฅผ ํตํด ํต์ฌ ๋ฌธ์ฅ์ ๋์ ๊ฐ์ค์น ๋ถ์ฌ ํ์ธ
- ๋ค์ํ Aggregation ์ ๋ต ๋น๊ต ์คํ
- ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋๊ณผ ์๊ฐํ ๊ธฐ๋ฐ ์ฑ๋ฅ ๊ฒ์ฆ
- ๋ฌธ์ฅ+ํตํ ๋จ์ ๊ณ์ธต์ ํ์ง ์์คํ ์ค๊ณ
- KoBERT + BiLSTM ์กฐํฉ์ ์ต๊ณ ์ฑ๋ฅ ๋ฌ์ฑ
- ์ค์๊ฐ ์น ์๋ฎฌ๋ ์ดํฐ ๊ฐ๋ฐ ์๋ฃ
- ๋ฐ์ดํฐ ๋ค์์ฑ: ๋ณด์ด์คํผ์ฑ ๋ฐ์ดํฐ ์ถ๊ฐ ์์ง ํ์
- ๋ชจ๋ธ ๊ฐ์ : Adaptive thresholding๊ณผ ์๊ณ์ด ๊ธฐ๋ฐ ๋ชจ๋ธ ๋์ ์์
- ์คํ๊ฒฝ ํ ์คํธ: ์ค์ ํตํ ํ๊ฒฝ์์์ ์ฑ๋ฅ ๊ฒ์ฆ
- ์ฌ์ฉ์ ํผ๋๋ฐฑ: ์๋ฎฌ๋ ์ดํฐ ์ฌ์ฉ์ ํผ๋๋ฐฑ ๋ฐ์
