Views
No views yet
klue/bert-base를 백본으로 하고, 가상자산 관련 한국어 데이터셋 10만 건 이상을 전처리하여 파인튜닝했습니다.≤200자)에 대해 투자 심리·행동·감정·확신도·관련성·유해성을 동시에 예측합니다.1{
2 "sentiment_strength": "strong_pos | weak_pos | neutral | weak_neg | strong_neg",
3 "action_signal": "buy | hold | sell | avoid | info_only | ask_info",
4 "emotions": ["greed","fear","confidence","doubt","anger","hope","sarcasm"],
5 "certainty": 0.0 ~ 1.0,
6 "relevance": 0.0 ~ 1.0,
7 "toxicity": 0.0 ~ 1.0
8}"가즈아", "무조건 간다"."반등 가능", "괜찮을 듯"."조정 올 듯", "관망"."나락", "망함", "해킹/제재"."지금 산다", "롱"."존버", "유지"."익절", "손절", "정리"."가지마", "스캠", "위험"."들어가도 돼?", "왜 떨어져?".import torch, json
from transformers import AutoTokenizer, AutoModel
repo_or_dir = "LangQuant/LQ-Kbert-base"
texts = [
"비트코인 조정 후 반등, 투자심리 개선",
"환율 급등에 증시 변동성 확대",
"비트 그만 좀 내려라 진짜..",
"폭락ㅠㅠㅜㅠㅜ 다 팔아야할까요?"
]
tokenizer = AutoTokenizer.from_pretrained(repo_or_dir)
model = AutoModel.from_pretrained(repo_or_dir, trust_remote_code=True)
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device).eval()
enc = tokenizer(texts, return_tensors="pt", padding=True, truncation=True, max_length=200).to(device)
with torch.inference_mode():
out = model(**enc)
IDX2SENTI = {0:"strong_pos",1:"weak_pos",2:"neutral",3:"weak_neg",4:"strong_neg"}
IDX2ACT = {0:"buy",1:"hold",2:"sell",3:"avoid",4:"info_only",5:"ask_info"}
EMO_LIST = ["greed","fear","confidence","doubt","anger","hope","sarcasm"]
for i, t in enumerate(texts):
senti = int(out["logits_senti"][i].argmax().item())
act = int(out["logits_act"][i].argmax().item())
emo_p = torch.sigmoid(out["logits_emo"][i]).tolist()
reg = torch.clamp(out["pred_reg"][i], 0, 1).tolist()
emos = [EMO_LIST[j] for j,p in enumerate(emo_p) if p >= 0.5]
result = {
"text": t,
"pred_sentiment_strength": IDX2SENTI[senti],
"pred_action_signal": IDX2ACT[act],
"pred_emotions": emos,
"pred_certainty": float(reg[0]),
"pred_relevance": float(reg[1]),
"pred_toxicity": float(reg[2]),
}
print(json.dumps(result, ensure_ascii=False))
| 문장 | sentiment_strength | action_signal | 해석 |
|---|---|---|---|
| "개떡상이여 " | strong_pos | buy | 강한 상승 확신 + 즉시 매수 의도 |
| "여기선 관망이 맞다" | weak_neg | hold | 부정적이지만 보유 유지 선택 |
| "들어가도 될까?" | weak_pos | ask_info | 조심스러운 낙관, 매수 탐색 질문 |
| "해킹 터짐, 비상. 접근 금지" | strong_neg | avoid | 강한 부정 + 회피 권고 |
| "업데이트 공지 나왔습니다" | neutral | info_only | 단순 정보 제공, 행동 없음 |
@misc{langquant2025lkbert,
title = {LQ-KBERT-Base: Crypto Market Korean Sentiment & Action Signal Classifier},
author = {LangQuant},
year = {2025},
url = {https://huggingface.co/langquant/LQ-Kbert-base}
}이 모델은 학술 연구 및 실험용으로만 제공됩니다.
본 모델의 출력은 금융/투자 자문으로 간주될 수 없으며,
발생하는 모든 결과에 대해 LangQuant는 책임을 지지 않습니다.