Views
No views yet
(batch_size, 4, 3)4 tương ứng với số lượng khía cạnh3 tương ứng với số lớp cảm xúc cho mỗi khía cạnh["food", "price", "space", "service"]| ID | Label | Mô tả |
|---|---|---|
| 0 | negative | Tiêu cực |
| 1 | neutral | Trung lập |
| 2 | positive | Tích cực |
pip install torch transformers⚠️ Important: Mô hình này sử dụng custom architecture, do đó bạn phải enabletrust_remote_code=Truekhi load.
1import torch
2from transformers import AutoTokenizer, AutoModel
3
4tokenizer = AutoTokenizer.from_pretrained(
5 "phngahn/phobert-aspect-based-sentiment"
6)
7
8model = AutoModel.from_pretrained(
9 "phngahn/phobert-aspect-based-sentiment",
10 trust_remote_code=True
11)1text = "Món ăn ngon nhưng phục vụ chậm và giá hơi cao"
2
3inputs = tokenizer(text, return_tensors="pt")
4
5with torch.no_grad():
6 logits = model(**inputs)
7
8print(logits.shape) # torch.Size([1, 4, 3])1aspect_names = ["food", "price", "space", "service"]
2sentiment_labels = ["negative", "neutral", "positive"]
3
4def predict(text):
5 inputs = tokenizer(text, return_tensors="pt")
6
7 with torch.no_grad():
8 logits = model(**inputs)[0]
9
10 preds = logits.argmax(dim=1)
11
12 return {
13 aspect: sentiment_labels[p.item()]
14 for aspect, p in zip(aspect_names, preds)
15 }
16
17# Example
18result = predict("Món ăn ngon nhưng giá cao, phục vụ chậm")
19print(result)1{
2 "food": "positive",
3 "price": "negative",
4 "space": "neutral",
5 "service": "negative"
6}token_type_idsAutoModel và Trainer của Hugging Face1@article{phobert,
2title = {{PhoBERT: Pre-trained language models for Vietnamese}},
3author = {Dat Quoc Nguyen and Anh Tuan Nguyen},
4journal = {Findings of EMNLP},
5year = {2020}
6}
7