kcELECTRA-absa-none
kcELECTRA-absa-none์
beomi/KcELECTRA-base๋ฅผ ๊ธฐ๋ฐ์ผ๋ก
AI Hub ์์ฑ๊ธฐ๋ฐ ๊ฐ์ ๋ถ์ ๋ฐ์ดํฐ์ ํ์ฉํด ํ์ต๋
Aspect-Based Sentiment Analysis (ABSA) ๋ชจ๋ธ์
๋๋ค.
์ด ๋ชจ๋ธ์ ์ ์๊ธฐ๊ธฐ ๋ฆฌ๋ทฐ ๋ฌธ์ฅ์์ ํน์ aspect(์์ฑ)์ ๋ํ ๊ฐ์ (๊ธ์ , ๋ถ์ , ์ค๋ฆฝ/๋ฏธ์ธ๊ธ)์ ๋ถ์ํ๋๋ก ํ์ต๋์์ต๋๋ค.
๐งฉ Model description
๐ง ํ์ต ๋ชฉ์
์๋น์ ๋ฆฌ๋ทฐ์๋ ๋ค์ํ ์ ํ ์์ฑ(aspect)์ด ๋ฑ์ฅํ๋ฉฐ, ๋ฌธ์ฅ ์ ์ฒด์ ๊ธ๋ถ์ ๋ง์ผ๋ก๋ ์ถฉ๋ถํ ์ธ๋ฐํ ๋ถ์์ด ์ด๋ ต์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ฅ์ ๋ด
์๋ค.
โํ๋ฉด์ ์ ๋ง ์ ๋ช ํ๊ณ ๋ฐฐํฐ๋ฆฌ๋ ์ค๋๊ฐ์ง๋ง, ๋ฐ์ด์ด ์กฐ๊ธ ์์ด์.โ
- ํ๋ฉด: ๊ธ์
- ๋ฐฐํฐ๋ฆฌ: ๊ธ์
- ๋ฐ์ด: ๋ถ์
์ด ๋ชจ๋ธ์ ์ด๋ฐ ์ธ๋ถ ๊ฐ์ ์ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ค๊ณ๋ Aspect ๊ธฐ๋ฐ ๊ฐ์ฑ๋ถ์(ABSA) ๋ชจ๋ธ์
๋๋ค.
๊ฐ ๋ฆฌ๋ทฐ๋ฅผ ๋์์ผ๋ก ์ฌ์ ์ ์ ์๋ ์ ์๊ธฐ๊ธฐ ๊ด๋ จ aspect ๋ชฉ๋ก์ ๊ธฐ์ค์ผ๋ก ๊ฐ์ ์ ๋ถ๋ฅํฉ๋๋ค.
โ๏ธ Intended uses & limitations
โ Intended uses
- ์ ์๊ธฐ๊ธฐ ๊ด๋ จ ๋ฆฌ๋ทฐ์ aspect-level ๊ฐ์ฑ๋ถ์
- ์ ํ ์์ฑ๋ณ ๋ง์กฑ๋ ๋ถ์ ๋ฐ ์ธ์ฌ์ดํธ ์ถ์ถ
- ๋ฆฌ๋ทฐ ์์ฝ, ๋ธ๋๋ ๋ชจ๋ํฐ๋ง, AI ๊ณ ๊ฐ ์๋ ์์คํ ๋ฑ๊ณผ์ ๊ฒฐํฉ
โ ๏ธ Limitations
- AI Hub ์ ์๊ธฐ๊ธฐ ๋ถ์ผ ๋ฐ์ดํฐ์ ๋ง์ถฐ ํ์ต๋์๊ธฐ ๋๋ฌธ์,
๋ค๋ฅธ ๋๋ฉ์ธ(์: ์์, ์ฌํ ๋ฑ)์์๋ ์ฑ๋ฅ์ด ์ ํ๋ ์ ์์ต๋๋ค.
๐งพ Training and evaluation data
๐ ๋ฐ์ดํฐ ์ถ์ฒ
AI Hub: โ์์ฑ๊ธฐ๋ฐ ๊ฐ์ ๋ถ์ ๋ฐ์ดํฐโ
(https://aihub.or.kr/aihubdata/data/view.do?dataSetSn=71603)
๐ ํ์ต ๋๋ฉ์ธ
์ ์๊ธฐ๊ธฐ ๋ถ์ผ ์ธ๋ถ ์นดํ ๊ณ ๋ฆฌ:
- ๊ณ์ ๊ฐ์
- ์ปดํจํฐ์ฃผ๋ณ๊ธฐ๊ธฐ
- ํด๋ํฐ์ฃผ๋ณ๊ธฐ๊ธฐ
- ์๋์ฐจ๊ธฐ๊ธฐ
- ๊ฐ์
- IT๊ธฐ๊ธฐ
- ์์์ํฅ๊ฐ์
- ์ํ๋ฏธ์ฉ์์ค๊ฐ์
- ์ฃผ๋ฐฉ๊ฐ์
- ์นด๋ฉ๋ผยท๊ฒ์๊ธฐยทํ๋ธ๋ฆฟ
๐งฉ ์ฌ์ฉ๋ ์ฃผ์ Aspect ๋ชฉ๋ก
์ ํ ์ ๋ฐ: ํ์ง, ๋์์ธ, ๊ฐ๊ฒฉ, ์ฑ๋ฅ
์ฌ์ฉ์ฑ: ์กฐ์์ฑ, ํด๋์ฑ, ๋ฌด๊ฒ, ์์
๊ธฐ๋ฅ: ํ๋ฉด, ๋ฐฐํฐ๋ฆฌ, ๋ฐ์ด, ์ถฉ์ , ์ฐ๊ฒฐ์ฑ
๊ธฐํ: ๋ด๊ตฌ์ฑ, ๊ตฌ์ฑํ, ๋ฐฐ์ก, ํฌ์ฅ ๋ฑ
๐งฎ Training procedure
๐ง Hyperparameters
learning_rate: 3e-5
train_batch_size: 16
eval_batch_size: 16
seed: 42
optimizer: AdamW (betas=(0.9, 0.999), eps=1e-8)
lr_scheduler_type: linear
num_epochs: 3
๐ง Training results
| Training Loss | Epoch | Step | Validation Loss | Accuracy | F1 |
|---|---|---|---|---|---|
| 0.2011 | 1.0 | 5008 | 0.2402 | 0.5967 | 0.3407 |
| 0.1394 | 2.0 | 10016 | 0.1429 | 0.7954 | 0.4230 |
| 0.1408 | 3.0 | 15024 | 0.1459 | 0.8261 | 0.4985 |
๐งฐ Framework versions
Transformers 4.57.1
PyTorch 2.8.0+cu126
Datasets 4.0.0
Tokenizers 0.22.1
๐ก Example usage
1. pipeline ์ฌ์ฉ ๋ฒ์
from transformers import pipeline
# 1. ๋ชจ๋ธ ๋ถ๋ฌ์ค๊ธฐ
checkpoint = "jxchlee/kcELECTRA-absa-none"
absa_pipeline = pipeline(
task="text-classification",
model=checkpoint,
tokenizer=checkpoint,
return_all_scores=True
)
# 2. ๋ถ์ ๋์ ๋ฆฌ๋ทฐ
review = "ํ๋ฉด์ ์ ๋ช
ํ๊ณ ๋ฐฐํฐ๋ฆฌ๋ ์ค๋๊ฐ์ง๋ง ๋ฐ์ด์ด ์กฐ๊ธ ์์ด์."
aspect_list = ['๊ฐ๊ฒฉ', '๊ธฐ๋ฅ', '๋ด๊ตฌ์ฑ', '๋์์ธ', '๋ฌด๊ฒ', '๋ฐฐํฐ๋ฆฌ',
'์ฌ์ด์ฆ', '์์', '์๋น์ ๋ ฅ', '์์', '์์ฌ',
'์๊ฐ/์๋', '์ฉ๋', '์๋/์์ง', '์ ์กฐ์ผ/์ ์กฐ์ฌ',
'์ ํ๊ตฌ์ฑ', '์กฐ์์ฑ', 'ํธ์์ฑ', 'ํ์ง', 'ํ์ง']
# 3. ์์ธก ์ํ
results = {}
for aspect in aspect_list:
input_text = f"{aspect}: {review}"
preds = absa_pipeline(input_text)
label = max(preds[0], key=lambda x: x["score"])
results[aspect] = {"label": label["label"], "score": round(label["score"], 4)}
# 4. ๊ฒฐ๊ณผ ์ถ๋ ฅ
label_map = {"LABEL_0": "๋ถ์ ", "LABEL_1": "์ค๋ฆฝ", "LABEL_2": "๊ธ์ ", "LABEL_3": "์ธ๊ธ์์"}
print(review)
label3 = {}
for k, v in results.items():
if v['label'] == 'LABEL_3':
label3[k] = v
else:
print(f"{k:10s} โ {label_map[v['label']]} ({v['score']})")
for k, v in label3.items():
print(f"{k:10s} โ {label_map[v['label']]} ({v['score']})")
2. model ์ฌ์ฉ ๋ฒ์
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
# 1๏ธโฃ ๋ชจ๋ธ ๋ก๋
model_name = "jxchlee/kcELECTRA-absa-none"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
# 2๏ธโฃ ์
๋ ฅ ๋ฆฌ๋ทฐ & Aspect
review = "ํ๋ฉด์ ์ ๋ช
ํ๊ณ ๋ฐฐํฐ๋ฆฌ๋ ์ค๋๊ฐ์ง๋ง ๋ฐ์ด์ด ์กฐ๊ธ ์์ด์."
aspect_list = ["ํ๋ฉด", "๋ฐฐํฐ๋ฆฌ", "๋ฐ์ด"]
# 3๏ธโฃ ์์ธก
for aspect in aspect_list:
text = f"{aspect}: {review}"
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=400)
with torch.no_grad():
outputs = model(**inputs)
probs = torch.nn.functional.softmax(outputs.logits, dim=-1)
pred = torch.argmax(probs, dim=-1).item()
label_map = {0: "๋ถ์ ", 1: "์ค๋ฆฝ", 2: "๊ธ์ ", 3: "์ธ๊ธ์์"}
print(f"[{aspect}] โ {label_map[pred]} (ํ๋ฅ ={probs[0][pred]:.2f})")
๐งฉ ์์ ์ถ๋ ฅ
# 1. pipeline
ํ๋ฉด์ ์ ๋ช
ํ๊ณ ๋ฐฐํฐ๋ฆฌ๋ ์ค๋๊ฐ์ง๋ง ๋ฐ์ด์ด ์กฐ๊ธ ์์ด์.
๋ด๊ตฌ์ฑ โ ๋ถ์ (0.9229)
๋ฐฐํฐ๋ฆฌ โ ๊ธ์ (0.9567)
ํ์ง โ ๊ธ์ (0.5763)
๊ฐ๊ฒฉ โ ์ธ๊ธ์์ (0.9993)
๊ธฐ๋ฅ โ ์ธ๊ธ์์ (0.9946)
๋์์ธ โ ์ธ๊ธ์์ (0.998)
๋ฌด๊ฒ โ ์ธ๊ธ์์ (0.9994)
์ฌ์ด์ฆ โ ์ธ๊ธ์์ (0.9991)
...
2. model
[ํ๋ฉด] โ ๊ธ์ (ํ๋ฅ =0.92)
[๋ฐฐํฐ๋ฆฌ] โ ๊ธ์ (ํ๋ฅ =0.88)
[๋ฐ์ด] โ ๋ถ์ (ํ๋ฅ =0.79)
- Downloads last month
- 72
Model tree for jxchlee/kcELECTRA-absa-none
Base model
beomi/KcELECTRA-base