jd_sentiment

46 downloads 1 likes on ModelScope updated

Model card

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 '消极'}")