# ๐ฅ ์นด์นด์คํก ๋ํ ๋ถ์๊ธฐ (Kakao Talk Analyzer)
[](https://badge.fury.io/py/kakao-analyzer)
[](https://pypi.org/project/kakao-analyzer/)
[](https://opensource.org/licenses/MIT)
[](https://pepy.tech/project/kakao-analyzer)
> ์นด์นด์คํก ๋ํ ๋ด๋ณด๋ด๊ธฐ CSV ํ์ผ์ ์ข
ํฉ์ ์ผ๋ก ๋ถ์ํ๋ **์ฐจ์ธ๋ AI ๊ธฐ๋ฐ** ์ฌ์ธ์ ๋๊ตฌ
```bash
pip install kakao-analyzer
```
**๐ฏ ์นด์นด์คํก์ ํน์ฑ์ ์๋ฒฝํ๊ฒ ์ดํดํ๋ ์ค๋งํธ ๋ถ์๊ธฐ**
- ์ฐ์ ๋ฉ์์ง ์๋ ๊ทธ๋ฃนํ (1๋ถ ์ด๋ด ๋ฉ์์ง ํตํฉ)
- ํ๊ตญ์ด ์ฑํ
ํจํด ์ธ์ (ใ
ใ
, ใ
ใ
, ์ด๋ชจํฐ์ฝ ๋ฑ)
- ์์คํ
๋ฉ์์ง ์๋ ํํฐ๋ง (์ญ์ ๋ ๋ฉ์์ง, ํฌํ, ์ ์ฐ ๋ฑ)
- ์ค์ ๋ํ๋ง ๋ถ์ํ์ฌ ๋ ์ ํํ ์ธ์ฌ์ดํธ ์ ๊ณต
## ๐ ์ฃผ์ ๊ธฐ๋ฅ
### ๐ฏ **์นด์นด์คํก ํนํ ๊ธฐ๋ฅ** โญ NEW!
- **์ค๋งํธ ๋ฉ์์ง ๊ทธ๋ฃนํ**: 1๋ถ ์ด๋ด ์ฐ์ ๋ฉ์์ง๋ฅผ ํ๋๋ก ํตํฉํ์ฌ ์ค์ ์๋ ํ์
- **ํ๊ตญ์ด ์ฑํ
ํจํด ๋ถ์**: ใ
ใ
, ใ
ใ
, ใ
ใ
, ใ
ใ
๋ฑ ํ๊ตญ์ธ์ ์ฑํ
์ต๊ด ์ธ์
- **์์คํ
๋ฉ์์ง ํํฐ๋ง**: ์ญ์ ๋ ๋ฉ์์ง, ํฌํ, ์ ์ฐ, ์
์ฅ/ํด์ฅ ์๋ฆผ ์๋ ์ ๊ฑฐ
- **๋ฉ์
๋ถ์**: @ ๊ธฐ๋ฅ์ ์ด์ฉํ ์ฌ์ฉ์ ์ธ๊ธ ํจํด๊ณผ ๋คํธ์ํฌ ๋ถ์
- **๊ฐ์ ํํ ๋ถ์**: ์์, ์ฌํ, ๋์ ํํ ๋ฑ์ ๊ฐ์ ํจํด ์ถ์
### ๐ ๊ธฐ๋ณธ ํต๊ณ ๋ถ์
- **์ฌ์ฉ์๋ณ ํ๋ ํต๊ณ**: ๋ฉ์์ง ์, ์ฐธ์ฌ์จ, ์ผํ๊ท ํ๋๋
- **์๊ฐ์ ํจํด ๋ถ์**: ์๊ฐ๋๋ณ, ์์ผ๋ณ, ์๋ณ ํ๋ ๋ถํฌ
- **๋จ์ด ๋น๋ ๋ถ์**: ํ๊ตญ์ด ํํ์ ๋ถ์ ๋ฐ ํค์๋ ์ถ์ถ
- **๋ฉ์์ง๋ณ ๋จ์ด ์ ํต๊ณ**: ์๋ณธ ๋ฐ ํํฐ๋ง๋ ๋จ์ด ์ ๋ถ์ (ํ๊ท , ์ค๊ฐ๊ฐ, ์ต๋๊ฐ)
- **์ด๋ชจํฐ์ฝ/์ด๋ชจ์ง ์ฌ์ฉ ํต๊ณ**: ๋ฐ์ ํจํด ๋ถ์
### ๐ฌ ๋ํ ์ญํ ๋ถ์
- **๋ํ ํด ๋ถ์**: ์๋ ๋ํ ์ธ์
๊ตฌ๋ถ
- **์ฃผ์ ์ ํ ํ์ง**: ์๋ฒ ๋ฉ ๊ธฐ๋ฐ ์ฃผ์ ๋ณํ ๊ฐ์ง
- **์ฐธ์ฌ์ ํจํด**: ๋ํ ์์์, ์๋ต์ ๋ถ์ (์์ ํ์ ์์ผ๋ก ์ ๋ ฌ)
- **์ํธ์์ฉ ๋ถ์**: ์ฌ์ฉ์ ๊ฐ ์ํต ํจํด
- **๋ฉ์
๋คํธ์ํฌ ๋ถ์**: @ ๋ฉ์
์ ํตํ ์ฌ์ฉ์ ๊ฐ ์ธ๊ธ ๊ด๊ณ ๋ฐ ์ํธ ๋ฉ์
๋ถ์
### ๐ฏ ์ฌ๋ฏธ์๋ ์งํ
- **์ฐธ์ฌ ๋ถํ๋ฑ**: ์ง๋ ๊ณ์๋ฅผ ํตํ ๋ฐ์ธ๊ถ ๋ถ์
- **๋ต์ฅ ์๋**: ๋ฐ์ ์๊ฐ ํต๊ณ ๋ฐ ๋ถํฌ
- **ํ๋ ์ฐ์์ฑ**: ์ฐ์ ๋ฉ์์ง ๋ฐ ํ๋์ผ ๋ถ์
- **์ฌ์ผ ์ฑํ
**: ๋ฐค์ ๋ํ ํจํด ๋ถ์
### ๐ ๊ณ ๊ธ ๋ถ์
- **์๋ฒ ๋ฉ ๊ธฐ๋ฐ ์ฃผ์ ๋ถ์**: ์๋ฏธ๋ก ์ ์ ์ฌ๋๋ฅผ ํตํ ์ฃผ์ ์ธ๊ทธ๋จผํธ
- **SPLADE ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์**: Dense + Sparse ๋ฒกํฐ๋ฅผ ํ์ฉํ ๋ํ ๊ฒ์
- **์๊ณ์ด ๋ถ์**: ์๊ฐ์ ๋ฐ๋ฅธ ๋ํ ํจํด ๋ณํ
- **๊ฐ์ ๋ถ์**: ๋ํ ๋ถ์๊ธฐ์ ๊ฐ์ ํจํด ์ถ์
- **์ค๋งํธ ํ ํฝ ํด๋ฌ์คํฐ๋ง**: ๊ณ ๊ธ ์ฃผ์ ๋ถ๋ฅ ๋ฐ ํ
๋ง ๋ถ์
- **๋ํ ๋ฆฌ๋ฌ ๋ถ์**: ์๋ต ํจํด๊ณผ ์๊ฐ์ ๋ฆฌ๋ฌ ๋ถ์
- **๋๊ท๋ชจ ๋ฐ์ดํฐ์
์ต์ ํ**: ์ง๋ฅํ ์ฒญํน๊ณผ ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ฑ
### ๐ ์๊ฐํ (๊ฐ์ ๋จ!)
- **ํ๋ ํํธ๋งต**: ์๊ฐ๋ ร ์์ผ ํ๋ ๋ถํฌ
- **์ผ๋ณ ํ์๋ผ์ธ**: ๋ฉ์์ง ์ ์ถ์ด ๊ทธ๋ํ
- **์ฃผ์ ํ์๋ผ์ธ**: ์ฃผ์ ์ธ๊ทธ๋จผํธ ์๊ฐํ (๊ฒน์นจ ๋ฌธ์ ํด๊ฒฐ)
- **์๋ํด๋ผ์ฐ๋**: ํ๊ตญ์ด ํฐํธ ์ง์์ผ๋ก ๊นจ์ง ํ์ ํด๊ฒฐ
- **์ฌ์ฉ์ ํ๋ ์ฐจํธ**: ๋ง์ ์ฌ์ฉ์๋ ๊น๋ํ๊ฒ ํ์ (๊ฒน์นจ ๋ฌธ์ ํด๊ฒฐ)
## ๐ ๏ธ ์ค์น ๋ฐ ์คํ
### ๐ฆ PyPI๋ฅผ ํตํ ๊ฐํธ ์ค์น (๊ถ์ฅ)
```bash
# ๊ธฐ๋ณธ ์ค์น
pip install kakao-analyzer
# ์ ์ฒด ๊ธฐ๋ฅ ์ค์น (AI ๋ชจ๋ธ ํฌํจ)
pip install kakao-analyzer[full]
# ๊ฐ๋ฐ ๋๊ตฌ ํฌํจ ์ค์น
pip install kakao-analyzer[dev]
```
์ค์น ํ ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅ:
```bash
kakao-analyzer --input your_chat.csv
```
### ๐ป ๊ฐ๋ฐ์์ฉ ์ค์น
๊ฐ๋ฐ์ด๋ ์ปค์คํฐ๋ง์ด์ง์ ์ํ๋ค๋ฉด:
```bash
# ์ ์ฅ์ ํด๋ก
git clone https://github.com/xistoh162108/kakaotalk_analyzer.git
cd kakaotalk_analyzer
# ์์กด์ฑ ์ค์น
pip install -r requirements.txt
# ๊ฐ๋ฐ ๋ชจ๋๋ก ์ค์น
pip install -e .
```
### ๐ ์๊ตฌ์ฌํญ
- **Python**: 3.8 ์ด์
- **์ด์์ฒด์ **: Windows, macOS, Linux ๋ชจ๋ ์ง์
- **๋ฉ๋ชจ๋ฆฌ**: ์ต์ 4GB RAM (๋์ฉ๋ ๋ฐ์ดํฐ๋ 8GB+ ๊ถ์ฅ)
## ๐ ๋น ๋ฅธ ์์
### 1๋จ๊ณ: ์ค์น
```bash
pip install kakao-analyzer
```
### 2๋จ๊ณ: ์นด์นด์คํก ๋ํ ๋ด๋ณด๋ด๊ธฐ
1. ์นด์นด์คํก ์ฑ์์ ๋ถ์ํ๊ณ ์ถ์ ๋ํ๋ฐฉ ์ด๊ธฐ
2. `โฐ` ๋ฉ๋ด โ `์ฑํ
๋ฐฉ ์ค์ ` โ `๋ํ ๋ด์ฉ ๋ด๋ณด๋ด๊ธฐ`
3. `ํ
์คํธ ํ์ผ(.txt)` ์ ํํ์ฌ ๋ด๋ณด๋ด๊ธฐ
4. ๋ด๋ณด๋ธ ํ์ผ์ CSV ํ์์ผ๋ก ๋ณํ (๋๋ ์ง์ CSV๋ก ์ค๋น)
### 3๋จ๊ณ: ๋ถ์ ์คํ
```bash
# ๊ธฐ๋ณธ ๋ถ์
kakao-analyzer --input your_chat.csv
# ๊ณ ๊ธ AI ๋ถ์ ํฌํจ (๊ถ์ฅ)
kakao-analyzer --input your_chat.csv --use-splade --use-ollama
```
### โจ ์ฌ์ฉ๋ฒ
```bash
# ๊ธฐ๋ณธ ๋ถ์ (๊ฐ์ฅ ๊ฐ๋จ)
kakao-analyzer --input chat.csv
# ์ถ๋ ฅ ๋๋ ํ ๋ฆฌ ์ง์
kakao-analyzer --input chat.csv --outdir my_analysis
# ๋์๋ง ๋ณด๊ธฐ
kakao-analyzer --help
```
### ๐ ๏ธ ๊ณ ๊ธ ์ต์
```bash
kakao-analyzer --input INPUT [์ต์
๋ค]
ํ์ ์ต์
:
--input INPUT ์
๋ ฅ CSV ํ์ผ ๊ฒฝ๋ก
๋ถ์ ์ต์
:
--window-minutes MINUTES ๋ํ ํด ๊ตฌ๋ถ ์๊ฐ (๊ธฐ๋ณธ๊ฐ: 30๋ถ)
--topic-window-size SIZE ์ฃผ์ ๋ถ์ ์๋์ฐ ํฌ๊ธฐ (๊ธฐ๋ณธ๊ฐ: 15)
--similarity-threshold FLOAT ์ ์ฌ๋ ์๊ณ๊ฐ (๊ธฐ๋ณธ๊ฐ: 0.3)
--batch-size SIZE ์๋ฒ ๋ฉ ๋ฐฐ์น ํฌ๊ธฐ (๊ธฐ๋ณธ๊ฐ: 32)
--max-workers WORKERS ์ต๋ ๋ณ๋ ฌ ์์
์ (๊ธฐ๋ณธ๊ฐ: 4)
AI ๋ชจ๋ธ ์ต์
:
--use-ollama Ollama ์๋ฒ ๋ฉ ์ฌ์ฉ (๋ก์ปฌ)
--model-name MODEL Ollama ๋ชจ๋ธ๋ช
(๊ธฐ๋ณธ๊ฐ: gpt-oss:20b)
--embed-model MODEL ์๋ฒ ๋ฉ ๋ชจ๋ธ๋ช
(๊ธฐ๋ณธ๊ฐ: bge-m3)
--use-splade SPLADE ํฌ์ ๊ฒ์ ํ์ฑํ
๋๊ท๋ชจ ๋ฐ์ดํฐ ์ต์
:
--subset-size SIZE ํ
์คํธ์ฉ ๋ถ๋ถ์งํฉ ํฌ๊ธฐ
--subset-strategy STRATEGY ๋ถ๋ถ์งํฉ ์ ๋ต (balanced/temporal/diverse/random)
์นด์นด์คํก ํนํ ์ต์
:
--disable-message-grouping ์ฐ์ ๋ฉ์์ง ๊ทธ๋ฃนํ ๋นํ์ฑํ (๋น์ถ์ฒ)
--group-window-seconds N ๋ฉ์์ง ๊ทธ๋ฃนํ ์๊ฐ ์ฐฝ (๊ธฐ๋ณธ๊ฐ: 60์ด)
์ถ๋ ฅ ์ต์
:
--outdir DIRECTORY ์ถ๋ ฅ ๋๋ ํ ๋ฆฌ
--figure-dpi DPI ๊ทธ๋ํ ํด์๋ (๊ธฐ๋ณธ๊ฐ: 300)
--log-level LEVEL ๋ก๊ทธ ๋ ๋ฒจ (DEBUG/INFO/WARNING/ERROR)
--quiet ์ฝ์ ์ถ๋ ฅ ์ต์
--skip-viz ์๊ฐํ ์์ฑ ๊ฑด๋๋ฐ๊ธฐ
```
### ๐ก ์ฌ์ฉ ์์
```bash
# ๐ ๊ธฐ๋ณธ ๋ถ์ (์ถ์ฒ)
kakao-analyzer --input chat.csv
# ๐ค AI ๊ธฐ๋ฅ ์ ์ฒด ํ์ฉ
kakao-analyzer --input chat.csv --use-splade --use-ollama --model-name "gpt-oss:20b"
# ๐ ํน์ ๋๋ ํ ๋ฆฌ์ ๊ฒฐ๊ณผ ์ ์ฅ
kakao-analyzer --input chat.csv --outdir my_results
# โก ๋์ฉ๋ ๋ฐ์ดํฐ ๋น ๋ฅธ ํ
์คํธ
kakao-analyzer --input big_chat.csv --subset-size 1000 --subset-strategy balanced
# ๐ง ์ธ๋ฐํ ์ค์ ์กฐ์
kakao-analyzer --input chat.csv --topic-window-size 20 --similarity-threshold 0.4
# ๐จ ๊ณ ํด์๋ ๊ทธ๋ํ ์์ฑ
kakao-analyzer --input chat.csv --figure-dpi 600
# ๐ ์กฐ์ฉํ ์คํ (CI/CD์ฉ)
kakao-analyzer --input chat.csv --quiet --skip-viz --log-level ERROR
```
## ๐ ์ถ๋ ฅ ๊ตฌ์กฐ
๋ถ์ ์๋ฃ ํ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ก ๊ฒฐ๊ณผ๊ฐ ์์ฑ๋ฉ๋๋ค:
```
output_directory/
โโโ summary/ # ์์ฝ ์ ๋ณด
โ โโโ analysis_summary.json # ์ ์ฒด ๋ถ์ ์์ฝ
โ โโโ processed_messages.csv # ์ฒ๋ฆฌ๋ ๋ฉ์์ง ๋ฐ์ดํฐ
โโโ basics/ # ๊ธฐ๋ณธ ํต๊ณ
โ โโโ basic_statistics.json # ์์ธ ํต๊ณ ๋ฐ์ดํฐ
โโโ context/ # ๋งฅ๋ฝ ๋ถ์
โ โโโ topic_segments.json # ์ฃผ์ ์ธ๊ทธ๋จผํธ ๋ฐ์ดํฐ
โ โโโ topic_segments.csv # ์ฃผ์ ์ธ๊ทธ๋จผํธ ํ
์ด๋ธ
โ โโโ mood_analysis.json # ๊ฐ์ ๋ฐ ๋ถ์๊ธฐ ๋ถ์
โ โโโ advanced_topics.json # ๊ณ ๊ธ ์ฃผ์ ํด๋ฌ์คํฐ๋ง
โ โโโ rhythm_analysis.json # ๋ํ ๋ฆฌ๋ฌ ๋ถ์
โ โโโ mention_analysis.json # ๋ฉ์
ํจํด ๋ฐ ๋คํธ์ํฌ ๋ถ์
โ โโโ hybrid_index.meta.json # ๊ฒ์ ์ธ๋ฑ์ค (SPLADE)
โ โโโ splade_scores.parquet # ํฌ์ ๋ฒกํฐ ๋ฐ์ดํฐ (SPLADE)
โโโ fun/ # ์ฌ๋ฏธ ์งํ
โ โโโ fun_metrics.json # ์ฐธ์ฌ ๋ถํ๋ฑ, ๋ต์ฅ ์๋ ๋ฑ
โโโ figures/ # ์๊ฐํ
โ โโโ heatmap_hour_weekday.png
โ โโโ timeseries_daily.png
โ โโโ topic_timeline.png
โ โโโ wordcloud_global.png
โ โโโ user_activity_distribution.png
โ โโโ reply_latency_distribution.png
โโโ reports/ # ๋ฆฌํฌํธ
โ โโโ analysis_report.md # ์ข
ํฉ ๋ถ์ ๋ฆฌํฌํธ
โ โโโ qa_test_report.md # ํ์ง ๋ณด์ฆ ๋ฆฌํฌํธ (ํ
์คํธ์)
โโโ logs/ # ๋ก๊ทธ
โโโ pipeline_metadata.json # ์คํ ๋ฉํ๋ฐ์ดํฐ
โโโ analyzer.log # ๋ถ์ ๋ก๊ทธ
```
## ๐ ์
๋ ฅ ๋ฐ์ดํฐ ํ์
์นด์นด์คํก์์ ๋ด๋ณด๋ธ CSV ํ์ผ์ด ํ์ํฉ๋๋ค. ์ง์ํ๋ ์ปฌ๋ผ ํ์:
### ํ์ ์ปฌ๋ผ
- `user` ๋๋ `User` ๋๋ `์ฌ์ฉ์`: ๋ฉ์์ง ์์ฑ์
- `message` ๋๋ `Message` ๋๋ `๋ฉ์์ง`: ๋ฉ์์ง ๋ด์ฉ
- `datetime` ๋๋ `Date` ๋๋ `์๊ฐ`: ๋ฉ์์ง ์๊ฐ
### ์์ CSV ํ์
```csv
user,message,datetime
๊น๋ฏผ์,์๋
ํ์ธ์!,2024-01-01 10:00:00
์ด์ง์,๋ค ์๋
ํ์ธ์! ใ
ใ
,2024-01-01 10:01:00
๋ฐ์์ค,์ค๋ ๋ ์จ ์ข๋ค์,2024-01-01 10:02:00
```
## ๐งช ํ
์คํธ
### ๊ธฐ๋ณธ ๊ธฐ๋ฅ ํ
์คํธ
```bash
# ๊ธฐ๋ณธ ๊ธฐ๋ฅ ํ
์คํธ (์์กด์ฑ ์์ด)
python simple_test.py
# ์ ์ฒด ํ
์คํธ ์ค์ํธ (์์กด์ฑ ์ค์น ํ)
python test_runner.py
```
### ํ
์คํธ ๋ฐ์ดํฐ ์์ฑ
```bash
# 1000๊ฐ ๋ฉ์์ง ํ
์คํธ ๋ฐ์ดํฐ ์์ฑ
python test_runner.py --generate-data
```
## ๐ง ๊ณ ๊ธ ์ค์
### ๐ GPU ๊ฐ์ ์ง์ (NEW!)
- **์๋ GPU ์ธ์**: CUDA๊ฐ ์ค์น๋ ์์คํ
์์ ์๋์ผ๋ก GPU ์ฌ์ฉ
- **๋ฉ๋ชจ๋ฆฌ ์ต์ ํ**: GPU ๋ฉ๋ชจ๋ฆฌ์ 75%๊น์ง ์๋ ์ ํํ์ฌ ์์ ์ฑ ๋ณด์ฅ
- **๋ชจ๋ธ ์๋ ์ด๊ด**: ์๋ฒ ๋ฉ ๋ฐ SPLADE ๋ชจ๋ธ์ GPU๋ก ์๋ ๋ก๋
- **๋ฐฐ์น ํฌ๊ธฐ ์ต์ ํ**: GPU ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ๋ผ ๋ฐฐ์น ํฌ๊ธฐ ์๋ ์กฐ์
#### GPU ๋ฉ๋ชจ๋ฆฌ๋ณ ์ต์ ํ
- **12GB+ (RTX 3080Ti/4080 ์ด์)**: ๋ฐฐ์น ํฌ๊ธฐ 128, Half precision
- **8-12GB (RTX 3070/4070)**: ๋ฐฐ์น ํฌ๊ธฐ 64, Half precision
- **4-8GB (GTX 1660/RTX 3060)**: ๋ฐฐ์น ํฌ๊ธฐ 48, Mixed precision
- **4GB ๋ฏธ๋ง**: CPU ๋ชจ๋๋ก ์๋ ์ ํ
### ์๋ฒ ๋ฉ ๋ชจ๋ธ
- **๊ธฐ๋ณธ๊ฐ**: Mock ์๋ฒ ๋ฉ (์ธ๋ถ ์์กด์ฑ ์์)
- **๊ณ ๊ธ ์ต์
**: SentenceTransformer ๋ชจ๋ธ (`sentence-transformers` ์ค์น ํ์)
- **GPU ๊ฐ์**: CUDA ์ง์ ์ ์๋์ผ๋ก GPU์์ ์คํ
### SPLADE ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์
- **ํ์ฑํ**: `--use-splade` ์ต์
์ฌ์ฉ
- **๊ธฐ๋ฅ**: Dense + Sparse ๋ฒกํฐ๋ฅผ ๊ฒฐํฉํ ๊ณ ๊ธ ๊ฒ์
- **์ฉ๋**: ํน์ ์ฃผ์ ๋ ํค์๋๋ก ๋ํ ๊ฒ์
- **GPU ๊ฐ์**: Half precision์ผ๋ก GPU์์ ๊ณ ์ ์ฒ๋ฆฌ
### Ollama ์ฐ๋ (ํ๊ตญ์ด ๋ชจ๋ธ ์์ ์ง์)
- **ํ์ฑํ**: `--use-ollama` ์ต์
์ฌ์ฉ
- **์๊ตฌ์ฌํญ**: Ollama ์๋ฒ ์คํ ์ค์ด์ด์ผ ํจ
- **๊ธฐ๋ณธ ๋ชจ๋ธ**: gpt-oss:20b (์ถ์ฒ)
#### ๐ฐ๐ท ์ง์ ํ๊ตญ์ด ๋ชจ๋ธ๋ค
| ๋ชจ๋ธ๋ช
| ํฌ๊ธฐ | ํน์ง | ์ฌ์ฉ๋ฒ |
|--------|------|------|--------|
| `gpt-oss:20b` | 20B | ๋ฒ์ฉ ํ๊ตญ์ด ๋ชจ๋ธ (๊ธฐ๋ณธ๊ฐ) | `--model-name "gpt-oss:20b"` |
| `gpt-oss:40b` | 40B | ๊ณ ์ฑ๋ฅ ํ๊ตญ์ด ๋ชจ๋ธ | `--model-name "gpt-oss:40b"` |
| `llama3-ko` | 8B | LLaMA3 ํ๊ตญ์ด ํ์ธํ๋ | `--model-name "llama3-ko"` |
| `aya:8b` | 8B | ๋ค๊ตญ์ด ์ง์ (ํ๊ตญ์ด ํฌํจ) | `--model-name "aya:8b"` |
| `gemma2-ko` | 9B | Google Gemma2 ํ๊ตญ์ด ๋ฒ์ | `--model-name "gemma2-ko"` |
| `solar-ko` | 10.7B | Upstage SOLAR ํ๊ตญ์ด ๋ชจ๋ธ | `--model-name "solar-ko"` |
| `eeve-korean` | 10.8B | ํ๊ตญ ์ ์ฉ ๋ํ ๋ชจ๋ธ | `--model-name "eeve-korean"` |
| `beomi-ko` | 13B | ํ๊ตญ์ด ํนํ ๊ณ ์ฑ๋ฅ ๋ชจ๋ธ | `--model-name "beomi-ko"` |
#### ๐ ๋ชจ๋ธ ์ค์น ๋ฐ ์ฌ์ฉ๋ฒ
```bash
# Ollama ์ค์น (ํ ๋ฒ๋ง)
curl -fsSL https://ollama.ai/install.sh | sh
# ํ๊ตญ์ด ๋ชจ๋ธ ๋ค์ด๋ก๋ (์: gpt-oss:20b)
ollama pull gpt-oss:20b
# ๋ถ์ ์คํ
kakao-analyzer --input chat.csv --use-ollama --model-name "gpt-oss:20b"
```
## ๐ ๋ถ์ ๊ฒฐ๊ณผ ํด์
### ์ฐธ์ฌ ๋ถํ๋ฑ (์ง๋ ๊ณ์)
- **0.0-0.3**: ๋งค์ฐ ๊ท ๋ฑํ ์ฐธ์ฌ
- **0.3-0.5**: ์ฝ๊ฐ ๋ถ๊ท ๋ฑ
- **0.5-0.7**: ๋ถ๊ท ๋ฑํ ์ฐธ์ฌ
- **0.7-1.0**: ๋งค์ฐ ๋ถ๊ท ๋ฑ (์์๊ฐ ๋ํ ์ฃผ๋)
### ๋ฉ์
๋ถ์ ์งํ
- **์ํธ ๋ฉ์
๊ด๊ณ**: ์๋ก ๋ฉ์
ํ๋ ์ฌ์ฉ์ ์์ ์์ ๋น๋
- **๋ฉ์
๋คํธ์ํฌ ๋ฐ๋**: ์ ์ฒด ๊ฐ๋ฅํ ๋ฉ์
๊ด๊ณ ๋๋น ์ค์ ๋ฉ์
๊ด๊ณ ๋น์จ
- **๋ฉ์
๋ชฉ์ ๋ถ๋ฅ**: ์ง๋ฌธ, ๋ถํ/์์ฒญ, ์ธ์ฌ, ๊ธด๊ธ, ํ ๋ก /์๊ฒฌ ๋ฑ์ผ๋ก ์๋ ๋ถ๋ฅ
### ๋ต์ฅ ์๋ ์นดํ
๊ณ ๋ฆฌ
- **์ฆ์ ๋ต์ฅ**: 1๋ถ ์ด๋ด
- **๋น ๋ฅธ ๋ต์ฅ**: 1-5๋ถ
- **๋ณดํต ๋ต์ฅ**: 5-30๋ถ
- **๋๋ฆฐ ๋ต์ฅ**: 30๋ถ ์ด์
### ์ฃผ์ ์ธ๊ทธ๋จผํธ
- ์๋ฒ ๋ฉ ์ ์ฌ๋ ๊ธฐ๋ฐ์ผ๋ก ์๋ ๊ฐ์ง
- ๊ฐ ์ธ๊ทธ๋จผํธ๋ณ ํค์๋, ์ฐธ์ฌ์, ์ง์์๊ฐ ์ ๊ณต
- ์ฃผ์ ์ ํ ํจํด ๋ถ์
## ๐จ ์๊ฐํ ๊ฐ์ด๋
๋ชจ๋ ๊ทธ๋ํ๋ ํ๊ตญ์ด ํฐํธ๋ฅผ ์ง์ํ๋ฉฐ, ๋ค์ ํ์์ผ๋ก ์ ์ฅ๋ฉ๋๋ค:
- **ํ์**: PNG (๊ธฐ๋ณธ๊ฐ)
- **ํด์๋**: 300 DPI (๊ธฐ๋ณธ๊ฐ)
- **ํฌ๊ธฐ**: ์๋ ์กฐ์
### ์ฃผ์ ์๊ฐํ
1. **ํ๋ ํํธ๋งต**: ์ธ์ ๊ฐ์ฅ ํ๋ฐํ์ง ํ๋์ ํ์
2. **์ผ๋ณ ํ์๋ผ์ธ**: ์๊ฐ์ ๋ฐ๋ฅธ ๋ํ๋ ๋ณํ
3. **์ฃผ์ ํ์๋ผ์ธ**: ๋ํ ์ฃผ์ ์ ์๊ฐ์ ํ๋ฆ
4. **์๋ํด๋ผ์ฐ๋**: ์์ฃผ ์ฌ์ฉ๋ ๋จ์ด๋ค
5. **์ฌ์ฉ์ ํ๋**: ๊ฐ ์ฐธ์ฌ์์ ๊ธฐ์ฌ๋
6. **๋ต์ฅ ์๋**: ์ํต ์คํ์ผ ๋ถ์
## ๐ก ํ์ฉ ์ฌ๋ก
### ๊ฐ์ธ/๊ทธ๋ฃน ๋ถ์
- ์น๊ตฌ๋ค๊ณผ์ ๋ํ ํจํด ๋ถ์
- ๊ฐ์กฑ ๋จํก๋ฐฉ ํ๋ ๋ถ์
- ๋ํธํ/์ปค๋ฎค๋ํฐ ์ํต ํจํด
### ์ฐ๊ตฌ ๋ชฉ์
- ๋์งํธ ์ปค๋ฎค๋์ผ์ด์
์ฐ๊ตฌ
- ์ฌํ ๋คํธ์ํฌ ๋ถ์
- ์ธ์ดํ ์ฐ๊ตฌ ๋ฐ์ดํฐ
### ๋น์ฆ๋์ค ๋ถ์
- ํ ์ปค๋ฎค๋์ผ์ด์
ํจ์จ์ฑ
- ๊ณ ๊ฐ ์ํต ํจํด
- ์ปค๋ฎค๋ํฐ ๊ด๋ฆฌ ์ธ์ฌ์ดํธ
## ๐ก๏ธ ๊ฐ์ธ์ ๋ณด ๋ณดํธ
- ๋ชจ๋ ๋ถ์์ ๋ก์ปฌ์์ ์ํ๋ฉ๋๋ค
- ๋ฐ์ดํฐ๋ ์ธ๋ถ๋ก ์ ์ก๋์ง ์์ต๋๋ค
- ๊ฒฐ๊ณผ ํ์ผ์๋ ์๋ณธ ๋ฉ์์ง๊ฐ ํฌํจ๋ ์ ์์ผ๋ ๊ณต์ ์ ์ฃผ์ํ์ธ์
- ๊ฐ์ธ ์๋ณ ์ ๋ณด๊ฐ ํฌํจ๋ ๋ถ์ ๊ฒฐ๊ณผ๋ ์ ์คํ ๊ด๋ฆฌํ์ธ์
## ๐ ๋ฌธ์ ํด๊ฒฐ
### ์ผ๋ฐ์ ์ธ ๋ฌธ์
**1. ๋ชจ๋์ ์ฐพ์ ์ ์์**
```bash
pip install -r requirements.txt
```
**2. ํ๊ตญ์ด ํฐํธ ๋ฌธ์ **
- macOS: Apple Gothic ์๋ ์ฌ์ฉ
- Windows: Malgun Gothic ์๋ ์ฌ์ฉ
- Linux: Noto Sans CJK KR ์ค์น ๊ถ์ฅ
**3. ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ**
- ํฐ ๋ฐ์ดํฐ์
์ ๊ฒฝ์ฐ `--topic-window-size` ๊ฐ์ ์ค์ฌ๋ณด์ธ์
- ์๋ฒ ๋ฉ ๋นํ์ฑํ: ์ค์ ์์ `use_embeddings = False`
**4. CSV ์ธ์ฝ๋ฉ ๋ฌธ์ **
- ์๋ ์ธ์ฝ๋ฉ ๊ฐ์ง ๊ธฐ๋ฅ ๋ด์ฅ
- ์๋ ์ง์ ์ด ํ์ํ ๊ฒฝ์ฐ ํ์ผ์ UTF-8๋ก ๋ณํ
### ๋ก๊ทธ ํ์ธ
```bash
# ์์ธ ๋ก๊ทธ๋ก ์คํ
kakao-analyzer --input chat.csv --log-level DEBUG
# ๋ก๊ทธ ํ์ผ ํ์ธ (๊ธฐ๋ณธ ์ถ๋ ฅ ๋๋ ํ ๋ฆฌ)
cat chat_analysis/logs/run.log
```
## ๐ ์ฑ๋ฅ ์ต์ ํ
### ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- **๋ฐฐ์น ํฌ๊ธฐ ์กฐ์ **: ์ค์ ์์ `batch_size` ๋ณ๊ฒฝ
- **์๋ฒ ๋ฉ ๋นํ์ฑํ**: ๊ธฐ๋ณธ ๋ถ์๋ง ํ์ํ ๊ฒฝ์ฐ
- **์๋์ฐ ํฌ๊ธฐ ๊ฐ์**: ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ ์ฝ
### ์๋ ํฅ์
- **๋ณ๋ ฌ ์ฒ๋ฆฌ**: ๊ฐ๋ฅํ ๊ณณ์์ ์๋ ์ ์ฉ
- **์บ์ฑ**: ์ค๊ฐ ๊ฒฐ๊ณผ ์๋ ์ ์ฅ
- **์ต์ ํ๋ ์๊ณ ๋ฆฌ์ฆ**: ๋์ฉ๋ ๋ฐ์ดํฐ ๋์
## ๐ง ๋ก๋๋งต
ํ์ฌ ์ด ํ๋ก์ ํธ๋ ์ง์์ ์ผ๋ก ๊ฐ๋ฐ ์ค์ด๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ๋ค์ด ์ถ๊ฐ๋ ์์ ์
๋๋ค:
### ๐ฎ ์์ ๋ ๊ธฐ๋ฅ๋ค
- **๐ ๋ค์ค ๋ฉ์ ์ ์ง์**: ๋ผ์ธ, ํ
๋ ๊ทธ๋จ, ๋์ค์ฝ๋ ๋ฑ ๋ค๋ฅธ ๋ฉ์ ์ ํ๋ซํผ ์ง์
- **๐ฑ ์น ์ธํฐํ์ด์ค**: ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉํ ์ ์๋ ์ง๊ด์ ์ธ UI
- **โก ์ค์๊ฐ ๋ถ์**: ๋ํ ์งํ ์ค ์ค์๊ฐ ํจํด ๋ถ์
- **๐ค ๊ณ ๊ธ AI ๊ธฐ๋ฅ**: GPT-4 ํตํฉ, ๋ ์ ๊ตํ ๊ฐ์ ๋ถ์
- **๐ ๋์๋ณด๋**: ์ค์๊ฐ ๋ชจ๋ํฐ๋ง ๋ฐ ์๋ฆผ ์์คํ
- **๐ ๊ฒ์ ์์ง**: ๋ํ ๋ด์ฉ ๊ณ ๊ธ ๊ฒ์ ๋ฐ ํํฐ๋ง
- **๐ ํธ๋ ๋ ๋ถ์**: ์๊ฐ์ ๋ฐ๋ฅธ ๋ํ ํจํด ๋ณํ ์ถ์
- **๐จ ํ
๋ง ์ปค์คํฐ๋ง์ด์ ์ด์
**: ์๊ฐํ ์คํ์ผ ๋ฐ ์์ ํ
๋ง ์ ํ
- **๐พ ํด๋ผ์ฐ๋ ๋ฐฑ์
**: ๋ถ์ ๊ฒฐ๊ณผ ์๋ ๋ฐฑ์
๋ฐ ๋๊ธฐํ
- **๐ง ๋ฆฌํฌํธ ์๋ ๋ฐ์ก**: ์ ๊ธฐ์ ์ธ ๋ถ์ ๋ฆฌํฌํธ ์ด๋ฉ์ผ ๋ฐ์ก
### ๐ฏ ๋ค์ ๋ฒ์ (v1.1.0) ์์ ๊ธฐ๋ฅ
- ์์ฑ ๋ฉ์์ง ๊ธธ์ด ๋ถ์
- ํ์ผ ๊ณต์ ํจํด ๋ถ์
- ๋ํ๋ฐฉ ์ฐธ์ฌ์ ๋ณํ ์ถ์
- ๊ฐ์ ๋ณํ ์๊ณ์ด ๋ถ์
- ํค์๋ ์๋ฆผ ์์คํ
## ๐จโ๐ป ๊ฐ๋ฐ์
### ๐ ์ฃผ ๊ฐ๋ฐ์
- **xistoh162108** (KAIST)
- ๐ง ์ด๋ฉ์ผ: xistoh162108@kaist.ac.kr
- ๐ซ ์์: ํ๊ตญ๊ณผํ๊ธฐ์ ์ (KAIST)
- ๐ GitHub: [@xistoh162108](https://github.com/xistoh162108)
### ๐ค AI ํ๋ ฅ ๊ฐ๋ฐ
- **Claude AI** (Anthropic)
- ์ฝ๋ ์ํคํ
์ฒ ์ค๊ณ ๋ฐ ๊ตฌํ
- ์๊ณ ๋ฆฌ์ฆ ์ต์ ํ ๋ฐ ํ๊ตญ์ด ํนํ ๊ธฐ๋ฅ
- ๋ฌธ์ํ ๋ฐ ์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์
์ด ํ๋ก์ ํธ๋ **์ธ๊ฐ-AI ํ์
**์ ๊ฒฐ๊ณผ๋ฌผ๋ก, ํ์ ์ฐ๊ตฌ์ ์ค์ฉ์ ๋๊ตฌ ๊ฐ๋ฐ์ ๋ง๋จ์ ๋ณด์ฌ์ค๋๋ค.
## ๐ค ๊ธฐ์ฌํ๊ธฐ
### ๐ ํ์
๋ฐฉ์
- **์ด์ ๋ฆฌํฌํ
**: [GitHub Issues](https://github.com/xistoh162108/kakaotalk_analyzer/issues)
- **๊ธฐ๋ฅ ์ ์**: Pull Request ํ์
- **ํ์ ํ๋ ฅ**: ์ฐ๊ตฌ ๋ชฉ์ ์ฌ์ฉ ์ ์ธ์ฉ ๋ถํ๋๋ฆฝ๋๋ค
### ๐ก ๊ฐ์ ์์ด๋์ด
- ์๋ก์ด ๋ถ์ ์งํ ์ถ๊ฐ
- ๋ค๋ฅธ ๋ฉ์ ์ ์ง์ (๋ผ์ธ, ํ
๋ ๊ทธ๋จ ๋ฑ)
- ์น ์ธํฐํ์ด์ค ๊ฐ๋ฐ
- ์ค์๊ฐ ๋ถ์ ๊ธฐ๋ฅ
### ๐ ์ธ์ฉ (Citation)
ํ์ ๋
ผ๋ฌธ์ด๋ ์ฐ๊ตฌ์์ ์ฌ์ฉํ์ค ๋:
```bibtex
xistoh162108, & Claude AI. (2025). Kakao Talk Analyzer:
Comprehensive analysis tool for KakaoTalk chat exports (v1.0.1).
https://github.com/xistoh162108/kakaotalk_analyzer
```
## ๐ ๋ผ์ด์ ์ค
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ ์ค ํ์ ๋ฐฐํฌ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ [LICENSE](LICENSE) ํ์ผ์ ์ฐธ๊ณ ํ์ธ์.
## ๐ ๊ฐ์ฌ์ ๋ง
- **ํ๊ตญ์ด ์์ฐ์ด ์ฒ๋ฆฌ**: KoNLPy, mecab-python3
- **์๊ฐํ**: matplotlib, seaborn, wordcloud
- **๋ฐ์ดํฐ ์ฒ๋ฆฌ**: pandas, numpy
- **๋จธ์ ๋ฌ๋**: scikit-learn, sentence-transformers
---
**๐ค Generated with [Claude Code](https://claude.ai/code)**
Co-Authored-By: Claude <noreply@anthropic.com>
Raw data
{
"_id": null,
"home_page": "https://github.com/xistoh162108/kakaotalk_analyzer",
"name": "kakao-analyzer",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "kakao kakaotalk chat analysis nlp korean messaging",
"author": "xistoh162108, Claude AI",
"author_email": "xistoh162108@kaist.ac.kr",
"download_url": "https://files.pythonhosted.org/packages/84/6d/863a8d2c93da2cb710da2d1432b4e0bd13937e6c97bccda867f49192f532/kakao_analyzer-1.0.2.tar.gz",
"platform": null,
"description": "# \ud83d\udd25 \uce74\uce74\uc624\ud1a1 \ub300\ud654 \ubd84\uc11d\uae30 (Kakao Talk Analyzer)\n\n[](https://badge.fury.io/py/kakao-analyzer)\n[](https://pypi.org/project/kakao-analyzer/)\n[](https://opensource.org/licenses/MIT)\n[](https://pepy.tech/project/kakao-analyzer)\n\n> \uce74\uce74\uc624\ud1a1 \ub300\ud654 \ub0b4\ubcf4\ub0b4\uae30 CSV \ud30c\uc77c\uc744 \uc885\ud569\uc801\uc73c\ub85c \ubd84\uc11d\ud558\ub294 **\ucc28\uc138\ub300 AI \uae30\ubc18** \uc62c\uc778\uc6d0 \ub3c4\uad6c\n\n```bash\npip install kakao-analyzer\n```\n\n**\ud83c\udfaf \uce74\uce74\uc624\ud1a1\uc758 \ud2b9\uc131\uc744 \uc644\ubcbd\ud558\uac8c \uc774\ud574\ud558\ub294 \uc2a4\ub9c8\ud2b8 \ubd84\uc11d\uae30**\n- \uc5f0\uc18d \uba54\uc2dc\uc9c0 \uc790\ub3d9 \uadf8\ub8f9\ud551 (1\ubd84 \uc774\ub0b4 \uba54\uc2dc\uc9c0 \ud1b5\ud569)\n- \ud55c\uad6d\uc5b4 \ucc44\ud305 \ud328\ud134 \uc778\uc2dd (\u314b\u314b, \u3160\u3160, \uc774\ubaa8\ud2f0\ucf58 \ub4f1)\n- \uc2dc\uc2a4\ud15c \uba54\uc2dc\uc9c0 \uc790\ub3d9 \ud544\ud130\ub9c1 (\uc0ad\uc81c\ub41c \uba54\uc2dc\uc9c0, \ud22c\ud45c, \uc815\uc0b0 \ub4f1)\n- \uc2e4\uc81c \ub300\ud654\ub9cc \ubd84\uc11d\ud558\uc5ec \ub354 \uc815\ud655\ud55c \uc778\uc0ac\uc774\ud2b8 \uc81c\uacf5\n\n## \ud83d\ude80 \uc8fc\uc694 \uae30\ub2a5\n\n### \ud83c\udfaf **\uce74\uce74\uc624\ud1a1 \ud2b9\ud654 \uae30\ub2a5** \u2b50 NEW!\n- **\uc2a4\ub9c8\ud2b8 \uba54\uc2dc\uc9c0 \uadf8\ub8f9\ud551**: 1\ubd84 \uc774\ub0b4 \uc5f0\uc18d \uba54\uc2dc\uc9c0\ub97c \ud558\ub098\ub85c \ud1b5\ud569\ud558\uc5ec \uc2e4\uc81c \uc758\ub3c4 \ud30c\uc545\n- **\ud55c\uad6d\uc5b4 \ucc44\ud305 \ud328\ud134 \ubd84\uc11d**: \u314b\u314b, \u314e\u314e, \u3160\u3160, \u3147\u314b \ub4f1 \ud55c\uad6d\uc778\uc758 \ucc44\ud305 \uc2b5\uad00 \uc778\uc2dd\n- **\uc2dc\uc2a4\ud15c \uba54\uc2dc\uc9c0 \ud544\ud130\ub9c1**: \uc0ad\uc81c\ub41c \uba54\uc2dc\uc9c0, \ud22c\ud45c, \uc815\uc0b0, \uc785\uc7a5/\ud1f4\uc7a5 \uc54c\ub9bc \uc790\ub3d9 \uc81c\uac70\n- **\uba58\uc158 \ubd84\uc11d**: @ \uae30\ub2a5\uc744 \uc774\uc6a9\ud55c \uc0ac\uc6a9\uc790 \uc5b8\uae09 \ud328\ud134\uacfc \ub124\ud2b8\uc6cc\ud06c \ubd84\uc11d\n- **\uac10\uc815 \ud45c\ud604 \ubd84\uc11d**: \uc6c3\uc74c, \uc2ac\ud514, \ub3d9\uc758 \ud45c\ud604 \ub4f1\uc758 \uac10\uc815 \ud328\ud134 \ucd94\uc801\n\n### \ud83d\udcca \uae30\ubcf8 \ud1b5\uacc4 \ubd84\uc11d\n- **\uc0ac\uc6a9\uc790\ubcc4 \ud65c\ub3d9 \ud1b5\uacc4**: \uba54\uc2dc\uc9c0 \uc218, \ucc38\uc5ec\uc728, \uc77c\ud3c9\uade0 \ud65c\ub3d9\ub7c9\n- **\uc2dc\uac04\uc801 \ud328\ud134 \ubd84\uc11d**: \uc2dc\uac04\ub300\ubcc4, \uc694\uc77c\ubcc4, \uc6d4\ubcc4 \ud65c\ub3d9 \ubd84\ud3ec \n- **\ub2e8\uc5b4 \ube48\ub3c4 \ubd84\uc11d**: \ud55c\uad6d\uc5b4 \ud615\ud0dc\uc18c \ubd84\uc11d \ubc0f \ud0a4\uc6cc\ub4dc \ucd94\ucd9c\n- **\uba54\uc2dc\uc9c0\ubcc4 \ub2e8\uc5b4 \uc218 \ud1b5\uacc4**: \uc6d0\ubcf8 \ubc0f \ud544\ud130\ub9c1\ub41c \ub2e8\uc5b4 \uc218 \ubd84\uc11d (\ud3c9\uade0, \uc911\uac04\uac12, \ucd5c\ub300\uac12)\n- **\uc774\ubaa8\ud2f0\ucf58/\uc774\ubaa8\uc9c0 \uc0ac\uc6a9 \ud1b5\uacc4**: \ubc18\uc751 \ud328\ud134 \ubd84\uc11d\n\n### \ud83d\udcac \ub300\ud654 \uc5ed\ud559 \ubd84\uc11d\n- **\ub300\ud654 \ud134 \ubd84\uc11d**: \uc790\ub3d9 \ub300\ud654 \uc138\uc158 \uad6c\ubd84\n- **\uc8fc\uc81c \uc804\ud658 \ud0d0\uc9c0**: \uc784\ubca0\ub529 \uae30\ubc18 \uc8fc\uc81c \ubcc0\ud654 \uac10\uc9c0\n- **\ucc38\uc5ec\uc790 \ud328\ud134**: \ub300\ud654 \uc2dc\uc791\uc790, \uc751\ub2f5\uc790 \ubd84\uc11d (\uc2dc\uc791 \ud69f\uc218 \uc21c\uc73c\ub85c \uc815\ub82c)\n- **\uc0c1\ud638\uc791\uc6a9 \ubd84\uc11d**: \uc0ac\uc6a9\uc790 \uac04 \uc18c\ud1b5 \ud328\ud134\n- **\uba58\uc158 \ub124\ud2b8\uc6cc\ud06c \ubd84\uc11d**: @ \uba58\uc158\uc744 \ud1b5\ud55c \uc0ac\uc6a9\uc790 \uac04 \uc5b8\uae09 \uad00\uacc4 \ubc0f \uc0c1\ud638 \uba58\uc158 \ubd84\uc11d\n\n### \ud83c\udfaf \uc7ac\ubbf8\uc788\ub294 \uc9c0\ud45c\n- **\ucc38\uc5ec \ubd88\ud3c9\ub4f1**: \uc9c0\ub2c8 \uacc4\uc218\ub97c \ud1b5\ud55c \ubc1c\uc5b8\uad8c \ubd84\uc11d\n- **\ub2f5\uc7a5 \uc18d\ub3c4**: \ubc18\uc751 \uc2dc\uac04 \ud1b5\uacc4 \ubc0f \ubd84\ud3ec\n- **\ud65c\ub3d9 \uc5f0\uc18d\uc131**: \uc5f0\uc18d \uba54\uc2dc\uc9c0 \ubc0f \ud65c\ub3d9\uc77c \ubd84\uc11d\n- **\uc2ec\uc57c \ucc44\ud305**: \ubc24\uc0d8 \ub300\ud654 \ud328\ud134 \ubd84\uc11d\n\n### \ud83d\udd0d \uace0\uae09 \ubd84\uc11d\n- **\uc784\ubca0\ub529 \uae30\ubc18 \uc8fc\uc81c \ubd84\uc11d**: \uc758\ubbf8\ub860\uc801 \uc720\uc0ac\ub3c4\ub97c \ud1b5\ud55c \uc8fc\uc81c \uc138\uadf8\uba3c\ud2b8\n- **SPLADE \ud558\uc774\ube0c\ub9ac\ub4dc \uac80\uc0c9**: Dense + Sparse \ubca1\ud130\ub97c \ud65c\uc6a9\ud55c \ub300\ud654 \uac80\uc0c9\n- **\uc2dc\uacc4\uc5f4 \ubd84\uc11d**: \uc2dc\uac04\uc5d0 \ub530\ub978 \ub300\ud654 \ud328\ud134 \ubcc0\ud654\n- **\uac10\uc815 \ubd84\uc11d**: \ub300\ud654 \ubd84\uc704\uae30\uc640 \uac10\uc815 \ud328\ud134 \ucd94\uc801\n- **\uc2a4\ub9c8\ud2b8 \ud1a0\ud53d \ud074\ub7ec\uc2a4\ud130\ub9c1**: \uace0\uae09 \uc8fc\uc81c \ubd84\ub958 \ubc0f \ud14c\ub9c8 \ubd84\uc11d\n- **\ub300\ud654 \ub9ac\ub4ec \ubd84\uc11d**: \uc751\ub2f5 \ud328\ud134\uacfc \uc2dc\uac04\uc801 \ub9ac\ub4ec \ubd84\uc11d\n- **\ub300\uaddc\ubaa8 \ub370\uc774\ud130\uc14b \ucd5c\uc801\ud654**: \uc9c0\ub2a5\ud615 \uccad\ud0b9\uacfc \uba54\ubaa8\ub9ac \ud6a8\uc728\uc131\n\n### \ud83d\udcc8 \uc2dc\uac01\ud654 (\uac1c\uc120\ub428!)\n- **\ud65c\ub3d9 \ud788\ud2b8\ub9f5**: \uc2dc\uac04\ub300 \u00d7 \uc694\uc77c \ud65c\ub3d9 \ubd84\ud3ec\n- **\uc77c\ubcc4 \ud0c0\uc784\ub77c\uc778**: \uba54\uc2dc\uc9c0 \uc218 \ucd94\uc774 \uadf8\ub798\ud504\n- **\uc8fc\uc81c \ud0c0\uc784\ub77c\uc778**: \uc8fc\uc81c \uc138\uadf8\uba3c\ud2b8 \uc2dc\uac01\ud654 (\uacb9\uce68 \ubb38\uc81c \ud574\uacb0)\n- **\uc6cc\ub4dc\ud074\ub77c\uc6b0\ub4dc**: \ud55c\uad6d\uc5b4 \ud3f0\ud2b8 \uc9c0\uc6d0\uc73c\ub85c \uae68\uc9d0 \ud604\uc0c1 \ud574\uacb0\n- **\uc0ac\uc6a9\uc790 \ud65c\ub3d9 \ucc28\ud2b8**: \ub9ce\uc740 \uc0ac\uc6a9\uc790\ub3c4 \uae54\ub054\ud558\uac8c \ud45c\uc2dc (\uacb9\uce68 \ubb38\uc81c \ud574\uacb0)\n\n## \ud83d\udee0\ufe0f \uc124\uce58 \ubc0f \uc2e4\ud589\n\n### \ud83d\udce6 PyPI\ub97c \ud1b5\ud55c \uac04\ud3b8 \uc124\uce58 (\uad8c\uc7a5)\n\n```bash\n# \uae30\ubcf8 \uc124\uce58\npip install kakao-analyzer\n\n# \uc804\uccb4 \uae30\ub2a5 \uc124\uce58 (AI \ubaa8\ub378 \ud3ec\ud568)\npip install kakao-analyzer[full]\n\n# \uac1c\ubc1c \ub3c4\uad6c \ud3ec\ud568 \uc124\uce58\npip install kakao-analyzer[dev]\n```\n\n\uc124\uce58 \ud6c4 \ubc14\ub85c \uc0ac\uc6a9 \uac00\ub2a5:\n```bash\nkakao-analyzer --input your_chat.csv\n```\n\n### \ud83d\udcbb \uac1c\ubc1c\uc790\uc6a9 \uc124\uce58\n\n\uac1c\ubc1c\uc774\ub098 \ucee4\uc2a4\ud130\ub9c8\uc774\uc9d5\uc744 \uc6d0\ud55c\ub2e4\uba74:\n\n```bash\n# \uc800\uc7a5\uc18c \ud074\ub860\ngit clone https://github.com/xistoh162108/kakaotalk_analyzer.git\ncd kakaotalk_analyzer\n\n# \uc758\uc874\uc131 \uc124\uce58\npip install -r requirements.txt\n\n# \uac1c\ubc1c \ubaa8\ub4dc\ub85c \uc124\uce58\npip install -e .\n```\n\n### \ud83d\udccb \uc694\uad6c\uc0ac\ud56d\n- **Python**: 3.8 \uc774\uc0c1\n- **\uc6b4\uc601\uccb4\uc81c**: Windows, macOS, Linux \ubaa8\ub450 \uc9c0\uc6d0\n- **\uba54\ubaa8\ub9ac**: \ucd5c\uc18c 4GB RAM (\ub300\uc6a9\ub7c9 \ub370\uc774\ud130\ub294 8GB+ \uad8c\uc7a5)\n\n## \ud83d\ude80 \ube60\ub978 \uc2dc\uc791\n\n### 1\ub2e8\uacc4: \uc124\uce58\n```bash\npip install kakao-analyzer\n```\n\n### 2\ub2e8\uacc4: \uce74\uce74\uc624\ud1a1 \ub300\ud654 \ub0b4\ubcf4\ub0b4\uae30\n1. \uce74\uce74\uc624\ud1a1 \uc571\uc5d0\uc11c \ubd84\uc11d\ud558\uace0 \uc2f6\uc740 \ub300\ud654\ubc29 \uc5f4\uae30\n2. `\u2630` \uba54\ub274 \u2192 `\ucc44\ud305\ubc29 \uc124\uc815` \u2192 `\ub300\ud654 \ub0b4\uc6a9 \ub0b4\ubcf4\ub0b4\uae30`\n3. `\ud14d\uc2a4\ud2b8 \ud30c\uc77c(.txt)` \uc120\ud0dd\ud558\uc5ec \ub0b4\ubcf4\ub0b4\uae30\n4. \ub0b4\ubcf4\ub0b8 \ud30c\uc77c\uc744 CSV \ud615\uc2dd\uc73c\ub85c \ubcc0\ud658 (\ub610\ub294 \uc9c1\uc811 CSV\ub85c \uc900\ube44)\n\n### 3\ub2e8\uacc4: \ubd84\uc11d \uc2e4\ud589\n```bash\n# \uae30\ubcf8 \ubd84\uc11d\nkakao-analyzer --input your_chat.csv\n\n# \uace0\uae09 AI \ubd84\uc11d \ud3ec\ud568 (\uad8c\uc7a5)\nkakao-analyzer --input your_chat.csv --use-splade --use-ollama\n```\n\n### \u2728 \uc0ac\uc6a9\ubc95\n```bash\n# \uae30\ubcf8 \ubd84\uc11d (\uac00\uc7a5 \uac04\ub2e8)\nkakao-analyzer --input chat.csv\n\n# \ucd9c\ub825 \ub514\ub809\ud1a0\ub9ac \uc9c0\uc815\nkakao-analyzer --input chat.csv --outdir my_analysis\n\n# \ub3c4\uc6c0\ub9d0 \ubcf4\uae30\nkakao-analyzer --help\n```\n\n### \ud83d\udee0\ufe0f \uace0\uae09 \uc635\uc158\n```bash\nkakao-analyzer --input INPUT [\uc635\uc158\ub4e4]\n\n\ud544\uc218 \uc635\uc158:\n --input INPUT \uc785\ub825 CSV \ud30c\uc77c \uacbd\ub85c\n\n\ubd84\uc11d \uc635\uc158:\n --window-minutes MINUTES \ub300\ud654 \ud134 \uad6c\ubd84 \uc2dc\uac04 (\uae30\ubcf8\uac12: 30\ubd84)\n --topic-window-size SIZE \uc8fc\uc81c \ubd84\uc11d \uc708\ub3c4\uc6b0 \ud06c\uae30 (\uae30\ubcf8\uac12: 15)\n --similarity-threshold FLOAT \uc720\uc0ac\ub3c4 \uc784\uacc4\uac12 (\uae30\ubcf8\uac12: 0.3)\n --batch-size SIZE \uc784\ubca0\ub529 \ubc30\uce58 \ud06c\uae30 (\uae30\ubcf8\uac12: 32)\n --max-workers WORKERS \ucd5c\ub300 \ubcd1\ub82c \uc791\uc5c5 \uc218 (\uae30\ubcf8\uac12: 4)\n\nAI \ubaa8\ub378 \uc635\uc158:\n --use-ollama Ollama \uc784\ubca0\ub529 \uc0ac\uc6a9 (\ub85c\uceec)\n --model-name MODEL Ollama \ubaa8\ub378\uba85 (\uae30\ubcf8\uac12: gpt-oss:20b)\n --embed-model MODEL \uc784\ubca0\ub529 \ubaa8\ub378\uba85 (\uae30\ubcf8\uac12: bge-m3)\n --use-splade SPLADE \ud76c\uc18c \uac80\uc0c9 \ud65c\uc131\ud654\n\n\ub300\uaddc\ubaa8 \ub370\uc774\ud130 \uc635\uc158:\n --subset-size SIZE \ud14c\uc2a4\ud2b8\uc6a9 \ubd80\ubd84\uc9d1\ud569 \ud06c\uae30 \n --subset-strategy STRATEGY \ubd80\ubd84\uc9d1\ud569 \uc804\ub7b5 (balanced/temporal/diverse/random)\n\n\uce74\uce74\uc624\ud1a1 \ud2b9\ud654 \uc635\uc158:\n --disable-message-grouping \uc5f0\uc18d \uba54\uc2dc\uc9c0 \uadf8\ub8f9\ud551 \ube44\ud65c\uc131\ud654 (\ube44\ucd94\ucc9c)\n --group-window-seconds N \uba54\uc2dc\uc9c0 \uadf8\ub8f9\ud551 \uc2dc\uac04 \ucc3d (\uae30\ubcf8\uac12: 60\ucd08)\n\n\ucd9c\ub825 \uc635\uc158:\n --outdir DIRECTORY \ucd9c\ub825 \ub514\ub809\ud1a0\ub9ac\n --figure-dpi DPI \uadf8\ub798\ud504 \ud574\uc0c1\ub3c4 (\uae30\ubcf8\uac12: 300)\n --log-level LEVEL \ub85c\uadf8 \ub808\ubca8 (DEBUG/INFO/WARNING/ERROR)\n --quiet \ucf58\uc194 \ucd9c\ub825 \uc5b5\uc81c\n --skip-viz \uc2dc\uac01\ud654 \uc0dd\uc131 \uac74\ub108\ub6f0\uae30\n```\n\n### \ud83d\udca1 \uc0ac\uc6a9 \uc608\uc81c\n```bash\n# \ud83c\udf1f \uae30\ubcf8 \ubd84\uc11d (\ucd94\ucc9c)\nkakao-analyzer --input chat.csv\n\n# \ud83e\udd16 AI \uae30\ub2a5 \uc804\uccb4 \ud65c\uc6a9\nkakao-analyzer --input chat.csv --use-splade --use-ollama --model-name \"gpt-oss:20b\"\n\n# \ud83d\udcca \ud2b9\uc815 \ub514\ub809\ud1a0\ub9ac\uc5d0 \uacb0\uacfc \uc800\uc7a5\nkakao-analyzer --input chat.csv --outdir my_results\n\n# \u26a1 \ub300\uc6a9\ub7c9 \ub370\uc774\ud130 \ube60\ub978 \ud14c\uc2a4\ud2b8\nkakao-analyzer --input big_chat.csv --subset-size 1000 --subset-strategy balanced\n\n# \ud83d\udd27 \uc138\ubc00\ud55c \uc124\uc815 \uc870\uc815\nkakao-analyzer --input chat.csv --topic-window-size 20 --similarity-threshold 0.4\n\n# \ud83c\udfa8 \uace0\ud574\uc0c1\ub3c4 \uadf8\ub798\ud504 \uc0dd\uc131\nkakao-analyzer --input chat.csv --figure-dpi 600\n\n# \ud83d\udd07 \uc870\uc6a9\ud55c \uc2e4\ud589 (CI/CD\uc6a9)\nkakao-analyzer --input chat.csv --quiet --skip-viz --log-level ERROR\n```\n\n## \ud83d\udcc1 \ucd9c\ub825 \uad6c\uc870\n\n\ubd84\uc11d \uc644\ub8cc \ud6c4 \ub2e4\uc74c\uacfc \uac19\uc740 \uad6c\uc870\ub85c \uacb0\uacfc\uac00 \uc0dd\uc131\ub429\ub2c8\ub2e4:\n\n```\noutput_directory/\n\u251c\u2500\u2500 summary/ # \uc694\uc57d \uc815\ubcf4\n\u2502 \u251c\u2500\u2500 analysis_summary.json # \uc804\uccb4 \ubd84\uc11d \uc694\uc57d\n\u2502 \u2514\u2500\u2500 processed_messages.csv # \ucc98\ub9ac\ub41c \uba54\uc2dc\uc9c0 \ub370\uc774\ud130\n\u251c\u2500\u2500 basics/ # \uae30\ubcf8 \ud1b5\uacc4\n\u2502 \u2514\u2500\u2500 basic_statistics.json # \uc0c1\uc138 \ud1b5\uacc4 \ub370\uc774\ud130\n\u251c\u2500\u2500 context/ # \ub9e5\ub77d \ubd84\uc11d\n\u2502 \u251c\u2500\u2500 topic_segments.json # \uc8fc\uc81c \uc138\uadf8\uba3c\ud2b8 \ub370\uc774\ud130\n\u2502 \u251c\u2500\u2500 topic_segments.csv # \uc8fc\uc81c \uc138\uadf8\uba3c\ud2b8 \ud14c\uc774\ube14\n\u2502 \u251c\u2500\u2500 mood_analysis.json # \uac10\uc815 \ubc0f \ubd84\uc704\uae30 \ubd84\uc11d\n\u2502 \u251c\u2500\u2500 advanced_topics.json # \uace0\uae09 \uc8fc\uc81c \ud074\ub7ec\uc2a4\ud130\ub9c1\n\u2502 \u251c\u2500\u2500 rhythm_analysis.json # \ub300\ud654 \ub9ac\ub4ec \ubd84\uc11d\n\u2502 \u251c\u2500\u2500 mention_analysis.json # \uba58\uc158 \ud328\ud134 \ubc0f \ub124\ud2b8\uc6cc\ud06c \ubd84\uc11d\n\u2502 \u251c\u2500\u2500 hybrid_index.meta.json # \uac80\uc0c9 \uc778\ub371\uc2a4 (SPLADE)\n\u2502 \u2514\u2500\u2500 splade_scores.parquet # \ud76c\uc18c \ubca1\ud130 \ub370\uc774\ud130 (SPLADE)\n\u251c\u2500\u2500 fun/ # \uc7ac\ubbf8 \uc9c0\ud45c\n\u2502 \u2514\u2500\u2500 fun_metrics.json # \ucc38\uc5ec \ubd88\ud3c9\ub4f1, \ub2f5\uc7a5 \uc18d\ub3c4 \ub4f1\n\u251c\u2500\u2500 figures/ # \uc2dc\uac01\ud654\n\u2502 \u251c\u2500\u2500 heatmap_hour_weekday.png\n\u2502 \u251c\u2500\u2500 timeseries_daily.png\n\u2502 \u251c\u2500\u2500 topic_timeline.png\n\u2502 \u251c\u2500\u2500 wordcloud_global.png\n\u2502 \u251c\u2500\u2500 user_activity_distribution.png\n\u2502 \u2514\u2500\u2500 reply_latency_distribution.png\n\u251c\u2500\u2500 reports/ # \ub9ac\ud3ec\ud2b8\n\u2502 \u251c\u2500\u2500 analysis_report.md # \uc885\ud569 \ubd84\uc11d \ub9ac\ud3ec\ud2b8\n\u2502 \u2514\u2500\u2500 qa_test_report.md # \ud488\uc9c8 \ubcf4\uc99d \ub9ac\ud3ec\ud2b8 (\ud14c\uc2a4\ud2b8\uc2dc)\n\u2514\u2500\u2500 logs/ # \ub85c\uadf8\n \u251c\u2500\u2500 pipeline_metadata.json # \uc2e4\ud589 \uba54\ud0c0\ub370\uc774\ud130\n \u2514\u2500\u2500 analyzer.log # \ubd84\uc11d \ub85c\uadf8\n```\n\n## \ud83d\udccb \uc785\ub825 \ub370\uc774\ud130 \ud615\uc2dd\n\n\uce74\uce74\uc624\ud1a1\uc5d0\uc11c \ub0b4\ubcf4\ub0b8 CSV \ud30c\uc77c\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. \uc9c0\uc6d0\ud558\ub294 \uceec\ub7fc \ud615\uc2dd:\n\n### \ud544\uc218 \uceec\ub7fc\n- `user` \ub610\ub294 `User` \ub610\ub294 `\uc0ac\uc6a9\uc790`: \uba54\uc2dc\uc9c0 \uc791\uc131\uc790\n- `message` \ub610\ub294 `Message` \ub610\ub294 `\uba54\uc2dc\uc9c0`: \uba54\uc2dc\uc9c0 \ub0b4\uc6a9 \n- `datetime` \ub610\ub294 `Date` \ub610\ub294 `\uc2dc\uac04`: \uba54\uc2dc\uc9c0 \uc2dc\uac04\n\n### \uc608\uc81c CSV \ud615\uc2dd\n```csv\nuser,message,datetime\n\uae40\ubbfc\uc218,\uc548\ub155\ud558\uc138\uc694!,2024-01-01 10:00:00\n\uc774\uc9c0\uc740,\ub124 \uc548\ub155\ud558\uc138\uc694! \u314e\u314e,2024-01-01 10:01:00\n\ubc15\uc11c\uc900,\uc624\ub298 \ub0a0\uc528 \uc88b\ub124\uc694,2024-01-01 10:02:00\n```\n\n## \ud83e\uddea \ud14c\uc2a4\ud2b8\n\n### \uae30\ubcf8 \uae30\ub2a5 \ud14c\uc2a4\ud2b8\n```bash\n# \uae30\ubcf8 \uae30\ub2a5 \ud14c\uc2a4\ud2b8 (\uc758\uc874\uc131 \uc5c6\uc774)\npython simple_test.py\n\n# \uc804\uccb4 \ud14c\uc2a4\ud2b8 \uc2a4\uc704\ud2b8 (\uc758\uc874\uc131 \uc124\uce58 \ud6c4)\npython test_runner.py\n```\n\n### \ud14c\uc2a4\ud2b8 \ub370\uc774\ud130 \uc0dd\uc131\n```bash\n# 1000\uac1c \uba54\uc2dc\uc9c0 \ud14c\uc2a4\ud2b8 \ub370\uc774\ud130 \uc0dd\uc131\npython test_runner.py --generate-data\n```\n\n## \ud83d\udd27 \uace0\uae09 \uc124\uc815\n\n### \ud83d\ude80 GPU \uac00\uc18d \uc9c0\uc6d0 (NEW!)\n- **\uc790\ub3d9 GPU \uc778\uc2dd**: CUDA\uac00 \uc124\uce58\ub41c \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uc790\ub3d9\uc73c\ub85c GPU \uc0ac\uc6a9\n- **\uba54\ubaa8\ub9ac \ucd5c\uc801\ud654**: GPU \uba54\ubaa8\ub9ac\uc758 75%\uae4c\uc9c0 \uc790\ub3d9 \uc81c\ud55c\ud558\uc5ec \uc548\uc815\uc131 \ubcf4\uc7a5\n- **\ubaa8\ub378 \uc790\ub3d9 \uc774\uad00**: \uc784\ubca0\ub529 \ubc0f SPLADE \ubaa8\ub378\uc744 GPU\ub85c \uc790\ub3d9 \ub85c\ub4dc\n- **\ubc30\uce58 \ud06c\uae30 \ucd5c\uc801\ud654**: GPU \uba54\ubaa8\ub9ac\uc5d0 \ub530\ub77c \ubc30\uce58 \ud06c\uae30 \uc790\ub3d9 \uc870\uc815\n\n#### GPU \uba54\ubaa8\ub9ac\ubcc4 \ucd5c\uc801\ud654\n- **12GB+ (RTX 3080Ti/4080 \uc774\uc0c1)**: \ubc30\uce58 \ud06c\uae30 128, Half precision\n- **8-12GB (RTX 3070/4070)**: \ubc30\uce58 \ud06c\uae30 64, Half precision \n- **4-8GB (GTX 1660/RTX 3060)**: \ubc30\uce58 \ud06c\uae30 48, Mixed precision\n- **4GB \ubbf8\ub9cc**: CPU \ubaa8\ub4dc\ub85c \uc790\ub3d9 \uc804\ud658\n\n### \uc784\ubca0\ub529 \ubaa8\ub378\n- **\uae30\ubcf8\uac12**: Mock \uc784\ubca0\ub529 (\uc678\ubd80 \uc758\uc874\uc131 \uc5c6\uc74c)\n- **\uace0\uae09 \uc635\uc158**: SentenceTransformer \ubaa8\ub378 (`sentence-transformers` \uc124\uce58 \ud544\uc694)\n- **GPU \uac00\uc18d**: CUDA \uc9c0\uc6d0 \uc2dc \uc790\ub3d9\uc73c\ub85c GPU\uc5d0\uc11c \uc2e4\ud589\n\n### SPLADE \ud558\uc774\ube0c\ub9ac\ub4dc \uac80\uc0c9\n- **\ud65c\uc131\ud654**: `--use-splade` \uc635\uc158 \uc0ac\uc6a9\n- **\uae30\ub2a5**: Dense + Sparse \ubca1\ud130\ub97c \uacb0\ud569\ud55c \uace0\uae09 \uac80\uc0c9\n- **\uc6a9\ub3c4**: \ud2b9\uc815 \uc8fc\uc81c\ub098 \ud0a4\uc6cc\ub4dc\ub85c \ub300\ud654 \uac80\uc0c9\n- **GPU \uac00\uc18d**: Half precision\uc73c\ub85c GPU\uc5d0\uc11c \uace0\uc18d \ucc98\ub9ac\n\n### Ollama \uc5f0\ub3d9 (\ud55c\uad6d\uc5b4 \ubaa8\ub378 \uc644\uc804 \uc9c0\uc6d0)\n- **\ud65c\uc131\ud654**: `--use-ollama` \uc635\uc158 \uc0ac\uc6a9\n- **\uc694\uad6c\uc0ac\ud56d**: Ollama \uc11c\ubc84 \uc2e4\ud589 \uc911\uc774\uc5b4\uc57c \ud568\n- **\uae30\ubcf8 \ubaa8\ub378**: gpt-oss:20b (\ucd94\ucc9c)\n\n#### \ud83c\uddf0\ud83c\uddf7 \uc9c0\uc6d0 \ud55c\uad6d\uc5b4 \ubaa8\ub378\ub4e4\n| \ubaa8\ub378\uba85 | \ud06c\uae30 | \ud2b9\uc9d5 | \uc0ac\uc6a9\ubc95 |\n|--------|------|------|--------|\n| `gpt-oss:20b` | 20B | \ubc94\uc6a9 \ud55c\uad6d\uc5b4 \ubaa8\ub378 (\uae30\ubcf8\uac12) | `--model-name \"gpt-oss:20b\"` |\n| `gpt-oss:40b` | 40B | \uace0\uc131\ub2a5 \ud55c\uad6d\uc5b4 \ubaa8\ub378 | `--model-name \"gpt-oss:40b\"` |\n| `llama3-ko` | 8B | LLaMA3 \ud55c\uad6d\uc5b4 \ud30c\uc778\ud29c\ub2dd | `--model-name \"llama3-ko\"` |\n| `aya:8b` | 8B | \ub2e4\uad6d\uc5b4 \uc9c0\uc6d0 (\ud55c\uad6d\uc5b4 \ud3ec\ud568) | `--model-name \"aya:8b\"` |\n| `gemma2-ko` | 9B | Google Gemma2 \ud55c\uad6d\uc5b4 \ubc84\uc804 | `--model-name \"gemma2-ko\"` |\n| `solar-ko` | 10.7B | Upstage SOLAR \ud55c\uad6d\uc5b4 \ubaa8\ub378 | `--model-name \"solar-ko\"` |\n| `eeve-korean` | 10.8B | \ud55c\uad6d \uc804\uc6a9 \ub300\ud654 \ubaa8\ub378 | `--model-name \"eeve-korean\"` |\n| `beomi-ko` | 13B | \ud55c\uad6d\uc5b4 \ud2b9\ud654 \uace0\uc131\ub2a5 \ubaa8\ub378 | `--model-name \"beomi-ko\"` |\n\n#### \ud83d\ude80 \ubaa8\ub378 \uc124\uce58 \ubc0f \uc0ac\uc6a9\ubc95\n```bash\n# Ollama \uc124\uce58 (\ud55c \ubc88\ub9cc)\ncurl -fsSL https://ollama.ai/install.sh | sh\n\n# \ud55c\uad6d\uc5b4 \ubaa8\ub378 \ub2e4\uc6b4\ub85c\ub4dc (\uc608: gpt-oss:20b)\nollama pull gpt-oss:20b\n\n# \ubd84\uc11d \uc2e4\ud589\nkakao-analyzer --input chat.csv --use-ollama --model-name \"gpt-oss:20b\"\n```\n\n## \ud83d\udcca \ubd84\uc11d \uacb0\uacfc \ud574\uc11d\n\n### \ucc38\uc5ec \ubd88\ud3c9\ub4f1 (\uc9c0\ub2c8 \uacc4\uc218)\n- **0.0-0.3**: \ub9e4\uc6b0 \uade0\ub4f1\ud55c \ucc38\uc5ec\n- **0.3-0.5**: \uc57d\uac04 \ubd88\uade0\ub4f1\n- **0.5-0.7**: \ubd88\uade0\ub4f1\ud55c \ucc38\uc5ec\n- **0.7-1.0**: \ub9e4\uc6b0 \ubd88\uade0\ub4f1 (\uc18c\uc218\uac00 \ub300\ud654 \uc8fc\ub3c4)\n\n### \uba58\uc158 \ubd84\uc11d \uc9c0\ud45c\n- **\uc0c1\ud638 \uba58\uc158 \uad00\uacc4**: \uc11c\ub85c \uba58\uc158\ud558\ub294 \uc0ac\uc6a9\uc790 \uc30d\uc758 \uc218\uc640 \ube48\ub3c4\n- **\uba58\uc158 \ub124\ud2b8\uc6cc\ud06c \ubc00\ub3c4**: \uc804\uccb4 \uac00\ub2a5\ud55c \uba58\uc158 \uad00\uacc4 \ub300\ube44 \uc2e4\uc81c \uba58\uc158 \uad00\uacc4 \ube44\uc728\n- **\uba58\uc158 \ubaa9\uc801 \ubd84\ub958**: \uc9c8\ubb38, \ubd80\ud0c1/\uc694\uccad, \uc778\uc0ac, \uae34\uae09, \ud1a0\ub860/\uc758\uacac \ub4f1\uc73c\ub85c \uc790\ub3d9 \ubd84\ub958\n\n### \ub2f5\uc7a5 \uc18d\ub3c4 \uce74\ud14c\uace0\ub9ac\n- **\uc989\uc11d \ub2f5\uc7a5**: 1\ubd84 \uc774\ub0b4\n- **\ube60\ub978 \ub2f5\uc7a5**: 1-5\ubd84\n- **\ubcf4\ud1b5 \ub2f5\uc7a5**: 5-30\ubd84\n- **\ub290\ub9b0 \ub2f5\uc7a5**: 30\ubd84 \uc774\uc0c1\n\n### \uc8fc\uc81c \uc138\uadf8\uba3c\ud2b8\n- \uc784\ubca0\ub529 \uc720\uc0ac\ub3c4 \uae30\ubc18\uc73c\ub85c \uc790\ub3d9 \uac10\uc9c0\n- \uac01 \uc138\uadf8\uba3c\ud2b8\ubcc4 \ud0a4\uc6cc\ub4dc, \ucc38\uc5ec\uc790, \uc9c0\uc18d\uc2dc\uac04 \uc81c\uacf5\n- \uc8fc\uc81c \uc804\ud658 \ud328\ud134 \ubd84\uc11d\n\n## \ud83c\udfa8 \uc2dc\uac01\ud654 \uac00\uc774\ub4dc\n\n\ubaa8\ub4e0 \uadf8\ub798\ud504\ub294 \ud55c\uad6d\uc5b4 \ud3f0\ud2b8\ub97c \uc9c0\uc6d0\ud558\uba70, \ub2e4\uc74c \ud615\uc2dd\uc73c\ub85c \uc800\uc7a5\ub429\ub2c8\ub2e4:\n- **\ud615\uc2dd**: PNG (\uae30\ubcf8\uac12)\n- **\ud574\uc0c1\ub3c4**: 300 DPI (\uae30\ubcf8\uac12)\n- **\ud06c\uae30**: \uc790\ub3d9 \uc870\uc815\n\n### \uc8fc\uc694 \uc2dc\uac01\ud654\n1. **\ud65c\ub3d9 \ud788\ud2b8\ub9f5**: \uc5b8\uc81c \uac00\uc7a5 \ud65c\ubc1c\ud55c\uc9c0 \ud55c\ub208\uc5d0 \ud30c\uc545\n2. **\uc77c\ubcc4 \ud0c0\uc784\ub77c\uc778**: \uc2dc\uac04\uc5d0 \ub530\ub978 \ub300\ud654\ub7c9 \ubcc0\ud654\n3. **\uc8fc\uc81c \ud0c0\uc784\ub77c\uc778**: \ub300\ud654 \uc8fc\uc81c\uc758 \uc2dc\uac04\uc801 \ud750\ub984\n4. **\uc6cc\ub4dc\ud074\ub77c\uc6b0\ub4dc**: \uc790\uc8fc \uc0ac\uc6a9\ub41c \ub2e8\uc5b4\ub4e4\n5. **\uc0ac\uc6a9\uc790 \ud65c\ub3d9**: \uac01 \ucc38\uc5ec\uc790\uc758 \uae30\uc5ec\ub3c4\n6. **\ub2f5\uc7a5 \uc18d\ub3c4**: \uc18c\ud1b5 \uc2a4\ud0c0\uc77c \ubd84\uc11d\n\n## \ud83d\udca1 \ud65c\uc6a9 \uc0ac\ub840\n\n### \uac1c\uc778/\uadf8\ub8f9 \ubd84\uc11d\n- \uce5c\uad6c\ub4e4\uacfc\uc758 \ub300\ud654 \ud328\ud134 \ubd84\uc11d\n- \uac00\uc871 \ub2e8\ud1a1\ubc29 \ud65c\ub3d9 \ubd84\uc11d\n- \ub3d9\ud638\ud68c/\ucee4\ubba4\ub2c8\ud2f0 \uc18c\ud1b5 \ud328\ud134\n\n### \uc5f0\uad6c \ubaa9\uc801\n- \ub514\uc9c0\ud138 \ucee4\ubba4\ub2c8\ucf00\uc774\uc158 \uc5f0\uad6c\n- \uc0ac\ud68c \ub124\ud2b8\uc6cc\ud06c \ubd84\uc11d\n- \uc5b8\uc5b4\ud559 \uc5f0\uad6c \ub370\uc774\ud130\n\n### \ube44\uc988\ub2c8\uc2a4 \ubd84\uc11d\n- \ud300 \ucee4\ubba4\ub2c8\ucf00\uc774\uc158 \ud6a8\uc728\uc131\n- \uace0\uac1d \uc18c\ud1b5 \ud328\ud134\n- \ucee4\ubba4\ub2c8\ud2f0 \uad00\ub9ac \uc778\uc0ac\uc774\ud2b8\n\n## \ud83d\udee1\ufe0f \uac1c\uc778\uc815\ubcf4 \ubcf4\ud638\n\n- \ubaa8\ub4e0 \ubd84\uc11d\uc740 \ub85c\uceec\uc5d0\uc11c \uc218\ud589\ub429\ub2c8\ub2e4\n- \ub370\uc774\ud130\ub294 \uc678\ubd80\ub85c \uc804\uc1a1\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4\n- \uacb0\uacfc \ud30c\uc77c\uc5d0\ub294 \uc6d0\ubcf8 \uba54\uc2dc\uc9c0\uac00 \ud3ec\ud568\ub420 \uc218 \uc788\uc73c\ub2c8 \uacf5\uc720 \uc2dc \uc8fc\uc758\ud558\uc138\uc694\n- \uac1c\uc778 \uc2dd\ubcc4 \uc815\ubcf4\uac00 \ud3ec\ud568\ub41c \ubd84\uc11d \uacb0\uacfc\ub294 \uc2e0\uc911\ud788 \uad00\ub9ac\ud558\uc138\uc694\n\n## \ud83d\udc1b \ubb38\uc81c \ud574\uacb0\n\n### \uc77c\ubc18\uc801\uc778 \ubb38\uc81c\n\n**1. \ubaa8\ub4c8\uc744 \ucc3e\uc744 \uc218 \uc5c6\uc74c**\n```bash\npip install -r requirements.txt\n```\n\n**2. \ud55c\uad6d\uc5b4 \ud3f0\ud2b8 \ubb38\uc81c**\n- macOS: Apple Gothic \uc790\ub3d9 \uc0ac\uc6a9\n- Windows: Malgun Gothic \uc790\ub3d9 \uc0ac\uc6a9\n- Linux: Noto Sans CJK KR \uc124\uce58 \uad8c\uc7a5\n\n**3. \uba54\ubaa8\ub9ac \ubd80\uc871**\n- \ud070 \ub370\uc774\ud130\uc14b\uc758 \uacbd\uc6b0 `--topic-window-size` \uac12\uc744 \uc904\uc5ec\ubcf4\uc138\uc694\n- \uc784\ubca0\ub529 \ube44\ud65c\uc131\ud654: \uc124\uc815\uc5d0\uc11c `use_embeddings = False`\n\n**4. CSV \uc778\ucf54\ub529 \ubb38\uc81c**\n- \uc790\ub3d9 \uc778\ucf54\ub529 \uac10\uc9c0 \uae30\ub2a5 \ub0b4\uc7a5\n- \uc218\ub3d9 \uc9c0\uc815\uc774 \ud544\uc694\ud55c \uacbd\uc6b0 \ud30c\uc77c\uc744 UTF-8\ub85c \ubcc0\ud658\n\n### \ub85c\uadf8 \ud655\uc778\n```bash\n# \uc0c1\uc138 \ub85c\uadf8\ub85c \uc2e4\ud589\nkakao-analyzer --input chat.csv --log-level DEBUG\n\n# \ub85c\uadf8 \ud30c\uc77c \ud655\uc778 (\uae30\ubcf8 \ucd9c\ub825 \ub514\ub809\ud1a0\ub9ac)\ncat chat_analysis/logs/run.log\n```\n\n## \ud83d\udcc8 \uc131\ub2a5 \ucd5c\uc801\ud654\n\n### \ub300\uc6a9\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac\n- **\ubc30\uce58 \ud06c\uae30 \uc870\uc815**: \uc124\uc815\uc5d0\uc11c `batch_size` \ubcc0\uacbd\n- **\uc784\ubca0\ub529 \ube44\ud65c\uc131\ud654**: \uae30\ubcf8 \ubd84\uc11d\ub9cc \ud544\uc694\ud55c \uacbd\uc6b0\n- **\uc708\ub3c4\uc6b0 \ud06c\uae30 \uac10\uc18c**: \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9 \uc808\uc57d\n\n### \uc18d\ub3c4 \ud5a5\uc0c1\n- **\ubcd1\ub82c \ucc98\ub9ac**: \uac00\ub2a5\ud55c \uacf3\uc5d0\uc11c \uc790\ub3d9 \uc801\uc6a9\n- **\uce90\uc2f1**: \uc911\uac04 \uacb0\uacfc \uc790\ub3d9 \uc800\uc7a5\n- **\ucd5c\uc801\ud654\ub41c \uc54c\uace0\ub9ac\uc998**: \ub300\uc6a9\ub7c9 \ub370\uc774\ud130 \ub300\uc751\n\n## \ud83d\udea7 \ub85c\ub4dc\ub9f5\n\n\ud604\uc7ac \uc774 \ud504\ub85c\uc81d\ud2b8\ub294 \uc9c0\uc18d\uc801\uc73c\ub85c \uac1c\ubc1c \uc911\uc774\uba70, \ub2e4\uc74c\uacfc \uac19\uc740 \uae30\ub2a5\ub4e4\uc774 \ucd94\uac00\ub420 \uc608\uc815\uc785\ub2c8\ub2e4:\n\n### \ud83d\udd2e \uc608\uc815\ub41c \uae30\ub2a5\ub4e4\n- **\ud83c\udf10 \ub2e4\uc911 \uba54\uc2e0\uc800 \uc9c0\uc6d0**: \ub77c\uc778, \ud154\ub808\uadf8\ub7a8, \ub514\uc2a4\ucf54\ub4dc \ub4f1 \ub2e4\ub978 \uba54\uc2e0\uc800 \ud50c\ub7ab\ud3fc \uc9c0\uc6d0\n- **\ud83d\udcf1 \uc6f9 \uc778\ud130\ud398\uc774\uc2a4**: \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uc9c1\uad00\uc801\uc778 UI\n- **\u26a1 \uc2e4\uc2dc\uac04 \ubd84\uc11d**: \ub300\ud654 \uc9c4\ud589 \uc911 \uc2e4\uc2dc\uac04 \ud328\ud134 \ubd84\uc11d\n- **\ud83e\udd16 \uace0\uae09 AI \uae30\ub2a5**: GPT-4 \ud1b5\ud569, \ub354 \uc815\uad50\ud55c \uac10\uc815 \ubd84\uc11d\n- **\ud83d\udcca \ub300\uc2dc\ubcf4\ub4dc**: \uc2e4\uc2dc\uac04 \ubaa8\ub2c8\ud130\ub9c1 \ubc0f \uc54c\ub9bc \uc2dc\uc2a4\ud15c\n- **\ud83d\udd0d \uac80\uc0c9 \uc5d4\uc9c4**: \ub300\ud654 \ub0b4\uc6a9 \uace0\uae09 \uac80\uc0c9 \ubc0f \ud544\ud130\ub9c1\n- **\ud83d\udcc8 \ud2b8\ub80c\ub4dc \ubd84\uc11d**: \uc2dc\uac04\uc5d0 \ub530\ub978 \ub300\ud654 \ud328\ud134 \ubcc0\ud654 \ucd94\uc801\n- **\ud83c\udfa8 \ud14c\ub9c8 \ucee4\uc2a4\ud130\ub9c8\uc774\uc81c\uc774\uc158**: \uc2dc\uac01\ud654 \uc2a4\ud0c0\uc77c \ubc0f \uc0c9\uc0c1 \ud14c\ub9c8 \uc120\ud0dd\n- **\ud83d\udcbe \ud074\ub77c\uc6b0\ub4dc \ubc31\uc5c5**: \ubd84\uc11d \uacb0\uacfc \uc790\ub3d9 \ubc31\uc5c5 \ubc0f \ub3d9\uae30\ud654\n- **\ud83d\udce7 \ub9ac\ud3ec\ud2b8 \uc790\ub3d9 \ubc1c\uc1a1**: \uc815\uae30\uc801\uc778 \ubd84\uc11d \ub9ac\ud3ec\ud2b8 \uc774\uba54\uc77c \ubc1c\uc1a1\n\n### \ud83c\udfaf \ub2e4\uc74c \ubc84\uc804 (v1.1.0) \uc608\uc815 \uae30\ub2a5\n- \uc74c\uc131 \uba54\uc2dc\uc9c0 \uae38\uc774 \ubd84\uc11d\n- \ud30c\uc77c \uacf5\uc720 \ud328\ud134 \ubd84\uc11d\n- \ub300\ud654\ubc29 \ucc38\uc5ec\uc790 \ubcc0\ud654 \ucd94\uc801\n- \uac10\uc815 \ubcc0\ud654 \uc2dc\uacc4\uc5f4 \ubd84\uc11d\n- \ud0a4\uc6cc\ub4dc \uc54c\ub9bc \uc2dc\uc2a4\ud15c\n\n## \ud83d\udc68\u200d\ud83d\udcbb \uac1c\ubc1c\uc790\n\n### \ud83c\udf93 \uc8fc \uac1c\ubc1c\uc790\n\n- **xistoh162108** (KAIST)\n - \ud83d\udce7 \uc774\uba54\uc77c: xistoh162108@kaist.ac.kr\n - \ud83c\udfeb \uc18c\uc18d: \ud55c\uad6d\uacfc\ud559\uae30\uc220\uc6d0 (KAIST)\n - \ud83d\udd17 GitHub: [@xistoh162108](https://github.com/xistoh162108)\n\n### \ud83e\udd16 AI \ud611\ub825 \uac1c\ubc1c\n\n- **Claude AI** (Anthropic)\n - \ucf54\ub4dc \uc544\ud0a4\ud14d\ucc98 \uc124\uacc4 \ubc0f \uad6c\ud604\n - \uc54c\uace0\ub9ac\uc998 \ucd5c\uc801\ud654 \ubc0f \ud55c\uad6d\uc5b4 \ud2b9\ud654 \uae30\ub2a5\n - \ubb38\uc11c\ud654 \ubc0f \uc0ac\uc6a9\uc790 \uacbd\ud5d8 \uac1c\uc120\n\n\uc774 \ud504\ub85c\uc81d\ud2b8\ub294 **\uc778\uac04-AI \ud611\uc5c5**\uc758 \uacb0\uacfc\ubb3c\ub85c, \ud559\uc220 \uc5f0\uad6c\uc640 \uc2e4\uc6a9\uc801 \ub3c4\uad6c \uac1c\ubc1c\uc758 \ub9cc\ub0a8\uc744 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4.\n\n## \ud83e\udd1d \uae30\uc5ec\ud558\uae30\n\n### \ud83d\udd17 \ud611\uc5c5 \ubc29\uc2dd\n\n- **\uc774\uc288 \ub9ac\ud3ec\ud305**: [GitHub Issues](https://github.com/xistoh162108/kakaotalk_analyzer/issues)\n- **\uae30\ub2a5 \uc81c\uc548**: Pull Request \ud658\uc601\n- **\ud559\uc220 \ud611\ub825**: \uc5f0\uad6c \ubaa9\uc801 \uc0ac\uc6a9 \uc2dc \uc778\uc6a9 \ubd80\ud0c1\ub4dc\ub9bd\ub2c8\ub2e4\n\n### \ud83d\udca1 \uac1c\uc120 \uc544\uc774\ub514\uc5b4\n\n- \uc0c8\ub85c\uc6b4 \ubd84\uc11d \uc9c0\ud45c \ucd94\uac00\n- \ub2e4\ub978 \uba54\uc2e0\uc800 \uc9c0\uc6d0 (\ub77c\uc778, \ud154\ub808\uadf8\ub7a8 \ub4f1)\n- \uc6f9 \uc778\ud130\ud398\uc774\uc2a4 \uac1c\ubc1c\n- \uc2e4\uc2dc\uac04 \ubd84\uc11d \uae30\ub2a5\n\n### \ud83d\udcdd \uc778\uc6a9 (Citation)\n\n\ud559\uc220 \ub17c\ubb38\uc774\ub098 \uc5f0\uad6c\uc5d0\uc11c \uc0ac\uc6a9\ud558\uc2e4 \ub54c:\n\n```bibtex\nxistoh162108, & Claude AI. (2025). Kakao Talk Analyzer: \nComprehensive analysis tool for KakaoTalk chat exports (v1.0.1). \nhttps://github.com/xistoh162108/kakaotalk_analyzer\n```\n\n## \ud83d\udcc4 \ub77c\uc774\uc120\uc2a4\n\n\uc774 \ud504\ub85c\uc81d\ud2b8\ub294 MIT \ub77c\uc774\uc120\uc2a4 \ud558\uc5d0 \ubc30\ud3ec\ub429\ub2c8\ub2e4. \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 [LICENSE](LICENSE) \ud30c\uc77c\uc744 \ucc38\uace0\ud558\uc138\uc694.\n\n## \ud83d\ude4f \uac10\uc0ac\uc758 \ub9d0\n\n- **\ud55c\uad6d\uc5b4 \uc790\uc5f0\uc5b4 \ucc98\ub9ac**: KoNLPy, mecab-python3\n- **\uc2dc\uac01\ud654**: matplotlib, seaborn, wordcloud\n- **\ub370\uc774\ud130 \ucc98\ub9ac**: pandas, numpy\n- **\uba38\uc2e0\ub7ec\ub2dd**: scikit-learn, sentence-transformers\n\n---\n\n**\ud83e\udd16 Generated with [Claude Code](https://claude.ai/code)**\n\nCo-Authored-By: Claude <noreply@anthropic.com>\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Comprehensive analysis tool for KakaoTalk chat exports",
"version": "1.0.2",
"project_urls": {
"Bug Reports": "https://github.com/xistoh162108/kakaotalk_analyzer/issues",
"Documentation": "https://github.com/xistoh162108/kakaotalk_analyzer/blob/main/README.md",
"Homepage": "https://github.com/xistoh162108/kakaotalk_analyzer",
"Source": "https://github.com/xistoh162108/kakaotalk_analyzer"
},
"split_keywords": [
"kakao",
"kakaotalk",
"chat",
"analysis",
"nlp",
"korean",
"messaging"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "e3b63e0dabe4720f1dfd8b4c4aa95e9fbc19e6b8157a4b23809c5f1ca192de8f",
"md5": "ee055c18974ab2b384871b2363a12ff9",
"sha256": "2a3c154a5b04d8936c6d8d140b689e5c97d1a291387df9c6527c4d8832efc7b7"
},
"downloads": -1,
"filename": "kakao_analyzer-1.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ee055c18974ab2b384871b2363a12ff9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 107244,
"upload_time": "2025-08-14T08:53:29",
"upload_time_iso_8601": "2025-08-14T08:53:29.031586Z",
"url": "https://files.pythonhosted.org/packages/e3/b6/3e0dabe4720f1dfd8b4c4aa95e9fbc19e6b8157a4b23809c5f1ca192de8f/kakao_analyzer-1.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "846d863a8d2c93da2cb710da2d1432b4e0bd13937e6c97bccda867f49192f532",
"md5": "6eef039d2a61b6b75e3fb7916f44add0",
"sha256": "d77e46fb96b2bda7e8082dda971862909ea54021c015ae742a14249612f1f562"
},
"downloads": -1,
"filename": "kakao_analyzer-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "6eef039d2a61b6b75e3fb7916f44add0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 103692,
"upload_time": "2025-08-14T08:53:30",
"upload_time_iso_8601": "2025-08-14T08:53:30.664790Z",
"url": "https://files.pythonhosted.org/packages/84/6d/863a8d2c93da2cb710da2d1432b4e0bd13937e6c97bccda867f49192f532/kakao_analyzer-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-14 08:53:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "xistoh162108",
"github_project": "kakaotalk_analyzer",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "pandas",
"specs": [
[
">=",
"1.5.0"
]
]
},
{
"name": "numpy",
"specs": [
[
">=",
"1.21.0"
]
]
},
{
"name": "matplotlib",
"specs": [
[
">=",
"3.5.0"
]
]
},
{
"name": "seaborn",
"specs": [
[
">=",
"0.11.0"
]
]
},
{
"name": "wordcloud",
"specs": [
[
">=",
"1.8.0"
]
]
},
{
"name": "scikit-learn",
"specs": [
[
">=",
"1.1.0"
]
]
},
{
"name": "sentence-transformers",
"specs": [
[
">=",
"2.2.0"
]
]
},
{
"name": "torch",
"specs": [
[
">=",
"1.13.0"
]
]
},
{
"name": "transformers",
"specs": [
[
">=",
"4.21.0"
]
]
},
{
"name": "chardet",
"specs": [
[
">=",
"4.0.0"
]
]
},
{
"name": "tqdm",
"specs": [
[
">=",
"4.60.0"
]
]
},
{
"name": "requests",
"specs": [
[
">=",
"2.25.0"
]
]
}
],
"lcname": "kakao-analyzer"
}