1. 模型数据来源
模型:
#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('google-bert/bert-base-chinese')
数据:
#数据集下载
from modelscope.msdatasets import MsDataset
ds = MsDataset.load('DAMO_NLP/jd', subset_name='default', split='train')
2. 代码训练逻辑
https://gitcode.com/liuzwei/bert_sentiment_classification
3. 模型使用
#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('BI3CBL/jd_sentiment', cache_dir="./")
from pathlib import Path
from transformers import AutoModelForSequenceClassification, AutoTokenizer
import torch
# 加载模型
def load_model_and_tokenizer(model_dir: str):
model_path = Path(model_dir)
if not model_path.exists():
raise FileNotFoundError(f"模型目录不存在: {model_path.resolve()}")
tokenizer = AutoTokenizer.from_pretrained(model_dir)
model = AutoModelForSequenceClassification.from_pretrained(model_dir)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
model.eval()
return model, tokenizer, device
model, tokenizer, device = load_model_and_tokenizer("/mnt/workspace/.cache/modelscope/models/BI3CBL/jd_sentiment")
texts = ["这个套餐太难吃了!!", "非常美味,值得推荐,还不错"]
inputs = tokenizer(
texts,
truncation=True,
padding=True,
max_length=64,
return_tensors="pt",
)
outputs = model(**inputs)
probabilities = torch.softmax(outputs.logits, dim=-1)
predictions = torch.argmax(probabilities, dim=-1)
for sentence, pre in zip(texts, predictions):
print(f"【{sentence}】情感偏向:{'积极' if pre==1 else '消极'}")