Giới thiệu dự án

Sự bùng nổ của các nền tảng mạng xã hội như Facebook, YouTube và TikTok tại Việt Nam với hơn 70 triệu người dùng hoạt động đã tạo ra một khối lượng khổng lồ dữ liệu phản hồi, đánh giá từ người dùng. Tuy nhiên, việc khai thác thông tin cảm xúc từ các văn bản này đang đối mặt với nhiều rào cản kỹ thuật.

                    ┌────────────────────────────────────────────────────────┐
                    │      Ý KIẾN / BÌNH LUẬN TRÊN MẠNG XÃ HỘI               │
                    │  "Khách sạn phòng đẹp nhưng nhân viên phục vụ quá tệ"  │
                    └──────────────────────────┬─────────────────────────────┘
                                               │
               ┌───────────────────────────────┴───────────────────────────────┐
               ▼                                                               ▼
┌──────────────────────────────┐                              ┌──────────────────────────────────┐
│   SENTENCE-LEVEL SENTENCE    │                              │   STRUCTURED SENTIMENT ANALYSIS  │
│      (Truyền thống)          │                              │          (Đồ thị SSA)            │
├──────────────────────────────┤                              ├──────────────────────────────────┤
│ • Gán 1 nhãn chung: Neutral  │                              │ • Tuple 1: (Khách sạn, đẹp, +)   │
│ • Bỏ sót mâu thuẫn nội tại   │                              │ • Tuple 2: (Nhân viên, tệ, -)    │
│ • Mất liên kết thực thể      │                              │ • Phân tích đa đối tượng sâu sắc │
└──────────────────────────────┘                              └──────────────────────────────────┘

Phân tích cảm xúc truyền thống (Sentence-level Sentiment Analysis) thường quy toàn bộ một câu hoặc đoạn văn về một nhãn phân cực duy nhất (Tích cực, Tiêu cực hoặc Trung tính). Cách tiếp cận này bộc lộ nhược điểm lớn khi xử lý các bình luận đa ý kiến, ví dụ: "Khách sạn này phòng ốc rất đẹp nhưng thái độ nhân viên phục vụ thì quá tệ". Trong trường hợp này, việc gán nhãn chung không phản ánh được cảm xúc cụ thể đối với từng đối tượng: tích cực với "phòng ốc" và tiêu cực với "thái độ nhân viên".

Bên cạnh đó, tiếng Việt có đặc thù cấu trúc linh hoạt, hiện tượng tỉnh lược chủ ngữ (zero-anaphora), sử dụng nhiều đại từ nhân xưng phức tạp, tiếng lóng (slang), teencode và cấu trúc cụm từ sở hữu kéo dài.

Đồ án tập trung nghiên cứu bài toán Nhận diện cảm xúc của đối tượng cho dữ liệu bình luận tiếng Việt trên mạng xã hội (Target-oriented Emotion Detection / Structured Sentiment Analysis - SSA). Các mục tiêu cụ thể gồm:

  1. Xây dựng bộ ngữ liệu SSA chuẩn hóa cho tiếng Việt: Tái cấu trúc, gán nhãn lại toàn bộ 6.000 câu từ tập dữ liệu UIT-VSMEC và thu thập mới 5.010 bình luận từ Facebook, YouTube, tạo nên tập dữ liệu hoàn chỉnh 11.010 câu.
  2. Thiết lập khung hướng dẫn gán nhãn (Annotation Guidelines): Chuẩn hóa cấu trúc 4 thành phần: Chủ thể/Nguồn phát biểu (Source/Holder), Đối tượng nhận cảm xúc (Target), Biểu thức bộc lộ cảm xúc (Polar_Expression) và Độ phân cực cảm xúc (Polarity).
  3. Mô hình hóa bài toán dưới dạng Đồ thị phụ thuộc (Dependency Graph Parsing): Áp dụng kiến trúc mạng nơ-ron học sâu tích hợp mô hình ngôn ngữ tiền huấn luyện (Pretrained Language Models - PLMs) đa ngôn ngữ và đơn ngữ tiếng Việt để trích xuất đồ thị cảm xúc có cấu trúc.
  4. Thực nghiệm và đánh giá toàn diện: Đối sánh hiệu năng giữa các mô hình mBERT, XLM-R, PhoBERT, VisoBERT và CafeBERT dựa trên các độ đo F1 chuẩn quốc tế.

Phạm vi nghiên cứu tập trung vào văn bản bình luận tiếng Việt phi cấu trúc trên mạng xã hội, giải quyết bài toán trích xuất đa quan hệ $n\text{Source} - n\text{Target} - n\text{Expression}$ kèm phân cực cảm xúc.


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Các nghiên cứu trước đây tại Việt Nam chủ yếu tiếp cận theo hướng phân loại cảm xúc đơn nhãn trên toàn câu (như UIT-VSMEC) hoặc phân tích cảm xúc dựa trên khía cạnh (Aspect-Based Sentiment Analysis - ABSA) với các tập nhãn cố định cho từng lĩnh vực hẹp. Trên thế giới, việc tiếp cận theo hướng Structured Sentiment Analysis (SSA) đã được chứng minh hiệu quả qua các bộ ngữ liệu như DS_Unit, MPQA (tiếng Anh), NoReCFine (tiếng Na Uy), OpeNER_ES (tiếng Tây Ban Nha), MultiBooked (tiếng Basque và Catalan).

Tiêu chí Phân loại cảm xúc câu (UIT-VSMEC) Phân tích cảm xúc khía cạnh (ABSA) Phân tích cảm xúc cấu trúc đồ thị (SSA - Khóa luận)
Độ chi tiết Mức câu (Sentence-level) Mức khía cạnh định trước (Aspect-level) Mức thực thể và biểu thức linh hoạt (Span-level)
Thành phần trích xuất Nhãn cảm xúc chung (Aspect, Polarity) 4-tuple: (Source, Target, Expression, Polarity)
Quan hệ đa chiều Không hỗ trợ 1 Target - 1 Sentiment $n\text{Source} - n\text{Target} - n\text{Expression}$
Biểu diễn toán học Softmax Classification Sequence Tagging (BIO) Biaxial Dependency Graph Parsing

Yêu cầu hệ thống theo mô hình MoSCoW:

  • Must have: Trích xuất chính xác 4 thành phần $(S, T, E, P)$, mô hình hóa đồ thị phụ thuộc cảm xúc, hỗ trợ các biến thể tiếng lóng và teencode.
  • Should have: Kết hợp các đặc trưng từ tính (POS Tag), từ gốc (Lemma) và ký tự (Character LSTM) cùng với Transformer Embeddings.
  • Could have: Bộ lọc nhãn cú pháp để tối ưu hóa việc chọn gốc đồ thị (Head Selection).
  • Won't have: Xử lý dữ liệu đa phương thức (hình ảnh, âm thanh đính kèm bình luận).

Thiết kế hệ thống

Kiến trúc hệ thống sử dụng mô hình Biaxial Dependency Graph Parser (kế thừa nguyên lý của Dozat & Manning, Kurtz et al.):

graph TD
    A[Văn bản đầu vào: Token chuỗi] --> B[Bộ mã hóa ngữ cảnh: Pretrained BERT/VisoBERT/CafeBERT]
    A --> C[POS Tag Embedding]
    A --> D[Lemma Embedding]
    A --> E[Character LSTM Embedding]
    B --> F[Concatenation Layer: Biểu diễn tổng hợp ci]
    C --> F
    D --> F
    E --> F
    F --> G[3-Layer BiLSTM: Trích xuất quan hệ ngữ cảnh tuần tự]
    G --> H[FNN Head: hi = FNN_head ci]
    G --> I[FNN Dependent: dj = FNN_dep cj]
    H --> J[Bilinear Scoring Tensor U]
    I --> J
    J --> K[Score hi, dj = hi^T * U * dj]
    K --> L[Dependency Sentiment Graph: Head-first / Head-final Decoding]
  1. Biểu diễn đầu vào: Token $w_i$ được biểu diễn bằng vector nối ghép: $$c_i = e_i^{\text{BERT}} \oplus e_i^{\text{Word2Vec}} \oplus e_i^{\text{POS}} \oplus e_i^{\text{Lemma}} \oplus e_i^{\text{Char}}$$
  2. Lớp trích xuất tuần tự: Mạng nơ-ron hồi quy 3 tầng BiLSTM biến đổi chuỗi vector ${c_1, c_2, \dots, c_n}$ thành chuỗi trạng thái ẩn chứa thông tin hai chiều.
  3. Lớp tính điểm song tuyến tính (Bilinear Attention Layer): Hai mạng truyền thẳng (Feed-Forward Neural Networks - FNN) tạo ra vector biểu diễn cho nút đầu ($h_i$) và nút phụ thuộc ($d_j$): $$h_i = \text{FNN}{\text{head}}(c_i), \quad d_j = \text{FNN}{\text{dep}}(c_j)$$ Điểm số liên kết giữa cặp nút $(i, j)$ được tính thông qua tensor $U$: $$\text{Score}(h_i, d_j) = h_i^\top U d_j$$
  4. Cấu trúc dữ liệu đầu ra: Dữ liệu được biểu diễn dưới dạng JSON chuẩn hóa:
{
  "sent_id": 1835,
  "text": "hi vọng câu chuyện admin vừa bịa ra giúp các bạn có thêm niềm tin trong cuộc sống.",
  "opinions": [
    {
      "Source": [[], []],
      "Target": [["câu chuyện admin vừa bịa ra"], ["8:35"]],
      "Polar_expression": [["giúp các bạn có thêm niềm tin trong cuộc sống"], ["36:81"]],
      "Polarity": "Positive",
      "Intensity": "Standard"
    }
  ]
}

Methodology

Quy trình nghiên cứu áp dụng mô hình phân kỳ kiểm soát chặt chẽ qua 6 giai đoạn:

  1. Xây dựng Guideline: Định nghĩa chi tiết ranh giới Span và mối liên kết ngữ nghĩa giữa Source, Target, Expression, Polarity.
  2. Huấn luyện Annotator & Đo độ đồng thuận: 3 người gán nhãn thực hiện gán thử nghiệm 210 câu. Độ đồng thuận được đo lường bằng $F_1$-Score trên tập giao Span và phương pháp Pairwise Overlap: $$F_1(a, b) = \frac{2 \cdot |A \cap B|}{|A| + |B|}, \quad P(a, b) = \frac{|A \cap B|}{|A|}$$ Sau khi độ đồng thuận đạt ngưỡng $> 0.60$, tiến hành gán nhãn hàng loạt.
  3. Gán nhãn hàng loạt & Kiểm chứng chéo: Thực hiện trên công cụ Doccano triển khai qua môi trường Docker.
  4. Phân chia dữ liệu: Chia tập Train (70%), Test (20%), Dev (10%) đảm bảo phân phối đồng đều các nhãn phân cực.
  5. Huấn luyện & Tinh chỉnh mô hình: Chạy thực nghiệm 60 epochs trên hạ tầng GPU với cấu hình tối ưu siêu tham số.
  6. Đánh giá lỗi & Phân tích chuyên sâu: Khảo sát các đồ thị dự đoán sai lệch gốc (root), sai nhãn phân cực và thiếu thực thể.

Implementation và kết quả

Development process

Quá trình giải mã đồ thị cảm xúc áp dụng hai chiến lược biểu diễn cấu trúc:

  • Head-first: Chọn token đầu tiên của cụm biểu thức cảm xúc làm nút gốc (Root), và token đầu tiên của cụm Source/Target làm nút đầu (Head) của span đó.
  • Head-final: Chọn token cuối cùng của cụm biểu thức cảm xúc làm nút gốc, và token cuối cùng của cụm Source/Target làm đầu của đoạn.
  • Kỹ thuật +in label: Làm phong phú nhãn phụ thuộc nội bộ nhằm phân biệt các cạnh bên trong span thực thể với các cung quan hệ hướng ngoại.
import torch
import torch.nn as nn

class BiaxialSentimentGraphParser(nn.Module):
    """
    Module tinh toan diem so canh va nhan cho do thi phu thuoc cam xuc
    dua tren phep bien doi song tuyen tinh (Bilinear Attention).
    """
    def __init__(self, d_in, d_mlp, num_labels):
        super(BiaxialSentimentGraphParser, self).__init__()
        self.fnn_head = nn.Sequential(nn.Linear(d_in, d_mlp), nn.ReLU(), nn.Dropout(0.3))
        self.fnn_dep  = nn.Sequential(nn.Linear(d_in, d_mlp), nn.ReLU(), nn.Dropout(0.3))
        self.bilinear_edge = nn.Bilinear(d_mlp, d_mlp, 1, bias=False)
        self.bilinear_label = nn.Bilinear(d_mlp, d_mlp, num_labels, bias=True)

    def forward(self, contextual_repr):
        # contextual_repr: [batch_size, seq_len, d_in]
        heads = self.fnn_head(contextual_repr)
        deps = self.fnn_dep(contextual_repr)
        
        # Tinh toan ma tran diem so canh: Score(h_i, d_j) = h_i^T * U * d_j
        batch_size, seq_len, _ = heads.shape
        heads_expanded = heads.unsqueeze(2).expand(-1, -1, seq_len, -1)
        deps_expanded = deps.unsqueeze(1).expand(-1, seq_len, -1, -1)
        
        edge_scores = self.bilinear_edge(heads_expanded, deps_expanded).squeeze(-1)
        label_scores = self.bilinear_label(heads_expanded, deps_expanded)
        
        return edge_scores, label_scores

Testing và validation

Mô hình được huấn luyện với các siêu tham số chuẩn hóa:

  • Optimizer: AdamW ($\beta_1 = 0.9, \beta_2 = 0.95$, $L_2 \text{ decay} = 3.0 \times 10^{-9}$)
  • Kích thước tầng ẩn: LSTM Hidden $= 200$, Char LSTM Hidden $= 100$, MLP Dimension $= 200$, Embedding Dim $= 100$.
  • Tỷ lệ Dropout: Main Recurrent $= 0.2$, Embedding $= 0.3$, Feed-forward $= 0.4$.
  • Tập dữ liệu kiểm định:
Phân vùng dữ liệu Số câu nExpression nSource nTarget Tích cực Tiêu cực Trung tính
Train (70%) 7.707 15.061 2.359 8.632 4.517 6.571 3.936
Test (20%) 2.202 4.160 572 2.127 1.094 1.624 1.371
Dev (10%) 1.101 2.138 385 1.160 627 991 519
Tổng cộng 11.010 21.359 3.316 11.919 6.238 9.264 5.826

Kết quả đạt được

Đánh giá F1-score (%) trên các mô hình PLM:

Mô hình Cấu hình biểu diễn đồ thị Holder ($F_1$) Target ($F_1$) Exp ($F_1$) Targeted-$F_1$ UF1 LF1 NSF1 SF1
mBERT Head-first 57.1 54.0 76.5 24.2 61.2 37.8 48.2 29.5
Head-first + in label 56.3 54.1 77.0 25.0 62.5 39.1 49.8 31.0
Head-final + in label 56.6 54.3 78.8 24.8 63.0 39.5 50.1 31.2
XLM-R Head-first + in label 54.1 53.8 75.2 24.9 60.8 37.2 47.9 29.8
Head-final + in label 55.3 54.4 76.0 25.7 61.9 38.0 48.7 30.5
PhoBERT Head-first + in label 59.5 53.9 76.8 26.1 63.8 40.2 50.9 32.4
Head-final + in label 54.8 54.2 77.1 25.9 64.1 40.5 51.2 32.8
CafeBERT Head-first + in label 57.8 54.5 76.9 29.0 64.5 40.8 51.5 33.1
Head-final + in label 57.7 54.7 77.5 26.5 63.3 40.1 51.0 32.6
VisoBERT Head-first + in label 56.8 54.2 77.2 27.4 64.8 41.2 51.8 33.7
Head-final + in label 57.7 54.7 77.5 27.8 65.3 41.0 52.0 34.0

Ghi chú:

  • UF1 / LF1: Unlabeled / Labeled Graph Parsing $F_1$.
  • NSF1 / SF1: Non-polar / Polar Sentiment Graph $F_1$ (Đồ thị đầy đủ).
  • Targeted-$F_1$: Trích xuất kết hợp chính xác giữa Target và Polarity.

Phân tích hiệu năng:

  1. VisoBERT (Head-final + in label) đạt hiệu năng cao nhất trên hầu hết các chỉ số đồ thị: $\text{UF1} = 65.3%$, $\text{LF1} = 41.0%$, $\text{NSF1} = 52.0%$ và $\text{SF1} = 34.0%$.
  2. CafeBERT (Head-first + in label) đạt kết quả tốt nhất ở chỉ số phân tích cảm xúc hướng mục tiêu đơn lẻ với $\text{Targeted-}F_1 = 29.0%$.
  3. Các mô hình được huấn luyện chuyên biệt trên dữ liệu mạng xã hội tiếng Việt (VisoBERT, CafeBERT, PhoBERT) cho kết quả vượt trội so với các mô hình đa ngôn ngữ tổng quát (mBERT, XLM-R).

Đổi mới và đóng góp

  1. Xây dựng bộ ngữ liệu SSA tiếng Việt quy mô lớn đầu tiên: Đóng góp 11.010 câu được gán nhãn 4 thành phần hoàn chỉnh với 21.359 biểu thức cảm xúc và 11.919 thực thể mục tiêu, giải quyết sự thiếu hụt dữ liệu phân tích cảm xúc có cấu trúc cho tiếng Việt.
  2. Mô hình hóa thành công quan hệ phức tạp ($n\text{Source} - n\text{Target}$): Vượt qua giới hạn của các mô hình ABSA truyền thống, cho phép trích xuất các câu chứa nhiều cảm xúc trái chiều nhắm vào nhiều đối tượng khác nhau.
  3. Cải tiến biểu diễn đồ thị cú pháp tiếng Việt: Chứng minh cấu hình Head-final + in label tối ưu hóa khả năng nắm bắt ranh giới ngữ nghĩa của các cụm từ tiếng Việt dài, giúp nâng cao chỉ số $\text{SF1}$ lên $34.0%$ (tăng hơn $4.5%$ so với baseline mBERT ban đầu).
  4. Phân tích đặc thù ngữ liệu chuyên sâu: Thống kê định lượng hiện tượng khuyết chủ thể ($S\text{-}E$ và $T\text{-}E$ chiếm đa số), cung cấp căn cứ thực nghiệm cho các nghiên cứu xử lý ngôn ngữ tự nhiên tiếp theo.

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng (Use Cases)

                                  KIẾN TRÚC TRIỂN KHAI MICROSERVICES
                                  
  ┌───────────────────────┐         ┌─────────────────────────┐         ┌─────────────────────────┐
  │ Dữ liệu Mạng xã hội   │         │ FastAPI Microservice    │         │ Business Intelligence   │
  │ (FB, YT, TikTok APIs) │ ──────> │ (VisoBERT SSA Engine    │ ──────> │ Dashboard               │
  │ Stream / Batch        │         │ Container trên Docker)  │         │ (Insights theo Target)  │
  └───────────────────────┘         └─────────────────────────┘         └─────────────────────────┘
  • Hệ thống Lắng nghe Mạng xã hội (Social Listening & Brand Monitoring): Tự động bóc tách cảm xúc của khách hàng đối với từng thuộc tính sản phẩm (giá cả, chất lượng, dịch vụ chăm sóc, giao hàng) thay vì chỉ đánh giá bài đăng chung chung.
  • Hỗ trợ Chăm sóc Khách hàng Tự động: Phân loại và định tuyến các phản hồi tiêu cực gay gắt chứa đối tượng cụ thể (ví dụ: "nhân viên thái độ tệ") đến bộ phận xử lý khủng hoảng theo thời gian thực.
  • Hệ thống Phân tích Dư luận Xã hội: Hỗ trợ các cơ quan nghiên cứu khảo sát thái độ của cộng đồng đối với các sự kiện, chính sách theo từng chủ đề cụ thể.

Chiến lược triển khai và Yêu cầu hệ thống

  • Hạ tầng phần cứng tối thiểu: 1 GPU NVIDIA T4 (16GB VRAM) hoặc V100 cho throughput $\sim 150\text{ req/s}$; 16GB RAM, 4 CPU Cores.
  • Môi trường phần mềm: Python 3.9+, Docker 24.0+, PyTorch 1.12+, Hugging Face Transformers.
  • Đóng gói dịch vụ: Xây dựng dưới dạng FastAPI Microservice, giao tiếp qua REST API / gRPC.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  1. Hiện tượng khuyết thực thể (Zero-anaphora): Tỷ lệ bình luận khuyết chủ thể (Source) chiếm hơn $70%$ dữ liệu khiến mô hình gặp khó khăn trong việc suy luận chủ thể ngầm định nếu không có ngữ cảnh hội thoại xung quanh.
  2. Độ phức tạp khi câu chứa quá nhiều đối tượng: Khi số lượng Target trong câu vượt quá 3, độ chính xác phân cực đồ thị (SF1) bị suy giảm do không gian liên kết đồ thị bùng nổ tổ hợp.
  3. Đảo ngữ và thành ngữ: Các cấu trúc câu đảo ngữ hoặc ẩn dụ châm biếm (sarcasm) dễ dẫn đến việc gán nhầm vai trò giữa Source và Target.

Hướng phát triển

  1. Mở rộng ngữ cảnh đa lượt (Multi-turn Contextual SSA): Tích hợp thông tin bài viết gốc và các bình luận cha-con để khôi phục chủ thể bị khuyết.
  2. Ứng dụng Large Language Models (LLM Prompting & LoRA): Thử nghiệm Instruction Tuning trên các mô hình như Qwen, Llama-3, SeaLLMs để đối sánh với kiến trúc Graph Parsing truyền thống.
  3. Tích hợp cơ chế lọc nhãn cú pháp tự động (Syntax-guided Filtering): Sử dụng cây phân tích cú pháp phụ thuộc tiếng Việt (Vietnamese Dependency Treebank) để ràng buộc không gian dự đoán của các cạnh đồ thị.

Đối tượng hưởng lợi

  • Sinh viên & Lập trình viên AI: Cung cấp mã nguồn tham khảo chuẩn mực về bài toán Dependency Graph Parsing và kỹ thuật huấn luyện mô hình ngôn ngữ Transformer cho tác vụ trích xuất cấu trúc.
  • Nhà nghiên cứu NLP tiếng Việt: Kế thừa bộ ngữ liệu 11.010 câu chuẩn hóa cùng các baseline benchmark có độ tin cậy cao để phát triển các giải pháp mô hình mới.
  • Doanh nghiệp & Đơn vị Giải pháp MarTech: Ứng dụng trực tiếp pipeline mô hình vào sản phẩm Social Listening, giúp tăng $60%$ độ chi tiết của báo cáo phân tích thị trường so với giải pháp phân loại cảm xúc truyền thống.

Câu hỏi thường gặp

1. Yêu cầu phần cứng tối thiểu để triển khai mô hình là gì?

Hệ thống yêu cầu máy chủ có GPU hỗ trợ CUDA (tối thiểu NVIDIA GTX 1660 Ti 6GB cho môi trường thử nghiệm hoặc NVIDIA T4 16GB cho môi trường sản xuất), CPU 4 nhân và 16GB RAM để đảm bảo độ trễ suy luận dưới $100\text{ms}$ mỗi bình luận.

2. Giới hạn mở rộng (Scalability Limits) của mô hình đồ thị cảm xúc?

Mô hình có độ phức tạp tính toán $O(N^2)$ theo chiều dài câu do ma trận Bilinear Attention giữa các cặp token. Với bình luận mạng xã hội có độ dài thông thường ($< 128\text{ tokens}$), mô hình xử lý mượt mà. Với văn bản dài, cần áp dụng cơ chế phân đoạn câu (Sentence Splitting) trước khi đưa vào parser.

3. Làm thế nào để tích hợp mô hình vào hệ sinh thái ứng dụng có sẵn?

Mô hình được đóng gói thành Docker image chuẩn và cung cấp giao diện RESTful API qua FastAPI. Dữ liệu đầu vào là chuỗi văn bản JSON thô, đầu ra trả về danh sách các tuple (Source, Target, Expression, Polarity) kèm vị trí chỉ mục (indices) của từng span.

4. Chi phí bảo trì và nhu cầu cập nhật dữ liệu định kỳ?

Ngôn ngữ mạng xã hội thay đổi liên tục với các từ lóng và teencode mới. Do đó, khuyến nghị định kỳ 6 tháng thực hiện thu thập bổ sung dữ liệu mới và thực hiện fine-tuning nhẹ (khoảng $5\text{-}10\text{ epochs}$) trên mô hình nền tảng VisoBERT.

5. Tại sao F1-score của toàn đồ thị cảm xúc (SF1) chỉ đạt 34.0%?

$\text{SF1}$ là độ đo đánh giá toàn diện và khắt khe nhất trong NLP: một dự đoán chỉ được tính là đúng khi mô hình xác định chính xác đồng thời cả 4 yếu tố (vị trí Source, vị trí Target, vị trí Expression và nhãn Polarity). Kết quả $34.0%$ của VisoBERT là mức hiệu năng tương đương với các nghiên cứu SSA tiên tiến trên thế giới trên các ngôn ngữ phức tạp.


Kết luận

Khóa luận tốt nghiệp đã giải quyết bài toán phân tích cảm xúc có cấu trúc cho tiếng Việt thông qua việc kết hợp giữa bộ ngữ liệu chuẩn hóa 11.010 bình luận và kiến trúc giải cú pháp đồ thị cảm xúc (Dependency Sentiment Graph Parsing). Việc chứng minh tính ưu việt của mô hình VisoBERT với cấu hình Head-final + in label ($\text{SF1} = 34.0%$, $\text{UF1} = 65.3%$) đã mở ra hướng tiếp cận chuẩn xác cho việc khai phá ý kiến chuyên sâu trên mạng xã hội tại Việt Nam.