File size: 4,197 Bytes
37bb2ac 9efa4d6 0e8b0c4 9efa4d6 37bb2ac |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
---
base_model: vinai/phobert-base
language: vi
pipeline_tag: text-classification
tags:
- aspect-based-sentiment-analysis
- sentiment-analysis
- vietnamese-nlp
- phobert
license: mit
---
# PhoBERT Aspect-Based Sentiment Analysis
Mô hình phân tích cảm xúc theo khía cạnh (Aspect-Based Sentiment Analysis - ABSA) cho tiếng Việt, được xây dựng dựa trên PhoBERT. Mô hình dự đoán cực tính cảm xúc (**tiêu cực / trung lập / tích cực**) cho **4 khía cạnh** đồng thời trong một lần forward pass:
- **food** (món ăn)
- **price** (giá cả)
- **space** (không gian)
- **service** (phục vụ)
Mô hình được thiết kế đặc biệt cho phân tích đánh giá nhà hàng và ẩm thực tiếng Việt.
## Model Overview
- **Base model:** [vinai/phobert-base](https://huggingface.co/vinai/phobert-base)
- **Architecture:** PhoBERT encoder với 4 classification heads độc lập
- **Task:** Aspect-Based Sentiment Analysis (ABSA)
- **Number of aspects:** 4
- **Number of sentiment classes:** 3 (negative, neutral, positive)
## Output Format
Mô hình trả về tensor với shape: `(batch_size, 4, 3)`
Trong đó:
- `4` tương ứng với số lượng khía cạnh
- `3` tương ứng với số lớp cảm xúc cho mỗi khía cạnh
**Thứ tự các khía cạnh trong output tensor:**
```python
["food", "price", "space", "service"]
```
**Sentiment Labels:**
| ID | Label | Mô tả |
|----|----------|-------------|
| 0 | negative | Tiêu cực |
| 1 | neutral | Trung lập |
| 2 | positive | Tích cực |
## Installation
```bash
pip install torch transformers
```
## Usage
> ⚠️ **Important:** Mô hình này sử dụng custom architecture, do đó bạn phải enable `trust_remote_code=True` khi load.
### Load Model and Tokenizer
```python
import torch
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained(
"phngahn/phobert-aspect-based-sentiment"
)
model = AutoModel.from_pretrained(
"phngahn/phobert-aspect-based-sentiment",
trust_remote_code=True
)
```
### Inference
```python
text = "Món ăn ngon nhưng phục vụ chậm và giá hơi cao"
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
logits = model(**inputs)
print(logits.shape) # torch.Size([1, 4, 3])
```
### Decode Predictions
```python
aspect_names = ["food", "price", "space", "service"]
sentiment_labels = ["negative", "neutral", "positive"]
def predict(text):
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
logits = model(**inputs)[0]
preds = logits.argmax(dim=1)
return {
aspect: sentiment_labels[p.item()]
for aspect, p in zip(aspect_names, preds)
}
# Example
result = predict("Món ăn ngon nhưng giá cao, phục vụ chậm")
print(result)
```
**Output:**
```python
{
"food": "positive",
"price": "negative",
"space": "neutral",
"service": "negative"
}
```
## Model Details
- Mô hình dựa trên kiến trúc PhoBERT/RoBERTa và bỏ qua `token_type_ids`
- Tương thích với `AutoModel` và `Trainer` của Hugging Face
- Mô hình không được wrap sẵn thành Hugging Face pipeline
## Intended Use
✅ Phân tích đánh giá nhà hàng tiếng Việt
✅ Phân tích cảm xúc theo khía cạnh
✅ Nghiên cứu học thuật và dự án sinh viên
## Limitations
⚠️ Chỉ được huấn luyện trên dữ liệu nhà hàng/ẩm thực
⚠️ Hiệu suất có thể giảm trên các domain khác
⚠️ Mô hình luôn dự đoán cả 4 khía cạnh (giả định tất cả khía cạnh đều xuất hiện)
## Citation
Nếu bạn sử dụng mô hình này trong công trình học thuật, vui lòng trích dẫn PhoBERT:
```bibtex
@article{phobert,
title = {{PhoBERT: Pre-trained language models for Vietnamese}},
author = {Dat Quoc Nguyen and Anh Tuan Nguyen},
journal = {Findings of EMNLP},
year = {2020}
}
```
## License
Mô hình này tuân theo license của base model [vinai/phobert-base](https://huggingface.co/vinai/phobert-base).
--- |